用戶:Yushaen0722/Android軟件開發
本草稿尚未完成,內容未必可信。 本草稿未來可能會被移動成為正式內容。 來源搜尋:「"Android軟件開發"」——Google:網頁、新聞、學術、圖書、圖片;百度:網頁、新聞、學術、圖片;知網工具書;JSTOR;維基百科圖書館 本用戶頁由Yushaen0722(貢獻·日誌)於6年前最後編輯。 |
Android軟件開發是指開發在Android上運行的應用程式的活動,以Java作為主要程式語言(也支持Kotlin或其他語言),並使用Android軟件開發工具包或其他的開發環境。
官方開發工具
編輯Android SDK
編輯開發者 | |
---|---|
首次發佈 | 2009年10月 |
當前版本 | 26.0(2017年3月[3]) |
程式語言 | Java |
作業系統 | 跨平台 |
語言 | 英文 |
類型 | 集成開發環境, 軟件開發工具包 |
網站 | developer |
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
編輯開發者 | |
---|---|
首次發佈 | 2009年6月[18] |
當前版本 | 15(2017年6月[18]) |
程式語言 | C語言、C++ |
作業系統 |
|
平台 | IA-32 (僅支持Windows)、x86-64 |
語言 | 英文 |
類型 | 軟件開發工具包 |
網站 | developer |
通過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標準
編輯歷史和市場份額
編輯參見
編輯參考資料
編輯- ^ The Android Source Code | Android Open Source Project. source.android.com. [2017-07-24].
- ^ Syed H. Editorial: Why You Should Go Nexus. Droid Lessons. 2012-9-24 [2017-07-24].
- ^ SDK Tools | Android Developers. Developer.android.com. [2017-07-24].
- ^ Command Line Tools | Android Studio. Android Developers. 2009-7-21 [2017-07-24].
- ^ appfour. AIDE- IDE for Android Java C++ - Android Apps on Google Play. google.com.
- ^ gesturedevelop. Java Editor - Android Apps on Google Play. google.com.
- ^ Tanapro GmbH, Tom Arn. JavaIDEdroid - Android Apps on Google Play. google.com.
- ^ IntelliJ Android Development. [2017-07-24].
- ^ NBAndroid Plugin. [2017-07-24].
- ^ Download Android Studio and SDK Tools | Android Studio.
- ^ Eason, Jamal. An update on Eclipse Android Developer Tools. Android Developers Blog. Google. 2015-6-26 [2017-07-24].
- ^ Westfall, Jon. Backup & Restore Android Apps Using ADB. JonWestfall.com. 2009-8-25 [2017-07-24].
- ^ SDK Tools Release Notes | Android Studio.
- ^ Android SDK Glossary.
- ^ "Android Debug Bridge | Android Developers"
- ^ Jack Wallen. How to create a full backup of your Android device without root. 2015-03-06 [2017-07-24].
- ^ Lemos, Robert. Open source vulnerabilities paint a target on Android. 2011-03-25 [2017-07-26].
- ^ 18.0 18.1 Android NDK | Android Developers. Developer.android.com. 2012-10-13 [2017-07-30].
- ^ Srinivas, Davanum. Android — Invoke JNI based methods (Bridging C/C++ and Java). 2007-10-09 [2017-11-17].
- ^ System | Android Developers. Android Developers. [2017-11-17].
參考文獻
編輯- Ed, Burnette. Hello, Android: Introducing Google's Mobile Development Platform 3rd. Pragmatic Bookshelf. July 13, 2010. ISBN 978-1-934356-56-2.
- Ableson, Frank; Sen, Robi; King, Chris. Android in Action, Second Edition 2nd. Manning. January 2011. ISBN 978-1-935182-72-6.
- Conder, Shane; Darcey, Lauren. Android Wireless Application Development Volume II: Advanced Topics 3rd. Addison-Wesley Professional. July 24, 2012. ISBN 0-321-81384-7.
- Murphy, Mark. Beginning Android 1st. Apress. June 26, 2009. ISBN 1-4302-2419-3.
- Meier, Reto. Professional Android 2 Application Development 1st. Wrox Press. March 2010. ISBN 978-0-470-56552-0.
- Haseman, Chris. Android Essentials 1st. Apress. July 21, 2008. ISBN 1-4302-1064-8.
- Clifton, Ian. The Essentials of Android Application Development LiveLessons (Video Training) 1st. Addison-Wesley Professional. August 3, 2012. ISBN 0-13-299658-8.