【Android源码 栏目提醒】:网学会员鉴于大家对Android源码 十分关注,论文会员在此为大家搜集整理了“Android实现方式 - 讲义教程”一文,供大家参考学习
Android实现方式 与传统操作系统的异同 杜佳莉 PB08210261 lorella 操作系统第五次作业 PB08210261 杜佳莉
Android实现方式 与传统操作系统的异同 ....................................... 2
Android 平台的架构 ................................................................................. 2
Android 系统中应用程序的分析 ............................................................. 3 具体实现方式举例和探究 ........................................................................ 4 后台监听的实现 .................................................................................. 4 即时通信的实现 .................................................................................. 5 基于
android 的网络化遥控器系统的实现 ....................................... 6 与传统操作系统对比 ................................................................................ 8 总结 ......................................................................................................... 9 操作系统第五次作业 PB08210261 杜佳莉
Android实现方式 与传统操作系统的异同
Android 平台的架构 图表 1 Linux 内核层
Android 的核心系统服务依赖于Linux2.6内核主要是添加了一个名为Goldfish的虚拟CPU以及
Android运行所需的特定驱动代码。
该层是用来提供系统的底层服务包括安全机制内存管理网络堆栈以及一系列驱动模块。
作为一个中间的虚拟层该层位于硬件和其他的软件层之间。
需要注意的是这个内核操作系统并非类GNU/Linux的所以其系统库系统初始化和编程接口都和标准的Linux有所不同。
它没有采用虚拟内存文件系统而是采用了YAFFS2文件系统因而具有很好的可移植性。
作为新一代智能手机平台
Android需要支持超大容量的NAND Flash所以采用支持大页面的YAFFS2文件系统。
Android 运行时库和其他库层
Android运行时库包含一组核心库提供了Java语言核心库内的大部分功能和Dalvik虚拟机。
同时
android 提供了丰富的库类支持并且大部分为开源代码如采用的数据库为SQLite 。
android 选择它作为移动终端的嵌入式数据库有以下优点它无需安装和管理配置它是一个存储在单一磁盘文件中的完整数据库体积大小只有250KB但支持数据库大小至少2TB提供了对事务功能和并发处理的支持而且比目前流行的大多数数据库运行速度快。
应用框架层 在应用框架层
android 开发人员可以和那些核心应用一样拥有访问框架应用层程序 应用程序框架 Linux 内核层 运行时核心库 Dalvik 虚拟机 其他库 浏览器 数据库 视频播放 图形图像 操作系统第五次作业 PB08210261 杜佳莉 APLS的全部权限。
应用的系结构化设计简化了各组件之间的重用任何应用都可以分发自己的组件任何应用也可以使用这些分发的组件。
应用程序层
Android本身会附带一些核心的应用程序包括e_mail客户端短信程序日历地图浏览器通讯录等等目前所有的应用程序都是由JAVA语言开发的。
Android 系统中应用程序的分析
Android的API主要包含几个部分Views、Intents、Activity、Permissions、 Resource Type、Services、Notifications、Content Providers以及XML支持。
比较重要且常用的如Views用于提供界面设计的接口Services提供运行在后台的服务Content Provider定义了一组系统级的数据库Notification为用户提供提醒的API等。
这些都可以通过SDK附带的文档【lo】查询到。
Android上的应用程序可以分成四种主要类型活动、服务、接收器和ComentProvider。
活动Activity 活动是最常用的
Android应用程序形式。
活动在一个称为视图类的帮助下为应用程序提供UI。
视图类实现各种UI元素如文本框、标签、按钮等。
一个应用程序可以包含一个或多个活动。
这些活动通常与应用程序中的屏幕形成一对一的关系。
应用程序通过startActivity0或startSubActivity0方法从一个活动转到另一个活动。
如果应用程序只需切换到新的活动使用前一个方法如果需要异步的调用/响应模式就使用后一个方法。
但均需要通过方法参数传递一个Intent由操作系统负责决定哪个活动最适合满足指定的Intent。
Intc—nt是Google在
Android体系结构中引入的一种新颖的设计元素Intent是一种构造应用程序可以通过它发出相应的请求。
应用程序可以按照相似或互补的方式进行注册IntentFilter表明他们有能力或有兴趣执行各种请求或Intent。
视图View
Android活动通过视图显示UI元素。
视图采用以下布局设计之一 LinearVerticalLinearHorizontalRelativeTable。
选择一种布局之后就可以用各个视图显示UI。
视图元素由一些UI元素组成包括ButtonEditTextCheckBoxRadioButtonListGridDatePickerTimePicker等。
视图是在一个XML文件中定义的。
每个元素有一个或多个属于
Android命名空间的属性。
服务Service和接收器Reciever 与其他多任务计算环境一样
Android可以在后台运行着一些应用程序。
Android把这种应用程序称为服务。
服务是没有UI的
Android应用程序。
操作系统第五次作业 PB08210261 杜佳莉 接收器是一个应用程序组件它接收请求并处理Intent。
与服务一样。
接收器 在一般情况下也没有UI元素。
服务和接收器通常都在AndroidManifestxml文件中注册。
通过ContentProvider进行数据管理 Content Provider是
Android的数据存储抽象机制。
Content Provider对数据存储的访问方法进行抽象在许多方面起到数据库服务器的作用。
对数据存储中数据的读写操作应该通过适当的Content Provider传递而不是直接访问文件或数据库。
具体实现方式举例和探究 后台监听的实现
Android的Broadcast—Receiver基于注册方式Receiver将自身的特征描述并注册在系统中。
根据注册的时机可分为两类即“冷热插拔”。
冷插拔Broadcast Receiver的相关信息写在AndroidManifestxml配置文件中系统会负责在相关事件发生的时候及时通知到该Broadcast Receiver。
热插拔通常是在OnResume事件中通过RegisterReceiver进行注册在OnPause等事件中反注册通过这种方式使Receiver仅在工作状态下保持对相关事件的关注。
对安全软件而言。
需要对整个系统的相关事件保持实时监听故采用冷插拔注册方式。
除了接收消息的一方有多种模式发送者也有很重要的选择权。
通常发送者有两类一个就是系统本身我们称之为系统Broadcast消息。
除了系统。
自定义的应用也可以放出Broadcast消息发送消息使用的接口可以是ContextsendBroadcast或是ContextsendOrderedBroadcast。
前者发出的称为普通广播Normal Broadcast所有关注该消息的Receiver。
都有机会获得并进行处理后者放出的称作有序广播Ordered Broadcasts系统按照Receiver声明的优先级Intent—Filter元素的AndroidPriority属性中按顺序逐次执行。
对于有序广播可使用AbortBroadcast控制是否将该条消息传递给下个Receiver据此可进行基于策略的控制。
如拨打电话时系统发送的正是有序广播因此我们可对监听到的拨打电话事件进行判断若属于非法拨号可阻止其继续拨号。
无论发送者以何种方式广播消息对触发接收者而言原 理均没有区别。
而无论是冷插拔还是热插拔其区别仅为何时对何事保持关注的区别而在关注期间其原理均一致均需
Android对注册的Receiver进行管理。
将过滤后的系统消息传递至Receiver实现类中触发其中的onReceive函数并将发送方传递出的Intent对象传递至该函数。
消息发送者需要发出一个Intent对象这个Intent对象说明了他的意图将此Intent对象传送给
Android。
而
Android会根据此Intent对象中的叙述与AndroidManifestxml所叙述的各类条件相比较找出与此Intent叙述相匹配的组件Receiver然后
Android将该Intent对象递交给它作为参数传递至该Receiver中的onReceive函数“。
。
当操作系统第五次作业 PB08210261 杜佳莉 Broadcast Receiver接收到相关的消息即可进行诸如产生一条Notification或Toast、一次响铃震动抑或是启动一个Activity来进行进一步的交互和处理。
对本次研究来说。
主要是在其中进行包括基于策略的行为合法性判断等处理。
Broadcast—Receiver模型如下页图l所示。
这种Broadcast一ReceiverIntent的沟通方式让不同开发者开发的Package中的类可以轻易达成沟通。
而整个逻辑极为清晰同时足够有用和好用。
可说是一次良好的设计模式实际运用体验。
即时通信的实现 图表 2 图中的系统可以实现
Android IM客户端与PC Jabber客户端的互相通信也可以通过各种Transport与其它IM客户端进行通信ICQ、MSN、GTalk等。
Jabber的服务器端中在整个系统中起着至关重要的作用Jabber系统是一个分散的系统Jabber服务器分布在网络各处事实上由于Jabber协议的公开性网络上也有很多的Jabber服务器。
其应用服务器端可以由若干个相关组件组成以分别实现系统所要求的一些基本功能这些基本功能主要包括会话的管理用户与服务器端的通信服务器之间的通信存储用户的个人信息和联系人信息名单同时也要在服务器端保留用户在离线时所收到的信息用户注册用户的身份和权限验证等等这些也同样涉及到与数据库服务器之间连接并对数据进行操作。
由于即时通信系统的实时性要求随时要了解对方是否在线在服务器之间的通信里还要涉及到一个专门的线程模块柬负责和其他服务器实时交换用户是否在线的信息。
服务端承担的责任是相当大的但是客户端也是非常重要的。
客户端主要负责通过TOP的Socket套接字通过协议与服务器端进行通信发送和接收Jabber协议所用到XML协议信息包并进行相应的解析以进行相应的操作。
由于Jabber协议的特殊性在这里不会涉及到客户端与客户端之间进行通信。
Jabber协议的最大特点是允许转换的实现能够兼容各种即时通信系统和操作系统第五次作业 PB08210261 杜佳莉 各种即时通信系统互连可以构建出一个统一的即时通信系统从而实现与主流的通信软件实现沟通例如PC中的Pardion、Pidgin都可以实现多种即时通信工具的互通。
基于
android 的网络化遥控器系统的实现 遥控器硬件功能模块划分 本系统采用客户端架构的体系结构Remote Control就是基于
Android平台开发的客户端它基于HTTP协议与服务器进行通信RemoteControl负责初始化用户界面同时根据用户操作向服务器实时发送请求下载数据。
数据经过解析之后最终显示到遥控器屏幕供用户查看。
1遥控器使用其内部的wiFi设备通过无线路由器Router连接到Intemet。
从而与服务器进行通信。
2遥控器使用其内部的红外设备远程发送命令到机顶盒。
其中机顶盒除了与电视机通信以外还同时负责连接路由器以便为电视机提供视频点播功能。
遥控器软件功能模块的划分 图表 3 遥控器软件功能模块如图所示。
整个系统可分为红外模块、数据存储模 块、数据处理模块咀及应用模块四个模块进行设计开发。
红外模块 红外模块负责发送消息与机顶盒通信。
比如切换频道开 启关闭机顶盒等。
红外模块每次发送的是一个字节两位十六进制的红 外编码。
操作系统第五次作业 PB08210261 杜佳莉 1. 数据存储模块 数据存储模块使用SQLite作为数据库负责保存下载过 的节目信息为上层界面提供数据支持以及数据缓存功能方便数据的 重复利用提高系统性能。
同时为了节省存储空间将会在程序启动时 清理掉数据库中过期的节目信息。
数据库提供有查询插入删除选 择修改五个接口。
2. 数据处理模块 数据处理模块主要分为数据下载器和数据解析器。
数据 下载器负责根据应用模块发送的不同的URL连接到服务器下载XML 文件数据流然后交给数据解析器解析。
数据解析器负责解析频道节目 或视频点播节目信息然后保存到数据库中。
由于数据下载和数据解析 总是同步进行的数据处理有时也简称为数据下载。
3. 应用模块 应用模块即为UI部分主要负责与用户进行交互。
根据功能 的不同应用模块又可以分为Home、Search、TV Info、Prog Inf0、My Selection、TV Control、Settings七个子模块。
4. Home模块 Home模块主要负责初始化系统并显示推荐的视频点播节 目。
当程序启动以后它会发送推荐视频点播URL到数据下载器 数据在经过数据处理模块的处理以后最终保存在数据库中。
然后 Home界面再调用数据库的查询功能将所有推荐的视频点播节目 通过列表显示出来。
5. Search模块 Search模块主要负责提供视频点播节目的搜索功能。
搜索的 关键字可以是节目名称或节目演员名称内的一个单词。
由于搜索范 围是服务器上所有的VOD节目不可能在遥控器本地数据库进行 所以节目检索的操作是由服务器来执行的。
遥控器通过带有关键字 的URL向服务器发送搜索请求服务器返回的XML格式数据流里 面包含的就是搜索结果。
不过由于Search模块特殊性和临时性 其中的数据将不经过数据处理模块和数据存储模块。
Search模块自 带有一个特殊的简易而且方便快捷的数据处理和数据存储模块。
它将直接与服务器通信并显示搜索结果。
唯有当用户选择收藏其 中的某个节目时该节目信息才会被存入数据库中。
否则将会在用 户退出搜索时将自动丢弃Search模块的数据。
6. TvInfo模块 TV IIlfo模块主要负责显示多个频道多个节目的预告信息。
它是整个系统里面功能最丰富同时也将是用户最常用到的模块。
目前它可以显示从前一天到后八天一共十天之内的19个频道的节目信息。
由于数据量巨大如果一次性下载完这些数据可能要耗费用户很长的时间去等待。
为了增加用户体验遥控器采用的是延时下载的方法。
即用户不查看的节目暂时不下载用户选择的查看的节目才会下载。
根据每次发送给数据处理模块的URL的不同数据将以个频道一天内的所有节目为单位进行下载。
7. Prog Info模块 操作系统第五次作业 PB08210261 杜佳莉 Prog Info模块主要负责显示某个节目的详细信息并提 供观看和收藏该节目的功能。
从Home、Search、Tv Info、My Selection 模块在选中某个节目以后都可以跳转到Prog Info模块。
在Prog Info模块选中观看功能将会通过红外模块把节目信息发送出去 经过机顶盒遥控电视机播放节目。
选中收藏功能将修改该节目 的收藏属性值为真然后存入数据库中。
8. My Selection模块 My Selection模块主要负责显示所有用户收藏的节目 并负责管理所有收藏的节目。
它通过调用数据库的查询接口将所 有收藏属性值为真的节目显示出来。
同时My Selection带有一个闹 钟模块自动定时以提醒用户收看收藏的节目。
9. TV Control模块 TV Control模块主要负责切换频道和开启关闭机顶盒。
切换频道可以有两种方式一种是选择频道图片另一种是选择频 道数。
它只需要和红外模块通信就可以完成全部功能。
10. Settings模块 Settings模块主要负责为用户提供系统设置功能包括WiFi 网络、系统时间、背光亮度、系统语言的设置。
其中在不需要使用 网络功能的情况下用户可能为了节省电量可以选择关闭WiFi 功能然后在需要的时候再重新开启遥控器Live节目的显示时间 范围是依据当前系统时间决定的因此需要正确的设置系统时间 否则可能会造成找不到数据的情况。
与传统操作系统对比 传统操作系统应用在移动电话、PDA、电视机机顶盒以及其它资源受限的设备上是目前移动设备上使用最广泛的开发平台。
传统操作系统平台由多种配置、简表和可选包组成口。
可以发现传统操作系统的应用是建立在JVM或KVM之上而主机操作系统是位于传统操作系统平台之外。
这样的设计一方面提供了跨操作系统的特性主机操作系统可以是Symbian、Windows Mobile、和Linux另一方面传统操作系统虽然提供了统一的开发平台但是JvM的安全机制让传统操作系统的应用程序不能调用本地系统资源。
而
Android向下既包括操作系统内核向上又拥有通现成的应用软件加之开源、免费、可以直接使用Java语言为开发人员提供了极大的便利。
另外需要强调的是虽然同样是使用Java语言进行开发但是
Android使用的DoMk虚拟机和传统操作系统使用的标准的Java虚拟机JVM存在以下区别 1Dolvik是基于寄存器而JVM是基于堆栈的。
Android选择采用寄存器的方式是因为它对提前优化ahead—of—time optimization提供了更好的支持而这对类似于移动电话这样的受限环境是颇有裨益的。
针对基于寄存器虚拟机和基于堆栈的虚拟机更深入的比较分析指出基于寄存器的虚拟机对于更大的程序来说在它们编译时花费的时间更短哺。
操作系统第五次作业 PB08210261 杜佳莉 2运行环境的区别。
DaMk经过优化允许在有限的内存中同时运行多个虚拟机的实例。
总结 互联网时代奇迹般崛起的Google已经成为微软的心腹大患。
然而Google从来都是按兵不动Google看得很清楚桌面操作系统时代快要结束了现在是掌上操作系统时代登场了谁能够先一步占领消费者的手掌谁才是真正的赢家。
这一次Google终于亮剑了亮出来的绝对是一把无坚不摧的利剑。
Android强大的功能和它完美的设计促成了下面的杀手锏 操作系统第五次作业 PB08210261 杜佳莉 操作系统第五次作业 PB08210261 杜佳莉 作为计算机专业的我们看到的不应该仅仅是这些强大的功能而应该看到这些强大功能的背后蕴含着的工程师的设计和构思从传统的linux而来而又超越了传统手机的操作系统
android 带给我们的不仅仅是技术的进步更多的是一种叫做idea的东西我们必须学会创新和发展才能创造出更好的操作系统。
更好的实现人与机器的接口。
上一篇:
有关Android中的AGPS
下一篇:
群体性突发事件论文:“边界冲突”:农村群体性事件的县域分析