使用者:Yushaen0722/Android軟體開發

Android堆疊[1]
Nexus 4,一款對開發者友好的Google Nexus系列手機。[2]

Android軟體開發是指開發在Android上運行的應用程式的活動,以Java作為主要程式語言(也支持Kotlin或其他語言),並使用Android軟體開發工具包或其他的開發環境。

官方開發工具 編輯

Android SDK 編輯

Android SDK
開發者Google
首次發布2009年10月,​14年前​(2009-10
程式語言Java
作業系統跨平台
語言英文
類型集成開發環境, 軟體開發工具包
網站developer.android.com/tools/sdk/eclipse-adt.html, developer.android.com/sdk/index.html

Android SDK(Software Development Kit,軟體開發工具包)包含了一系列完整的開發工具[4],其中包括調試器、程序庫、一款基於QEMU的手機模擬器、文檔、示例代碼以及教程。目前支持的開發平台有Windows 7或更高版本、Mac OS X 10.5.8或更高版本,以及各種現代Linux桌面發行版等。從2015年三月起,Android SDK不能在Android上運行,但是通過使用一些Android應用仍可以在Android上進行軟體開發。[5][6][7]

2014年底以前,官方支持的集成開發環境(Integrated Development Environment,簡稱IDE)是使用Android Development Tools (ADT) 插件的Eclipse,儘管當時所有版本的IntelliJ IDEA對Android開發有著良好的支持[8]NetBeans也能通過一個插件來支持Android開發。[9]到了2015年,由Google開發,基於IntelliJ IDEA的Android Studio[10]成為了官方的IDE。然而,開發者們仍能自由選擇使用其他的IDE,但是Google闡明,為了能夠集中精力開發Android Studio,從2015年底起,正式棄用ADT插件。[11]另外,開發者們可以用任何一種文本編輯器來編輯Java和XML文件,然後使用命令行工具(需要安裝Java開發包Apache Ant)來創建、構建和調試Android應用以及控制連接的Android設備(比如,遠程觸發設備重啟或者安裝軟體包)。[12]

Android SDK增強功能與Android開發平台的關係緊密。Android SDK亦可以支持舊版本Android平台,以便有開發者想針對舊設備開發應用。開發工具都是一些可供下載的組件,所以下載了最新版本的開發工具之後,仍可以下載較舊版本用作兼容性測試。[13]

在Android中,應用程式被打包成APK文件儲存在/data/app目錄下(由於安全原因,僅有root用戶才能訪問該目錄)。APK文件中包含有.dex文件[14]Dalvik Executable,一種編譯字節碼文件)和資源文件等文件。

Android調試橋 編輯

Android調試橋(Android Debug Bridge,簡稱ADB)是Android SDK附帶的一個工具,由可以互相通信的客戶端-伺服器程序組成。一般通過命令行界面調用[15],另外也有多種可以調用ADB的圖形用戶界面程序。

一般使用以下命令格式來調用ADB:

adb [-d|-e|-s <序列号>] <命令>
      -d 指定使用USB连接的设备
      -e 指定在电脑上运行的Android模拟器
      -s 通过由ADB分配的序列号来指定设备
(如果仅有一个已连接的设备或运行中的模拟器,可以不用指定以上选项)

例如,可以通過命令backup將Android應用備份到一個文件(默認文件名是backup.ab)。[16]

2011年三月,有安全人員提出,在受到「資源耗盡攻擊」之後,ADB可以成為一個試圖在已連接的手機上安裝Rootkit程序的容器。[17]

Fastboot 編輯

Fastboot是一種包含在Android SDK內的診斷協議,主要用於通過USB連接在主機上修改設備的快閃記憶體文件系統。它要求在僅初始化最基本硬體的Bootloader模式或Secondary Program Loader模式下啟動設備。啟用協議之後,設備將接受一系列使用命令行通過USB埠發送給它的命令。

常用fastboot命令包括:

  • flash – 將主機上的一個二進位鏡像文件覆蓋到指定分區
  • erase – 擦除指定分區
  • reboot – 重啟設備後進入主系統或者Recovery系統,否則返回到Bootloader界面
  • devices – 顯示所有連接上主機的設備以及其序列號
  • format – 格式化指定分區(分區的文件系統必須能夠被設備識別)

Android NDK 編輯

Android NDK 編輯

Android NDK
開發者Google
首次發布2009年6月,​14年前​(2009-06[18]
程式語言C語言C++
作業系統
平台IA-32 (僅支持Windows)、x86-64
語言英文
類型軟體開發工具包
網站developer.android.com/ndk/index.html

通過Android NDK(Native Development Kit,原生開發工具包),用C/C++語言編寫的程序庫能夠編譯成ARM架構MIPS架構或者x86(或者其64位變種)機器碼並安裝在Android上。這些原生程序庫運行在Dalvik虛擬機上,通過System.loadLibrary調用可以被應用程式從Java代碼中調用,System.loadLibrary是標準Android Java類的一部分。[19][20]

Android開放配件開發套件 編輯

原生Go支持 編輯

外部硬體開發 編輯

第三方開發工具 編輯

AIDE 編輯

App Inventor for Android 編輯

Basic4android 編輯

Corona SDK 編輯

Delphi 編輯

HyperNext Android Creator 編輯

Kivy 編輯

Lazarus 編輯

Processing 編輯

Qt for Android 編輯

RubyMotion 編輯

SDL 編輯

Visual Studio 2015 編輯

Xamarin 編輯

Android開發者挑戰賽 編輯

社區維護固件 編輯

Java標準 編輯

歷史和市場份額 編輯

參見 編輯

參考資料 編輯

  1. ^ The Android Source Code  |  Android Open Source Project. source.android.com. [2017-07-24]. 
  2. ^ Syed H. Editorial: Why You Should Go Nexus. Droid Lessons. 2012-9-24 [2017-07-24]. 
  3. ^ SDK Tools | Android Developers. Developer.android.com. [2017-07-24]. 
  4. ^ Command Line Tools | Android Studio. Android Developers. 2009-7-21 [2017-07-24]. 
  5. ^ appfour. AIDE- IDE for Android Java C++ - Android Apps on Google Play. google.com. 
  6. ^ gesturedevelop. Java Editor - Android Apps on Google Play. google.com. 
  7. ^ Tanapro GmbH, Tom Arn. JavaIDEdroid - Android Apps on Google Play. google.com. 
  8. ^ IntelliJ Android Development. [2017-07-24]. 
  9. ^ NBAndroid Plugin. [2017-07-24]. 
  10. ^ Download Android Studio and SDK Tools | Android Studio. 
  11. ^ Eason, Jamal. An update on Eclipse Android Developer Tools. Android Developers Blog. Google. 2015-6-26 [2017-07-24]. 
  12. ^ Westfall, Jon. Backup & Restore Android Apps Using ADB. JonWestfall.com. 2009-8-25 [2017-07-24]. 
  13. ^ SDK Tools Release Notes | Android Studio. 
  14. ^ Android SDK Glossary. 
  15. ^ "Android Debug Bridge | Android Developers"
  16. ^ Jack Wallen. How to create a full backup of your Android device without root. 2015-03-06 [2017-07-24]. 
  17. ^ Lemos, Robert. Open source vulnerabilities paint a target on Android. 2011-03-25 [2017-07-26]. 
  18. ^ 18.0 18.1 Android NDK | Android Developers. Developer.android.com. 2012-10-13 [2017-07-30]. 
  19. ^ Srinivas, Davanum. Android — Invoke JNI based methods (Bridging C/C++ and Java). 2007-10-09 [2017-11-17]. 
  20. ^ System | Android Developers. Android Developers. [2017-11-17]. 

參考文獻 編輯

外部連結 編輯