智能手机操作系统Android

1、Android系统概述

• Android(安卓)本义是“机器人”。
• Android由Google公司开发;
• Android是基于Linux内核的开放源代码操作系统。
• Android主要用于移劢设备。
• 如,智能手机,平板电脑,汽车导航仪等。

2、Android系统结构

Android系统采用分层结构
在这里插入图片描述

(1)应用程序层

• 应用层包括通话、短信、联系人等系统应用; • 还包括其他后续安装的第三方应用程序。 如浏览器、微信、地图等。

• Android应用程序采用Java语言开发。
• Android可以用C/C++开发底层模块;
• 但是,开发者只能使用C/C++编写功能类库,而丌是整个应用程序。
• Android的界面显示、进程调度等核心机制都通过Java来实现。

(2)应用程序框架

• 活动:用于表现功能;
• 服务:指后台运行的进程,不提供用户界面;
• 广播:用于接收广播信息;
• 内容:存储和读取数据,相当于数据库。

活动管理器(Activity)
• Android 系统中,所有程序都运行在活动中(进程)。
• 活动一般代表手机屏幕的一屏。
• 一个Android应用由多个活劢组成。
• 多个活劢之间可以相互跳转。
• 如,按下一个按钮后,可能会跳转到其他的屏幕(另一个活动)。
• 跳转到新屏幕时,之前的屏幕进入暂停状态。

服务管理器(Service)
• 服务也是一种进程,它只能在后台运行,没有用户界面。
• 如,前台上网,后台播放音乐,播放进程由服务控制。

广播接收器(BroadcastReceiver)
• 广播是程序之间传输信息的机制;
• 可以使用广播让应用程序对一个外部事件做出响应。
• 如,电话呼入时,可利用广播将当前进程切换到电话接入。
• 如,文件下载完成时,可以利用广播进行提示处理。
• 广播没有用户界面,它通过通知管理器告诉用户发生了某些事情。

内容提供器(Content Provider)
• 第三斱方应用程序的数据访问方案。
• 在Android中,应用程序的数据,不允许其他应用程序直接访问。

(3)系统运行库

系统运行库组成:库函数层(Library)和Dalvik虚拟机。
• Libc是从BSD继承的标准C函数库。
• WebKit是用于Web浏览器引擎。
• SQLite是多媒体数据库。
• OpenCORE是基础多媒体库。
• FreeType是字体引擎。
• Surface 用于显示系统管理。
• skia是2D向量图形处理函数库。
• OpenGL是3D图象与业图形程序接口。
• SSL(安全套接层)提供通信安全和数据完整性检测。

(4)运行时机制

• 运行时机制组成:Java核心类库+Java虚拟机(Dalvik)。
• Java核心类库包括:Java对象库、文件管理库、网络通信库等。
• Dalvik是Android的Java虚拟机;
• Dalvik负责执行应用程序,分配存储空间,管理进程等工作。
• Dalvik采用的二进制码文件为.dex。
• Android应用程序编译时,会先生成若干个.class文件,然后统一转换成.dex文件。
• .dex文件通常比.class文件更精简。

(5)Linux内核

• Android系统搭建在Linux内核之上;
• Android的Linux内核包括:
安全管理,存储器管理,程序管理,网络堆栈,驱动程序模型等。
• Android的硬件抽像层(HAL)是硬件驱劢模块。
• 目的是将Android与Linux内核隔离开;
• 使Android不至过度依赖 Linux内核。

3、Android应用程序安装包APK

• 文件后缀名为apk(Android安装包)的文件是安卓应用程序安装包。
• 将APK文件传送到Android手机后,可选择安装或不安装应用程序。
• apk文件其实是zip格式,并非Java ME字节码文件。

Android重要文件夹: • 存放系统文件的/system文件夹; • 存放配置文件的/dev文件夹; • SD卡中存放程序和数据的/sdcard文件夹。