Android概览
1.1 Android的开发缘由
早起的移动电话单单只具有手机的功能,并没有追求更多的追求功能和游戏娱乐。而在诺基亚提供的“贪吃蛇”游戏集成获得巨大成功的时候,手机制造商们才意识到手机可不不单单用来通信。
不过,却没有足够的动机与资源将用户所需要的所用应用程序都放到手机中,他们需要有某种途径来建议一个门户。恰巧,Internet就是一个不错的选择。不过,那时候的因特网的专业网站常常是色彩斑斓,分辨率远超手机,如何在手机上来更好的显示就成了个问题。
这个问题也就诞生了WAP协议,这个协议其实就是HTTP协议的缩略版,不同于传统的网络浏览器,WAP浏览器被设计为可以在手机内存和带宽的限制下可以运行的程序。而第三方WAP网站,则设计了一套称为无线标记语言(WML)。只不过,相对与专业网站来说,这些WAP网站设计的较为简单。
但是,在WAP带给手机制造商福音的同时,也出现了一系列的问题。譬如,利用WAP进行获利是一件非常困难的事情,没有任何一种内建的付费机制。即便获利,也是对于一些广受欢迎的WAP应用程序,例如像是手机的个性化,壁纸、彩铃之类的。
不过,WAP的不稳定和操作繁琐,却造就了WAP的盈利困境。更何况,移动运营商的一些打击策略,更是挫伤了开发者的激情。
不仅如此,因为共享而造就的不同种类的专用平台,在一定程度上却扼杀了许多极好的应用程序和极佳的点子。
幸运的是,Google决定进军移动领域,它翻新了整个建立在无线应用开发上的系统,旨在为用户和开发人员提供一个更为开放的环境——因特网模式,其允许用户在免费软件、共享软件和付费软件中自由选择,恰恰孕育了服务提供商的自由市场竞争。
在这以基础上,Google联合一些“无线领域”的成员,于2007年11月成立开放手机联盟。
而在此之前的05年,Android被Google收购,旨在建立一个非专用的、开放标准的平台,缓解上述的诺干问题对移动领域的阻碍。
这也就是Android开发的缘由。
1.2 Android的发展
Android平台之所以如此成功,是因为它表现出了强劲的石头,每一个新的Android手机设备都要比之前一年生产的更为强大。以至于在与其他手机操作系统的竞争中,逐步脱颖而出,成就手机领域的霸主地位。
1.3 Android的特点
1.3.1完整
在完整的操作系统上构建了一个健壮的应用程序框架
1.3.2开放
开发人员可以获得前所未有的访问手机设备的权限
1.3.3免费
在这个平台上开发的所有应用程序是不需要任何许可证的,不需承担任何版权费,换言之,他是免费的
1.4 Aandroid平台
1.4.1体系结构
可以认为Android本身就是一个操作系统,实质是基于Linux2.6的内核,Linux内核作为硬件抽象层,在手机物理硬件和Android软件栈之间处理核心系统服务。
内核核心处理的功能包括:
1. 内存管理
2. 进程管理
3. 网络协议栈
4. 输入/输出IO及显示触屏键盘
5. 电源管理
6. 其他驱动程序(WIFI、蓝牙、摄像头、声音、通话、内存、设备传感器)
Android的每个应用程序都为一个进程,每个进程都对应一个Dalvik虚拟机的实例。基于Java的虚拟机,Dalvik为移动设备进行了优化设计,具有更小的内存占用,且多个Dalvik虚拟机的实例在手机设备上可以并行的运行。
1.4.2安全与许可权限
1.4.2.1 作为操作系统用户的应用程序
在每个应用程序后,操作系统都为其创建了一个与之关联的新的用户配置文件。每个应用程序都作为不同的用户运行,拥有自己的私有文件、用户ID以及一个安全的操作系统环境。
1.4.2.2 显示定义的应用程序权限
Android对于系统访问有提供的用户权限,如果应用程序需要访问手机设备的这些系统功能的话,则需要在自己的应用程序中注册访问权限。
1.4.2.3 有线的特设授权
作为内容提供的应用程序也可能需要为其他的应用程序提供即时的权限,以共享特定的信息。这个可以通过同意资源标识符URI来进行临时的授权和撤销。
譬如:content://contacts/phones
这个URI提供了所有联系人电话号码。
1.4.2.4 应用程序通过签名建立用户信任
所有Android应用程序包均使用证书进行了签名,这样用户可以了解应用程序的可靠性。证书的私钥为开发人员所有,有助于开发人员与用户建立一种信任关系,也使得开发人员可以控制系统上的哪些程序拥有访问权。
1.4.2.5 市场开发人员注册
要在市场上发布,开发人员还需要一个账户。Android Market管理非常严密,不允许出现恶意软件。
1.4.3开发Android应用程序
Android SDK提供了一整套广泛的应用程序接口。Android手机设备的核心系统服务是向应用程序敞开的,所有应用程序都可以访问。
1.4.3.1 编程语言
现在的主要为java,C++也可以进行开发,不过用的较少。
1.4.3.2 本地与第三方无区别
不同于其他手机平台,Android平台上没有本地与第三方的区别,所有的应用程序都可以访问核心库和底层硬件接口相同的协议。
1.4.3.3 常拥包
Android提供了一些常用的功能包,开发人员可以根据这些来简便开发。这些包包括有以下这些:
1. 常用用户Widget
2. 用户界面布局
3. 网络安全和Web浏览
4. 结构化存储和关系型数据库
5. 强大的2D和3D图形
6. 音频和影音没提格式
7. 对可选硬件设备的方位,如定位服务、WIFI、蓝牙等
1.4.3.4 应用程序架构
Android应用程序架构提供了开发一般应用程序的全部所需。Android生命周期内包括以下关键组件:
1. Activity
2. View
3. Intent
4. Service
5. Notification
1.5 小结
Android作为一种新的移动开发平台,建立在之前的成功经验上。Android设计打打增强了开发人员的开发能力。
参考文献:《移动开发一本书就够》