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

参考文献[编辑]

外部链接[编辑]