A03aAndroid应用框架的四大组件.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文档。上传文档
查看更多
A03aAndroid应用框架的四大组件

A03_a_Android應用框架的四大組件 4個嫡系基類: Activity Service BroadcastReceiver ContentProvider Android母框架裡提供了4個一等公民 或稱為嫡系 的基類,包括: Activity: 處理UI互動的事情 Service:幕後服務 如硬件及Driver的服務 BroadcastReceiver: 接收訊息及事件處理 ContentProvider: 儲存共用資料 如下圖所示: 圖1 Android 框架裡的4個嫡系基類 基於這些基類,地頭蛇就可以撰寫AP子類,如下圖: 圖2 平台與應用兩種知識的結合 這4種應用子類都是由Android框架來負責創建 Create or New 其對象 Object 的。不過有趣的是: 平台框架基類寫在先 應用子類寫在後 那麼框架事先又如何知道應用開發者後來撰寫的應用子類的名稱呢? 如果不知道應用子類的名稱,又如何創建應用子類的對象呢? 答案是:依賴AndroidManifest.xml文檔。例如: // AndroidManifest.xml ?xml version 1.0 encoding utf-8 manifest xmlns:android /apk/res/android package com.misoo.pkm uses-permission xmlns:android /apk/res/android android:name android.permission.INTERNET /uses-permission application android:icon @drawable/icon android:label @string/app_name activity android:name .FirstActivity android:label @string/app_name intent-filter action android:name ent.action.MAIN / category android:name ent.category.LAUNCHER / /intent-filter activity android:name .LoadActivity intent-filter category android:name ent.category.DEFAULT / /intent-filter service android:name .LoadService android:process :remote intent-filter action android:name com.misoo.pkm.REMOTE_SERVICE / /intent-filter 在執行階段 Run-time ,Android框架讀取這個由地頭蛇所寫的XML文檔。於是框架得知AP裡撰寫了3個嫡系應用子類,如下圖: 圖3 框架創建嫡系應用子類的對象 這些應用子類的對象可以全部在同一個進程 Process 裡執行,也可以在不同的進程裡執行。例如,框架從上述AndroidManifest.xml裡讀到: service android:name .LoadService android:process :remote 框架就會將LoadService應用子類的對象誕生於獨立的進程 名稱叫“remote” 裡。於是,FirstActivity與LoadService之間就屬於跨進程的溝通了。這種跨進程的溝通,就是大家熟知的IPC Inter-Process Communication 機制了。待會兒,將會特別介紹Android母框架裡的IPC機制。◆ Intent-based Programming技術 Android的4種嫡系應用子類之間如何互相溝通呢?其實很簡單,就像你打手機去車行叫出租車,而不是直接到街道上叫車。你送給行一個短信或一通電話,表明你的「意圖」 Intent ,當車行服務員接到此意圖,就依據你的意圖的內含條件而去挑選最合適的車,然後派遣它去接你。 於是,母框架裡所提供的Intent就扮演它們之間的溝通媒介。這4種嫡系對象都是由Android去配對及啟動的,並不是組件之間透過直接呼叫而啟動的。「意圖」 Intent 本身是定義為一個類 Class ,一個Intent對象表達一個期望 Expectation ,敘述其所期望的服務或動作。Android框架則根據此Intent對象之敘述,負責配對,找出相配的組件,然後將Intent對象傳遞給所找到的對象,於是Android框架的媒婆任務就完成了。 因此,Intent對象扮演著媒體仲介的角色。例如,提供「Activity組件

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档