用戶:Yushaen0722/Android軟件開發
本草稿尚未完成,內容未必可信。 本草稿未來可能會被移動成為正式內容。 來源搜尋:「"Android軟件開發"」——Google:網頁、新聞、學術、圖書、圖片;百度:網頁、新聞、學術、圖片;知網工具書;JSTOR;維基百科圖書館 本用戶頁由Yushaen0722(貢獻·日誌)於7年前最後編輯。 |
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.