您的位置:首页 > 移动开发 > Android开发

android基础介绍

2010-10-27 11:58 211 查看
学习了一些时间的android,对android大致有些了解,下面是对开发文档的部分翻译,可以作为android的入门介绍

应用基础

android应用程序是用java编写的,被编译后的java代码,还有任何该应用需要的数据和资源文件都会被aapt工具打包,这个包的后缀

是.apk,这个文件用以发布应用并安装到移动设备上。所有在单个.apk文件中的代码被认为属于一个应用程序。

从许多方面来说,每个android应用存在于它自己的世界里:

1、默认情况下,每个应用运行在它自己的linux进程中。当应用中的任何代码需要执行时,android便启动这个进程,当不再需要执行并且

资源被其他应用请求时便终止这个进程

2、每个进程拥有它自己的虚拟机,所以应用程序代码与其他应用是隔离的

3、默认情况下,每个应用会被分配一个唯一的linux用户ID,用以设置许可以便应用程序的文件只对该用户和应用本身可见(尽管也有

方法使之对其他应用可见)

有时可能会配置两个应用共享相同的用户ID,在这样的情况下它们的文件彼此可见,为了节约系统资源,拥有相同用户ID的应用可以运

行在相同的linux进程里,共享相同的虚拟机

应用组件

android应用一个中心特点就是,一个应用可以使用其他应用的一个元素,例如,如果你的应用需要显示一组滚动图片,而另一个应用

开发了一个合适的滚动条并对其他应用是可用的,你就能调用那个滚动条做你想做的工作,而不是自己再开发一个滚动条。你的应用不

会与其他应用的代码混合或者链接,而是应用需要时便运行那个应用的需要的那部分代码。

为了能实现这样的目的,当应用任何部分需要运行时系统必须能够启动应用进程,并实例化这部分的java对象,因此,不像其他系统的

应用,android应用没有一个单独的程序入口,实际上,它拥有许多基本的组件,系统能够实例化并且需要时运行它们,这里有四种类

型的组件

Activities

一个activity代表了一个可视化的用户接口,比如,一个activity可以呈现一组菜单,用户可以选择或者显示带有标题的图片,一个文

本信息应用可以使用一个activity显示连接上的可以发送消息的联系人列表,而第二个activity编写信息发给前面列表中选择的联系人

,而其他activity可以查看信息或者改变设置。尽管它们彼此协同工作,但每个activity与其他的activity是独立的,每个activity实

现为一个Activity基类的子类。

一个应用可以只包含一个activity,它也可以包含许多个,就像上面提到的文本信息应用一样。当然,这些activity需要干什么,基于

多少activity完全取决与应用需要和它的设计。典型的,当一个应用启动时,这些activity中有一个将会被第一个呈现给用户。从一个

activity到另一个activity是通过当前的activity启动下一个activity完成的。

每个activity会有一个默认的窗口。典型的,这个窗口会填充屏幕,但是它可能比屏幕小并浮动在其他窗口之上,一个activity也可以

使用额外的窗口,比如,在一个activity中间需要一个弹出窗口请求用户应答,或者当用户选择了屏幕上一个特别的项,弹出一个重要的

信息窗口。

窗口上可视内容是由层次化的视图提供的,这些对象继承自View类。每个视图控制了窗口上一个特别的矩形区域。父视图包含并组织其

子视图的布局。叶视图(它们处于视图层次结构的底端)直接控制并应答用户的动作。因此,视图出现在用户与activity发生交互的每

个地方。android实现了许多可直接使用的视图:包括按钮,文本框,滚动条,菜单,选择框等等

Services

一个服务没有一个可视化的用户接口,而是在后台运行不定的时间。例如,当用户准备干其他事时一个服务可以在后台播放音乐,或者

它从网络查询数据提供结果给其他需要这些数据的activities,每个服务继承自Service基类。

一个典型的例子就是媒体播放器播放歌曲列表。这个播放器应用可能有一个或者更多的activities允许用户选择歌曲并且播放它们。然

而,音乐的录音重放可能无法掌控,因为用户可能期望自己在离开播放器做其他事情时,音乐也能继续播放。为了保持音乐继续播放,

媒体播放activity可以开始一个服务在后台执行,这个activity开始这个服务后系统可以维持该服务。

我们可以连接上一个正在运行的服务。当连接上后,你就可以通过接口与服务通信。例如,对于音乐服务,它的接口可以允许用户暂停、停止

并重启。

像其他应用组件一样,服务运行在应用进程的主线程中,以便它们不会妨碍其他组件或者用户接口,通常服务会引发其他线程运行用于运行

耗时间的任务。

Broadcast receivers

广播接收者除了接收通知并与广播通知交互外什么也不做。许多广播产生于系统码,例如,通知时区的改变。应用也可以发起广播,例如,让其他应用知道数据已经下载到设备上可以使用了。

一个应用能够拥有任何数量的广播接收者应答任何它认为重要的的通知。所有接收者继承自BroadcastReceiver基类。

广播接收者不会显示用户接口,然后,它可以启动一个activity应答它接收到的信息,或者使用通知管理器提示用户。通知能够通过多种方式提示用户,如背光灯闪烁,震动设备等等。它们典型的会在状态栏上放置一个持续的图标,用户可以打开它获取信息。

Content providers

一个内容提供者使一组特定的应用数据对其他应用可见。这些数据可以存储在文件系统,SQLite数据库等等。一个内容提供者继承自ContentProvider基类实现一组标准的方法,使得其他应用可以恢复并保存它支持的数据类型。然而,应用不会直接调用这些方法。而是使用ContentResolver对象并且调用它的方法来实现数据访问。一个ContentResolver能够与任何内容提供者通信,它与提供者协作管理任何它涉及的进程间通信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: