用戶: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]. 

參考文獻[編輯]

外部連結[編輯]