Android 基础 (1/n)
时间:2010-08-22 来源:cheney23reg
1. Android 概述
Android程序是利用Java语言来开发的。编译完成的java代码、数据和资源文件是通过一个叫做aapt的工具进行打包,打包之后会生成一个.apk文件。最终用户可以将.apk文件安装在Android手机上; 一般情况下,一个.apk文件就被称为一个应用程序。
每一个Android应用程序是运行在一个独立环境中的,这体现在很多方面:
* 默认情况下,每一个Android应用程序是运行在一个独立的linux进程中的。当应用需要被启动时,Android会启动一个进程来运行它;当不再需要一个应用时,并且其它应用请求系统资源时,Android就会关闭这个进程。
* 每一个进程都拥有一个独立的虚拟机(VM)。所以每一个应用程序相对于其它的应用程序是运行在一个孤岛环境中的。
* 默认情况下,每一个Android应用程序都分配了一个linux用户id,并且进行了相关的权限设置,所以应用程序的文件只是对本应用程序是可访问的(当然,也是一些方式方法来将这些文件导出给其它的应用程序使用)。
多个应用程序是可以分配一个相同的用户id,这样的话,它们就能够访问彼此的文件了。多个拥有相同id的应用程序也可以运行在同一个linux进程中,共用相同的虚拟机,以节约系统资源。
2. Android应用程序的组件
Android的一个主要特性就是一个应用程序可以利用其它应用程序的元素(如果其它应用程序许可)。
比如你的应用程序需要显示一个滚动列表的图像,并且另外的一个应用程序已经开发出了一个适合的滚动列表,而且允许这个滚动列表利用在其它的应用应用程序中。那么你就可以调用那个滚动列表来完成工作,而不需要再亲自去开发滚动列表。你的应用并不需要包含那个应用程序的代码,也不需要链接它。你只需要在程序需要的时候,启动含那个应用程序的片段即可。
为了保证上述机制正常工作,当一个应用程序的某部分被请求和需要时,系统必须能够启动一个应用程序进程,并且初始化代表那一部分的Java对象。所以,和大多数其它的系统不同,Android应用程序没有一个唯一的入口(比如说 main 函数),而是拥有一些系统能够初始化和运行的基本组件。以下是4种基本组件的说明:
Activities
一个 activities 代表一个可视化的用户接口(An activity presents a visual user interface for one focused endeavor the user can undertake)。比如说,一个activity可能代表菜单项的列表,用户可以从中选择,或者这个列表显示一些带有标题的照片。一个文本短信的应用程序可能有一个显示通讯录列表的activity,还有一个给指定联系人编写短信的activity,并且可能还有一个查看以前的短信或是设置的activity。虽然它们共同组成了一个紧密结合的用户界面,但是每一个activity都不依赖其它activity。每一个activity都继承(extends) android.app.Activity类。