Google Android应用开发01 Android操作系统

本章目标:
1. 掌握Android操作系统的基本概念。
2. 掌握Android操作系统特征,系统架构。
3. 了解Android操作应用前景和目前市面上其他主流智能手机操作系统。
1.1 Anroid系统介绍

Google Android系统Logo中文注册名”安致”

Android一词的本义指“机器人”,是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的操作系统。


                          
                      使用Android系统的Google手机:Google G1

2008年9月23日,美国运营商T-Mobile USA在纽约正式发布第一款Google手机--T-Mobile G1。该款手机为台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。

1.2 Anroid历史
Google公司于2007年11月宣布组建一个全球性的联盟组织,这一联盟将会支持Google公司发布的手机操作系统或者应用软件,共同开发名为Android的开放源代码的移动操作系统,这个联盟称为“开放手机联盟”,其英文名称为:Open Handset Alliance。这个联盟成员数量已经达到了几十家,除了前面提到的Google公司外,还包括手机制造商、手机芯片厂商和移动运营商几类。

                              开放手机联盟成员图  


一、手机制造商:
  台湾宏达国际电子(HTC)(Palm等多款智能手机的代工厂)
  摩托罗拉(美国最大的手机制造商)
  韩国三星电子(仅次于诺基亚的全球第二大手机制造商)
  韩国LG电子
  中国移动(全球最大的移动运营商,截至09年9月底 有7.03亿用户)
  日本KDDI(2900万用户)
  日本NTT DoCoMo(5200万用户)
  美国Sprint Nextel(美国第三大移动运营商,5400万用户)
  意大利电信(Telecom Italia)(意大利主要的移动运营商,3400万用户)
  西班牙Telefónica (在欧洲和拉美有1.5亿用户)
T-Mobile(德意志电信旗下公司,在美国和欧洲有1.1亿用户)

  二、半导体公司:
  Audience Corp(声音处理器公司)
  Broadcom Corp(无线半导体主要提供商)
  英特尔(Intel)
  Marvell Technology Group
  Nvidia (图形处理器公司)
  SiRF(GPS技术提供商)
  Synaptics(手机用户界面技术)
  德州仪器(Texas Instruments)
  高通(Qualcomm )
惠普HP(Hewlett-Packard Development Company, L.P)

  三、软件公司:
  Aplix
  Ascender
  eBay的Skype
  Esmertec
  Living Image
  NMS Communications
  Noser Engineering AG
   Nuance Communications
   PacketVideo
   SkyPop
   Sonix Network
   TAT-The Astonishing Tribe
 Wind River Systems

1.3 Anroid发展
(1)开放手机联盟成立
   2007年11月5日,34个联盟成员宣布成立开发手机联盟。

(2)发布第一版Android SDK
   2007年11月12日宣布发布第一版Android SDK。

(3)Android开发者竞赛
   2008年4月17日举办Android开发竞赛,在规定的时间内提交了1788件作品,推动了Android开发应用的速度。

(4)Android Market上线
   2008年8月28日,为Android平台手机提供软件分发和下载的Market正式上线,迅速积累了大量的应用。

(5)T-Mobile G1上市
   2008年9月23日,第一款基于Android的手机上市。

(6)Android 1.0 SDK release 1发布
   2008年9月23日,Android 1.0 R1 SDK发布,标志着Android系统趋于稳定和成熟,越来越多的开发者加入Android开发阵营中。

(7)Android被宣布开发源代码
   2008年10月21日,Android被宣布开放源代码。

(8)Android 1.5 SDK发布
   2009年4月27日,Android SDK 1.5版Cupcake(纸杯蛋糕)发布。

(9)Android 1.6 SDK发布
   2009年9月16日,Android SDK 1.6版Donut(甜甜圈)发布。

(10)Android 2.0 SDK发布
   2009年10月28日,Android SDK 2.0版Eclair(法式奶油夹心甜点)发布。

(11)Android 2.1 SDK发布
   2010年1月12日,Android SDK 2.1版Froyo(冻酸奶) 发布。

1.4 Anroid系统架构

                               Android系统平台架构

Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:操作系统层(OS)、 各种库(Libraries)和Android 运行环境(RunTime)
、应用程序框架(Application Framework)、 应用程序(Application)。

操作系统层(OS)
Android的Linux核心为标准的Linux2.6内核,Android更多的是一些与移动设备相关的驱动程序,主要的驱动如下所示:
1)显示驱动(Display Driver):常用基于Linux的帧缓冲(Frame Buffer)驱动。
2)Flash内存驱动(Flash Memory Driver)。
3)照相机驱动(Camera Driver):常用基于Linux的v4l(Video for )驱动。
4)音频驱动(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture)驱动。
5)WiFi驱动(Camera Driver):基于IEEE 802.11标准的驱动程序。
6)键盘驱动(KeyBoard Driver)。
7)蓝牙驱动(Bluetooth Driver)。
8)Binder IPC驱动:提供进程间通讯的功能。
9)Power Management(能源管理)。

Libraries和Android 运行环境(RunTime)
Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。本层的内容大多是使用C++实现的。在其中,各种库包括:
1)C库:C语言的标准库,是通过Linux的系统调用来实现。
2)多媒体框架(MediaFrameword):是Android多媒体的核心部分。
3)SGL:2D图像引擎。
4)SSL:位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
5)OpenGL ES 1.0 :提供了对3D的支持。
6)界面管理工具(Surface Management):提供了对管理显示子系统等功能。
7)SQLite:通用的嵌入式数据库
8)WebKit:网络浏览器的核心
9)FreeType:位图和矢量字体的功能。

应用程序框架(Application Framework)
     Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以JAVA构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件,一个Andoid的应用程序可以利用应用程序框架中的以下几个部分:Activity 、Broadcast Intent Receiver、Service、Content Provider。

应用程序(Application)
     Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home), 联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。这也是Android开源的巨大潜力的体现。

1.5 Android系统应用
开发基于Android平台应用
                                       游戏类应用


                                    工具软件类应用



 

                                           创意软件类应用



 
                              IM软件类应用
                             
参加Android开发大赛

得到更多人的认可和尊重

Google花大价钱来召开Android开发者大赛 ,第一届大赛已经落幕,期间我们看到了很多优秀的作品,当然也许我们更关注的是这个比赛的最大赢家,Big in Japan,这个团队开发了10多个应用程序,最终,他们的GoCart赢了这次比赛的冠军头衔以及27万美元。

Android Market获取收益
Android Market是Google为了让Android开发人员可以将应用程序上载并销售的网站,而Android手机的使用者,则可以到Android Market的网站购买下载自己所需要的应用程序到手机上使用。

                                 Android Market                        
 


1.6 Android前景


                              支持Android系统的手机

Android从出世以来就受到各界的热捧,它标志着一个新的手机时代。另外,Android基于Linux内核,能具备PC机的性能,支持更多的接口。这些都是未来手机的走向,所以各大手机厂商都极力推出装载Android操作系统的智能手机。


研究机构Gartner预测2012年的智能手机市场,Android将以14%的份额爬到第二的位置(2009年初Android在北美的市场份额已经达到了6.36%),超越iPhone OS,仅次于Symbian。

Android在中国的前景十分广阔,首先是有成熟的消费者,在国内,Android社区十分红火,这些社区为android在中国的普及做了很好的推广作用。国内厂商和运营商也纷纷加入了Android阵营,包括OPPO,中国移动,中国联通,华为通讯,联想等大企业。

1.7 Android开发
Android移植开发
Android移植开发的最终目的是为了开发手机产品,从开发者的角度来看,这种类型的开发以具有硬件系统为前提,在硬件系统的基础上构建Android软件系统。这种类型的开发工作在Android系统的底层。在软件系统方面,主要的工作集中在以下两个方面:

1) Linux中的相关设备驱动程序
驱动程序是硬件和上层软件的接口,在Android手机系统中,需要基本的屏幕、触摸屏、键盘等驱动程序,以及音频、摄像头、电话的Modem、Wifi、蓝牙等多种设备驱动程序。

2) Android本地框架中的硬件抽象层
在Android中,硬件抽象层工作在用户空间,介于驱动程序和Android系统之间。Android系统对硬件抽象层通常都有标准的接口定义,在开发过程中,实现这些接口也就给Android系统提供了硬件抽象层。


Android应用开发

Android的应用程序开发是Android开发的另一个方面,从开发的角度来看,这种形式的开发可以基于某个硬件系统,在没有硬件系统的情况下也可以基于Linux或者Windows下的Android模拟器来开发。这种类型的开发工作在Android系统的上层。

事实上,在Android软件系统中,第3个层次(Java框架)和第4个层次(Java应用)之间的接口也就是Android的系统接口(系统API)。这个层次是标准的接口,所有的Android应用程序都是基于这个层次的接口开发出来的。Android系统的第4个层次就是一组内置的Android应用程序。

作为Android应用程序开发者,其开发的应用程序其实和Android系统的第4个层次的应用程序是一个层次的内容。例如,Android系统提供了基本的桌面程序,开发者可以根据Android的系统接口,实现另外一个桌面程序,提供给用户安装使用;根据Android系统的接口开发游戏,也是Android应用程序开发的一个重要方向。

Android应用程序开发的结构图


Android系统开发

Android系统本身的功能也在增加和完善的过程中,因此Android系统的开发也是一个重要的方面。这种类型的开发涉及Android软件系统的各个层次。


Android系统开发的一个比较典型的示例就是当系统需要某种功能时,为了给Java层次的应用程序提供调用的接口,需要从底层到上层的整体开发,步骤如下所示:


1) 增加C或者C++本地库;

2) 定义Java层所需要的类(系统API);

3) 将所需要的代码封装成JNI

4) 结合Java类和JNI

5) 应用程序调用Java类。


如果涉及Android系统API的改动,则一定要慎重,因为系统API的改动可能涉及Android应用程序的不兼容。在更多的时候,Android系统开发只是在不改变系统API的情况下修正系统的缺陷,增加系统的稳定性。

Android系统开发的结构


1.8基于AndroidSDK开发

Android开发系统主要集中在两种环境中,分别是基于AndroidSDK的开发和基于Android源代码的开发。前者可以在Linux或者Windows两种环境中使用IDE完成,后者需要在Linux环境中进行开发。

基于SDKAndroid开发

Android开发者图标


基于SDKAndroid开发,使用Google提供的SDKAndroidSDK中包含Android系统下层的二进制映像、模拟器及相关的工具,在LinuxWindows系统中使用IDE环境进行Android应用程序的开发。基于SDKAndroid开发所对应的网站是GoogleAndroid开发者(AndroidDevelopers),网址为:http://developer.android.com/


基于SDKAndroid开发仅限于开发Android的应用程序,其开发成果即Android最上层的Java应用程序包。这种开发环境中的开发主要使用Java语言,不需要使用硬件,不需要涉及Android系统的底层,只需要了解Android系统的API。由于可以使用主机的仿真环境,因此有各种成熟的工具可以使用。


基于SDKAndroid开发,所涉及的知识体系包含以下一些内容:


1)Java语言知识(通用知识);

2)Android应用程序架构;

3) AndroidGUI设计基础知识;

4)Android中各种视图的使用;

5)Android2D/3D图形API

6)Android中应用程序的设计思想。


Android的应用程序层虽然需要设计很多Android特定的架构和接口,但是通用的GUI设计思想依然适用。

基于SDK源代码的Android开发

Android源代码开发者图标


基于源代码Android的开发在获取所有源代码的基础上进行,可以开发Android应用程序,进行系统移植或者开发Android系统本身。Android源代码工程的网址为:http://source.android.com/


Android源代码可以从其git的源代码仓库中获得:android.git.kernel.org。这个网络地址可以使用gitrepo工具操作,也可以使用浏览器按照网页的方式(HTTP协议)来访问。

基于源代码的Android开发,所涉及的知识体系包含以下一些内容:


1)Linux操作系统的基础知识;

2)Linux内核知识(C语言);

3)Linux驱动程序知识(C语言);

4)Android底层库(C语言、C++);

5)AndroidJava运行环境(C++Java);

6) AndroidGUI系统(C++Java);

7)音频、视频和多媒体(C语言、C++Java);

8)电话部分(C语言、C++Java);

9)蓝牙、Wifi、定位系统(C语言、C++Java);

10)传感器系统(C语言、C++Java)。


1.9主流智能手机操作系统

1.9.1AppleiPhone OS


MicrosoftWindows Mobile


NokiaSymbian


NokiaMaemo


RIMBlackBerry

1.10小结

本章介绍Android的产生和发展,Android产生背景,系统架构,开发人员可以在该平台上做的事情,以及其他主流的手机操作系统.

1.11练习

1.Android概念是什么,有什么用?

2.Android的系统架构和各层中组件的功能?

3.当前主流的手机操作系统有哪些?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值