引言:
目前主流的移动端应用主要由安卓和ios两种语言开发;
本篇及接下来几篇将介绍Android应用程序的原理及术语,这些也是作为一个Android的开发人员必须要了解,且深刻理解的东西。本文的结构如下:
1、应用程序基础
2、应用程序组件
2.1、活动(Activities)
2.2、服务(Services)
2.3、Intent
2.4、广播接收者(Broadcast receivers)
2.5、Notification
2.6、内容提供者(Content providers)
1、应用程序基础
Android应用程序是用Java编程语言写的。编译后的Java代码——包括应用程序要求的任何数据和资源文件,通过aapt工具捆绑成一个Android包,归档文件以.apk为后缀。这个文件是分发应用程序和安装到移动设备的中介或工具,用户下载这个文件到他们的设备上。一个.apk文件中的所有代码被认为是一个应用程序。
aapt:
aapt是Android Asset Packaging Tool的首字母缩写,这个工具包含在SDK的tools/目录下。查看、创建、更新与zip兼容的归档文件(zip、jar、apk)。它也能将资源文件编译成二进制包。
尽管你可能不会经常直接使用appt,但是构建脚本(build scripts)和IDE插件会使用这个工具打包apk文件,构成一个Android应用程序。
如需更详细的使用细节,打开一个终端,进入tools/目录下,运行命令:
Linux或Mac操作系统:./aapt
Windows:aapt.exe
注意:tools/目录是指android SDK目录下的/platforms/android-X/tools/
在许多方面,每个Android应用程序生活在它自己的世界:
默认情况下,每一个应用程序运行在它自己的Linux进程中。当应用程序中的任何代码需要执行时,Android将启动进程;当它不在需要和系统资源被其他应用程序请求时,Android将关闭进程。
每个应用程序都有他自己的Java虚拟机(VM),因此应用程序代码独立于其他所有应用程序的代码运行。
默认情况下,每个应用程序分配一个唯一的Linux用户的ID。权限设置为每个应用程序的文件仅对用户和应用程序本身可见——虽然也有一些方法可以暴露他们给其他应用程序。
有可能设置两个应用程序共享一个用户ID,这种情况下,他们能够看到对方的文件。为了节省系统资源,具有相同ID的应用程序也可以安排在同一个Linux进程中,共享同一个VM。
2、应用程序组件
Android的一个主要特点是,一个应用程序可以利用其他应用