21认识软硬整合设计样式.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
21认识软硬整合设计样式.doc

21.认识软硬整合设计样式 认识软硬整合设计样式 ---- 以Android的Binder机制为例 By 高焕堂 一、??????????????? 简介Android的Binder机制 Android的Binder机制是Android应用框架(Application Framework)里的重要机制。此机制用来系结(Bind)不同的Service,并进行跨进程(IPC)的远距沟通。这个机制(Mechanism)配上Binder.java等抽象类别,就融入于Android应用框架里,为Android上的千千万万应用程序提供远距沟通的管理及服务。本文将从高焕堂的MB 样式和CPU样式来认识Android这个重要机制。一方面,从样式看出Android机制的特性;另一方面,藉由Android实际情境深刻体会MB与CPU样式的真谛,将来就可以将这两个样式应用于自己开发的应用框架或其它设计上。 二、 高焕堂的「软硬整合设计样式(Pattern)」 于2007年4月12日,我在北京.中关村进行专题演讲时,提出十个主要的软硬整合设计样式(可以到网站下载笔者于北京中关村的演讲稿和录音档案。讲题是:如何提升软件设计力)。其中的第7和第8个样式为: 7: MB pattern Intent: 降低adapter间之相依姓。 Force 1: 系统经常需要与其它系统沟通。 Force 2: adapter是壁虎的尾巴,会随system而PnP。 Force 3: 在PnP掉adapter时,经常牵动多个其它adapter。 Solution: 设计adapter的共同adapter。 Consequences: 此共同adapter就是一个软件主机板(software MB),而小adapter就成为它的端口(port)。 ? ??? 图1 软件主机板(software MB)是整合核心 8: CPU pattern Intent: 统一管理整合性的法则(rule)。 Force 1: 各系统经常需要提供整体性的数据给它的使用者(user),其整合性之法则常分散于各系统里。 Force 2: 为了维持整体和谐,需要对整合性法则进行统一管理。 Solution: 设计一个系统,它代表整体(whole)而负责协调其它系统,确保完整性和实时性。 Consequences: 此系统就是一个software CPU,成为整体的决策中心,它也很容易PnP它来面对法则的迅速变化。 ? ?图2 软件CPU是决策核心 虽CPU用来协调统(A、P、….等系统)MB而言,CPU也是一个System务较 三、 藉由上述样式来理解Binder机制 在Binder机制里,除了众Service之外,还两个组ServiceManager和Binder Kernel Driver(简称Binder Kernel)Binder Kernel提供许(如IServiceManager)给Service使用,它扮演着MBServiceManager扮演CPU角色。 虽ServiceManager用来协调务(A、P、….等服务)Binder Driver而言,ServiceManager也是一个Service务较 四、 Android’s Binder机制的运作逻辑 Step-1. 手机启动时ServiceManager先向Binder Driver登记(将CPUMB一样) Step-2. Binder Driver将(即ServiceManager)视为0个务诞个务Handle #0 来对应 ? ???? ?? 图3 Step-3. Service ABinder Driver取得Handle #0的界面:IServiceManager。 ????? ?? ???????? 图4 Step-4. Service AIServiceManager接口的addService(),将录进时Binder Driver会诞个Handle #1来对应ServiceManager。 ? ? ? ?图5 Step-5. Service PIServiceManager接口的getService()函数连结(Connect or Bind)Service。 此时ServiceManager就将Handle #1传给Service P ? 图6 Step-6. Service P与Service A就连结来 五、 结语 上述的Binder Driver是整合核心,相当(MB),合乎MB 样ServiceMana

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档