Android 是一个用于移动设备的软件堆栈。这意味着优先级最高的事是保持电池电量和有效地管理有限的内存资源。中培伟业《Android APP架构开发应用实战培训》专家刘老师指出,Android 系统堆栈有 5 个不同的层:
Acorn RISC MachineARMLinux 内核构成了所有其他层所依赖的坚实基础。Linux 被证明是一种高可靠性的技术,而 ARM 处理器以能在非常低的电源需求下发挥高性能而著称。
库提供可重用的和可共享的低级代码,用于基本函数,如 codecs(用于编码和解码数字音频与视频的软件),以及用于在小的显示器上表示丰富图形的函数、支持在云中加密 TCP/IP 流量的安全 shell,以及支持 Web 浏览(WebKit)的组件、SQL 数据库功能(SQLite)和可以在 Linux 系统中使用的标准 C 库功能。
Dalvik 运行时字节码解释程序非常类似于 Java? 语言的字节码解释程序,它添加了几个独特的特性,使用独特的方式定义了 Android 的安全和电力保持模型。例如,当前运行的每个应用程序都运行自己的用户 ID 和解释程序副本以严格区分进程,从而实现安全性和可靠性。
Android 应用程序框架允许您使用和替换您认为适合的组件。这些高级 Java 类与定义 Android API 的组件紧密集成在一起。
Android 核心应用程序包括 WebKit 浏览器、Google 日历、GmailMaps 应用程序、SMS messenger 和一个标准的电子邮件客户机等等。Android 应用程序是用 Java 编程语言编写的,您可以随时从 Android 市场下载更多的 Android 应用程序。
每个 Android 应用程序可以被进一步划分为不同的功能单元:
活动(Activities
目的(Intents
服务(Services
安全模型(Security model
活动
活动 Android 应用程序的一个组件,它扩展 Activity 基类并定义一个由响应事件 的 视图(View)组成的接口。如果一个应用程序由 3 个窗口(例如,一个登录窗口、一个文本查看窗口和一个文件查看窗口)组成,那么每一个窗口通常用一个不同的 Activity 类来表示。
Android 维护每个从主页中运行的应用程序的历史堆栈,您可以单击 Back 按钮回滚这些活动的历史。
目的
目的 与活动一样,是应用程序代码中的一个特殊类,定义应用程序要做的事情。目的添加了一个间接层来支持复杂组件的重用和替换。例如,某个应用程序可能提供了一个标签为 Clients 的按钮,单击该按钮时,会显示一个联系人列表,上面都是您的客户。然后就要使用间接层了:您不需要对这些联系人使用默认查看器;相反,可以使用一种不同的查看器。
对某些应用程序而言,这可能是一个非常强大的应用程序集成功能。对于特殊的显示,使用地形图或许要比使用默认地图的效果更好。
诸如 BroadcastReceiver 这样的类定义的代码将在外部事件触发它们时执行。定时器鸣叫或手机来电等事件可以以这种方式进行监视。通常,这类代码不显示窗口,但可以使用 NotificationManager 类来提醒用户需要注意某事。
服务
服务 是在较低级别运行的一个应用程序,没有显示,也没有 UI。它通常是一个会在幕后运行很长时间的应用程序。一个很好的例子就是播放歌曲列表的媒体播放器程序。尽管媒体播放应用程序会显示一个 UI 来允许用户定义他们的播放列表,但是程序实际上是让服务来控制给定播放列表中的歌曲播放。
安全模型
Android 的安全模型只允许程序有自己的数据。如果程序员想在几个不同程序之间共享数据,他们可以为此定义内容提供者。
android.provider 包定义一些允许应用程序读取大量内置 Android 数据库的类和接口。联系人、照片和歌曲等信息可以通过这些接口在不同应用程序之间轻松共享。
永远不要低估开放源代码的强大威力,就像不能低估自由的、有创造性的人们的能力一样。Android 平台不受专用 API 和经常影响软件工程进度的公司利益的束缚,它拥有一个非常活跃的大型开发人员社区,将许多人的才能结合起来确实实现了一加一大于二的效果。想拓展您的编程职业生涯吗? Android 平台编程无疑是非常良好的选择。而且某一天,您将拥有包含几百万名移动电话用户的潜在市场 — 其中一些人可能需要使用您的程序。
Android 的核心是 ARM Linux。单凭这一点就可以对此平台的迅速发展抱有极大信心。而且在市场方面,移动互联网的飞速发展也为Android 的开发提供了广阔的发展空间。