User: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.