Android手机操作系统(转)

Android 是什么

一、 概述

Android 本义 机器人 Google200711.5 日发布的开源手机 OS (在华注册商标名为 安致 ,该平台由操作系统、中间件( SQLite 等)、用户界面和应用软件组成。 Android 不存在专有权障碍, 目前版本是 Android2.0

Android 采用软件堆层( software stack ,又名软件叠层)架构,底层以 Linux 内核工作为基础,提供基本功能;其他应用软件则由各公司自行开发,以 Java 编程。 2010 1 月, Google 发表自家品牌手机电话的 Nexus One

20089.22 日,美国 T-Mobile USA 在纽约发布第一款 Google 手机 T-Mobile G1 (台湾宏达电代工制造),是世界上第一部使用 Android 操作系统的手机,支持 WCDMA/HSPA 网络,理论下载速率 7.2Mbps ,并支持 Wi-Fi

 

二、 基本情况

Android 早期由 Google 开发,后由 开放手机联盟 开发, 这个联盟由包括 中国移动 摩托罗拉 、高通、 宏达电 HTC )和 T-Mobile 在内的 30 多家领军企业组成。 Google 通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。

 

三、 团队成员

Google HTC PHILIPS T-Mobile 、高通、魅族、中国联通、华为、联想、摩托罗拉、三星、 LG 及中国移动在内的 34 家企业,都将基于该平台开发手机业务,应用之间的通用性和互联性将在最大程度上得到保持。 34 家企业中并不包含 诺基亚 、苹果公司、 AT&T Verizon 、微软及加拿大 RIM Blackberry )。

   < 手机制造商 > HTC 、摩托罗拉、三星、 LG 、中国移动、日本 KDDI 、日本 NTT DoCoMo 、美国 Sprint Nextel 、意大利电信、 T-Mobile

< 半导体公司 > Audience Corp (声音处理器)、 Broadcom Corp (无线半导体提供商)、英特尔、 Nvidia (图形处理器公司)、 SiRF GPS 技术提供商)、 Synaptics (手机用户界面技术)、德州仪器、高通、惠普 HP

< 软件公司 > Aplix Ascender eBay Skype NMS Communications Noser Engineering AG Nuance Communications SkyPop PacketVideo Sonix Network TAT-The Astonishing Tribe Wind River Systems

 

 

四 架构

 

Ø        应用程序框架:支持组件的重用与替换;

Ø        Dalvik 虚拟机:专门为移动设备做了优化;

Ø        内部集成浏览器:该浏览器基于开源的 WebKit 引擎;

Ø        优化的图形库:包括 2D 3D 图形库, 3D 图形库基于 OpenGL ES 1.0 (硬件加速可选);

Ø        SQLite :用作结构化的数据存储;

Ø        多媒体支持:包括常见的音视频和静态印象文件格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF );

Ø        GSM 电话(依赖于硬件);

Ø        Bluetooth, EDGE, 3G, and WiFi (依赖于硬件);

Ø        照相机, GPS ,指南针,和加速度计 (依赖于硬件);

Ø        丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和 Eclipse 集成开发环境插件。


五、 架构剖析

1.   核心应用程序包(基本应用程序)

包括 email 客户端、 电话本、 SMS 短消息程序、日历、地图、浏览器、联系人管理程序等,所有的应用程序都是用 Java 编写的。

2.   应用程序 框架(应用程序到可以用的基本内容)

开发者完全可以访问核心应用程序所使用的 API 框架。该应用程序架构用来简化组件软件的重用。任一应用程序都可发布它的功能且任何其它的应用程序都可使用其所发布的功能块。该应用程序重用机制使得组建可以被用户替换。

  以下所有的应用程序都由一系列的服务和系统组成,包括:

Ø     一个可扩展的视图 Views 可以用来建应用程序,包括列表 lists ,网格 grids ,文本框 text boxes ,按钮 buttons ,甚至包括一个可嵌入的 web 浏览器

Ø     内容管理器 Content Providers 使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

Ø     一个资源管理器 Resource Manager 提供非代码资源的访问,如本地字符串,图形,和分层文件 layout files

Ø     一个通知管理器 Notification Manager 使得应用程序可以在状态栏中显示客户通知信息。

Ø     一个活动类管理器 Activity Manager 用来管理应用程序生命周期并提供常用的导航回退功能。

3.   程序库

被系统中各种组件所使用的 C/C++ 库集。该库通过 Android 应用程序框架为开发者提供服务。以下是一些主要的核心库:

Ø     系统 C 库: BSD 继承的标准 C 库,专为 嵌入式 linux 设备定制。

Ø     媒体: 基于 PacketVideo OpenCORE ;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态影像文件。( openmax 就在这)

Ø     Surface Manager 对显示子系统的管理,并且为多个应用程序提供 2D 3D 图层的无缝融合。

Ø     LibWebCore 一个最新的 web 浏览器引擎用来支持 Android 浏览器和一个可嵌入的 web 视图。

Ø     SGL :一个内置的 2D 图形引擎

Ø     3D libraries 基于 OpenGL ES 1.0 APIs 实现;该库可以使用硬件 3D 加速(如果可用)或者使用高度优化的 3D 软加速。

Ø     FreeType 位图 bitmap 和向量 vector 字体显示。

Ø     SQLite :一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

4.   Android 运行库

Android 包括了一个核心库,该库提供了 Java 编程语言核心库的大多数功能。每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例。

Dalvik 是针对于同时高效地运行多个 VMs 来实现的。 Dalvik 虚拟机执行 .dex Dalvik 可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有类都由 Java 汇编器编译,然后通过 SDK 中的 dx 工具转化成 .dex 格式由虚拟机执行。 Dalvik 虚拟机依赖于 linux 的一些功能,比如线程机制和底层内存管理机制。   

5.   核心系统服务

依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。

 

六、 Android 平台手机优势

1.   开放性

2.   挣脱运营商束缚

3.   硬件选择丰富

4.   开发商不受任何限制

5.   无缝结合 Google 应用

 

七、 Android 开发

1.     Android 关键类

视图类,ContentProviders 应用交互管理类、ResourceManager 非编码资源管理类、NotificationManager 通告管理类、ActivityManager 生命周期管理类。

2.   界面开发

组件的初始化抽取出来放到配置文件中,组件更新用编码方式来处理。

3.   应用构成

Android 的应用一般由以下四个关键部分构成:

Ø        Activity 每个应用都是必须的, Activity 代表一个应用的一个具体的界面管理类,其本身并不显示。

Ø        IntentReceiver 可使应用对外部事件做出响应,比如,当应用正在执行,突然有了来电,这个时候可使用 IntentReceiver 做出处理是应用更健壮。

Ø        Service Android 应用生命周期是由 Android 系统来决定的,不由具体的应用线程左右。当应用要求在没有界面显示的情况还能正常运行,(要求有后台线程,而后台线程是不会被系统回收,直到线程结束)这个时候就需要用到 Service

Ø        Content Provider 可以说 Content Provider 封装很多 Android 当中的上下文环境,包括 SQLite ,这就使得在不同应用之间交互成为可能。

4.   布局管理

Ø        FrameLayout :左上角只显示一个组件。

Ø        LinearLayout :线性布局管理器,分为水平和垂直俩中,只能进行单行布局。

Ø        TableLayout :任意行和列的表格布局管理器。其中 TableRow 代表一行, TableRow 的每一个视图组件代表一个单元格。

Ø        AbsoluteLayout :绝对布局管理器,坐标轴的方式,左上角是( 0 0 )点,往右 x 轴递增,往下 Y 轴递增。

Ø        RelativeLayout :相对布局管理器,更具最近一个视图组件,或是顶层父组件来确定下一个组件的位置。

5.   Activity 交互方式

Ø        Intent 方式 用来在 Activity 之间做交互。 Intent 有个意图说明,值得深究,举个简单的例子,有种叫 Intent.ACTION_CALL ,可直接拨打电话。

Ø        SharedPreferences Android 平台上一个轻量级的存储类,主要是保存一些常用的配置。 SharedPreferences 类似过去 Windows 系统上的 ini 配置文件,但是它分为多种权限,可以全局共享访问,最终是以 xml 方式来保存,效率不如 Intent ,但是由于可共享,所有可以在 Acitivity 之间交互。其效率比 SQLite 高。

Ø        SQLite 也就是数据库,这种方式不推介,因为其效率问题,如果是在不同应用之间交互,可以考虑 SQLite 。或是永久存储的情况下。

6.   Android 生命周期

理解Android 生命周期非常重要,主要有以下几点:

Ø        每一个 Android 应用都是以一个进程的方式运行的,其生命周期不是有自身控制,而是由系统根据运行的应用的一些特征来决定。

Ø        理解 Android 生命周期对你的应用什么时候会被系统回收很重要。

Ø        理解好生命周期可提高应用的健壮性。比如应用的初始化应该放到 onCreate 方法中,应用暂停的时候应用重写 onPause 方法来保存当前应用操作结果。

7.   SQLite

SQLiteAndroid 中提供的内置数据库,据说比MySql 更轻巧。SQLite 也是开源产品。数据库的操作方式:

SQL 语句 直接操作,插入、更新、删除都可以直接写SQL 语句,调用execSQL 就可以,而查询需要使用rawQuery ()来完成,查询结果返回是一个可滚动的结果集,Cursor 在对Cursor 操作前,需要将其游标移动到第一位,每取一个结果向下移一位。

8.   Android 实际开发经验分享

自定义组件的显示问题,在写自定义View 的时候经常要对视图的XY 调整,以达到预期的理想位置。可以讲每个组件的XY 坐标值画到组件旁边,这样很直观,一看就知道该怎样调整。

使用Log 来打印日志和进行调试。

使用LogCat 视图,在showView 中有LogCat 视图,LogCat 视图会显示一些Android 仿真器打印出的堆栈信息,对应用的调试非常有帮助,另外Log 打印的日志也在这边显示。

使用Emulator Control 视图,Emulator Control 可以完成一些简单的设备操作,比如,模拟来电,短消息。

活用tools 目录下的工具,该目录在Android SDK 中都有提供,通过这些工具可以操作Android 仿真器,比如,创建一个虚拟SD 卡,将系统中的文件移动到虚拟SD 中,Android 都有提供相应的工具,相关命令可以上网查阅。

 

八、 未来发展

Android 采用 WebKit 浏览器引擎(与 iPhone 相似),具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等。但其最震撼人心之处在于 Android 手机系统的开放性和服务免费。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值