《Android 应用程序开发与典型案例》
½者:华清远见
第
1
章
Android
基本概念
本章目标
本章介绍 Android 基本概念方面的内容,
包括 Android 平台特性、
Android 系统
架构、Android 开发框架以及 OMS 介绍。
1.1
Android
简介
专业始于专注 卓识源于远见
Android
一词的本义指
“机器人” 它是由
Google
公司于
2007
年
11
月推出的基于
Linux
平台的开源手
,
机操½系统,依靠
Google
的强大开发和媒½资源,Android 成为众多手机厂商竞相½逐的对象,逐渐发展
成为目前最流行的手机开发平台。图
1-1
所示为
Android
系统的
Logo。
图
1-1
Android
系统的
Logo
Android
是一个包括操½系统、
中间件、
用户界面和关键应用½件的移动设备½件堆。
换句话说,
Android
是基于
Java
并运行在
Linux
内核上的½量级操½系统,功½全面,包括一系列
Google
公司在其内½的应
用½件,如电话、短信等基本应用功½。图
1-2
所示为
Android
的模拟器,从中可以大概了解
Android
的
运行界面。
图
1-2
问:模拟器和真机有什么区别呢?
答:
Android
模拟器
模拟器不支持呼叫和接听实际来电,½可以通过控制台模拟电话呼叫(呼入和呼出)
。
模拟器不支持USB连接。
模拟器不支持相机/视频捕捉。
模拟器不支持音频输入(捕捉)
,½支持输出(重放)
。
模拟器不支持扩展耳机。
模拟器不½确定连接状态。
模拟器不½确定电池电量水平和充电状态。
模拟器不½确定SD卡的插入/弹出。
模拟器不支持蓝牙。
1.2
Android
平台特性
‐ 2 ‐
专业始于专注 卓识源于远见
随着科技的发展,移动电话(Mobile
Phone)正向着智½化的方向迈步,并逐步成为多种工具的功½
½½½,而
Android
就是这样一个智½手机的平台,一个多种工具的功½½½½。
1.通信工具
移动电话的最基本功½即为通信,因此,½用运营商提供的通信½络进行语音通话也是
Android
平台
的最基本功½。除了传统的语音通话功½外,Android 平台还具有短消息功½,以及通常移动电话½具有
的个人信息系统管理方面的功½(如电话本等)
。
2.½络工具
随着数字业务½用的普遍化,移动电话通常½为½络工具½用,这样移动电话可以完成电脑的部分功
½。由此,Android 平台在½络方面的功½主要包括浏览器、IM(即时信息)
、邮件等,基本包含了½络方
面的大部分功½。
3.媒½播放器
随着多媒½技术的应用,在移动电话上进行音频和视频播放已经成为经常½用的功½。由此,Android
平台具有支持更多的音频/视频格式,支持更高分辨率的视频、更流畅地播放,以及和½络结合的流媒½方
面等功½。
4.媒½获取设备
随着移动电话与媒½获取设备的集成日益增强,
Android
平台提供了照相机、
½音机、
摄像机等功½。
5.多类型的连接设备
Android
平台提供了多种连接方式,如
USB、GPS、红外、蓝牙、无线局域½等。
6.具有友½和绚½的用户界面
Android
平台具有友½的用户界面,½用户容易学习和操½,同时具有绚½的用户界面,具有良½的
视觉效果。
7.可以个性化定制的平台
Android
平台对于用户的个性化需求,提供了全面自定义手机的功½。
除了以上介绍
Android
平台的功½以外,其在技术上还具有以下几个方面的特性。
全开放智½移动电话平台。
支持多硬件平台。
½用众多的标准化技术。
核心技术完整、统一。
完善的SDK和文档。
完善的辅助开发工具。
1.3
Android
系统架构
如图
1-3
所示,Android 系统从下至上分为四层:Linux 内核、Android 核心库及
Android
运行时环境
(Android
Runtime)
、应用程序框架以及应用程序等。
‐ 3 ‐
专业始于专注 卓识源于远见
图
1-3
Android
系统框架
1.3.1
Linux
内核(Linux
Kernel)
Android
的核心系统服务依赖于
Linux 2.6,例如,安全、内存管理、进程管理、½络堆栈、驱动模型。
Linux Kernel
也½为硬件和½件之间的½象层,它隐藏具½硬件细节而为上层提供统一的服务。
除了标准的
Linux
内核以外,Android 系统还增加了内核的驱动程序,例如,显示驱动、蓝牙驱动、
相机驱动、闪存卡驱动、Binder
IPC
驱动、输入设备驱动、USB 驱动、WiFi 驱动、音频系统驱动、电源管
理等,为
Android
系统的运行提供基础性支持。
这样分层的½处就是½用下层提供的服务而为上层提供统一的服务,屏½本层及以下层的差异,½本
层及以下层发生了变化时,
不会½响到上层。
也就是说,
各层各½其职,
各层提供固定的
SAP
(Service
Access
Point)
,即高内聚、½耦合。
1.3.2
Android
核心库(Libraries)
Android
包含一个
C/C++库的集合,以供 Android
系统的各个组件½用。这些功½通过
Android
的应用
程序框架(Application
Framework)展现给开发者。下面列出一些核心库:
系统
C
库——由
BSD
继承衍生的标准
C
系统½数库(libc)
,调整为基于嵌入式
Linux
设备的库。
媒½库——基于
PacketVideo
的
OpenCORE。这些库支持播放和½制多种流行的音频和视频格式,
以及多种媒½格式的编码/解码格式,包括
MPEG4、 H.264、 MP3、AAC、AMR、JPG、PNG。
界面管理——显示子系统的管理器,管理访问显示子系统和无缝组合多个应用程序的二维和三维
图½层。
LibWebCore——新式的 Web
浏览器引擎,驱动
Android
浏览器和可嵌入的
Web
视图。
SGL——Skia
图½库,基本的
2D
图½引擎。
3D libraries——基于 OpenGL ES APIs
的实现。该库½用硬件
3D
加速或½用高度优化的
3D
½加
速。
FreeType ——½图(Bitmap)和矢量(Vector)字½渲染。
SQLite ——所有应用程序½可以½用的强大而½量级的关系数据库引擎。
1.3.3
Android
运行时环境(Android
Runtime)
在
Linux
内核层上还有一个
Android
运行时层,该层包括
Dalvik
虚拟机及
Java
核心库,提供了
Java
编程语言核心库的大多数功½。
‐ 4 ‐
专业始于专注 卓识源于远见
Dalvik
虚拟机是
Android
½用的
Java
虚拟机。每一个
Android
应用程序是
Dalvik
虚拟机中的实例,运
行在它们自己的进程中。Dalvik 虚拟机设计成在一个设备上可以高效地运行多个虚拟机。Dalvik 虚拟机可
执行的文件格式是.dex, 格式是专为
Dalvik
设计的一种压缩格式,
.dex
适合内存和处理器速度有限的系统。
大多数虚拟机(包括
JVM)½是基于栈的,而 Dalvik
虚拟机则是基于寄存器的。两种架构各有优劣,
一般而言,基于栈的机器需要更多的指令,而基于寄存器的机器指令更大。DX 是一套工具,可以将
Java .class
½换成
.dex
格式。一个.dex 文件通常会有多个.class。由于.dex 有时必须进行最½化,会½文
件大小增加
1~4
倍,以
ODEX
结尾。
Dalvik
虚拟机依赖于
Linux
内核提供基本功½,如线程和底层内存管理。
1.3.4
Android
应用程序框架(Application
Framework)
½于
Android
程序库和运行时上面的是应用程序框架层。通过提供开放的开发平台,Android ½开发
者½够访问核心应用程序所½用的
API
框架,这样½得组件的重用得以简化,任½应用程序½½发布它的
功½且任½其他应用程序可以½用这些功½(需要服从框架执行的安全限制)
。从而½开发者可以编制极
其丰富和新颖的应用程序,自由地利用设备硬件优势、访问½½信息、运行后台服务、设½闹钟、向状态
栏添加通知等。
每个应用程序其实是一组服务和系统,包括:
视图(View)——丰富的、可扩展的视图集合,用来构建应用程序。包括列表(ListView)
、½格
(Grid) 文本框
、
(EditText/TextView) 按钮
、 (Button) 甚至是可嵌入的½页浏览器
等,
(WebView)
。
内容提供器(Content
Providers)——½应用程序可以访问其他应用程序(如通讯½)的数据,或
共享自己的数据。
资源管理器(Resource
Manager)——提供对于非代码资源的访问,如本地化字符串、图½和布局
文件。
通知管理器(Notification
Manager)——½应用程序½够在状态栏显示自定义的提示信息。
活动管理器(Activity
Manager)——管理应用程序生½周期,并提供常用的导航回退功½。
1.3.5
Android
应用程序
Android
装配一个核心应用程序集合,连同系统一起发布,这些应用程序包括电子邮件客户端、SMS
程序、日历、地图、浏览器、联系人和其他设½等。而所有应用程序½是用
Java
语言编写的,由用户开发
的
Android
应用程序和
Android
核心应用程序是同一层次的。
1.4
Android
开发框架
Android
系统½为一个开放的系统,它½积庞大,对于不同的开发者来说,在开发过程中并不需要掌
握整个
Android
系统,只需要进行其中某一部分的开发。由此,从功½上将
Android
开发分为移植开发移
动电话系统、Android 应用程序开发,以及
Android
系统开发三种。
从商业模式的角度来讲,移植开发移动电话系统和
Android
应用程序开发是
Android
开发的主流。移
植开发移动电话系统主要是由移动电话的制造者来进行开发,其产品主要是
Android
手机;而公司、个人
和团½一般进行
Android
应用程序的开发,产生各种各样的
Android
应用程序。
对于
Android
移植开发,其主要工½集中于
Linux
内核中的相关设备驱动程序及
Android
本地框架中
的硬件½象层接口的开发;对于
Android
应用程序开发,其开发的应用程序与
Android
系统的第四个层次
的应用程序是一个层次的内容;对于
Android
系统的开发,涉及
Android
系统的各个层次,一般情况下是
从底层到上层的整½开发。
Android
开发框架包括基本的应用功½开发、数据存储、½络访问三大块。
‐ 5 ‐
评论