用户: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.