android組件設(shè)計(jì)思想

android組件設(shè)計(jì)思想

ID:20958361

大?。?023.05 KB

頁數(shù):30頁

時(shí)間:2018-10-18

android組件設(shè)計(jì)思想_第1頁
android組件設(shè)計(jì)思想_第2頁
android組件設(shè)計(jì)思想_第3頁
android組件設(shè)計(jì)思想_第4頁
android組件設(shè)計(jì)思想_第5頁
資源描述:

《android組件設(shè)計(jì)思想》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、Android組件設(shè)計(jì)思想--Everythingiscomponent羅升陽http://weibo.com/shengyangluohttp://blog.csdn.net/luoshengyangAboutMe《老羅的Android之旅》博客作者《Android系統(tǒng)源代碼情景分析》書籍作者博客:http://blog.csdn.net/Luoshengyang微博:http://weibo.com/shengyangluoAgenda組件化背景組件化設(shè)計(jì)組件化支持一個(gè)小實(shí)驗(yàn)Background從PC客戶端應(yīng)用程序說起開發(fā)者角度復(fù)雜,同時(shí)兼顧UI、交互

2、和業(yè)務(wù)邏輯運(yùn)行載體是進(jìn)程進(jìn)程只有一個(gè)入口點(diǎn)—main使用者角度流暢的UI、友好的交互、正確的結(jié)果不知進(jìn)程是何物Backgroundcont.PC客戶端應(yīng)用程序開發(fā)的任務(wù)滿足用戶的需求降低程序復(fù)雜度--組件化Backgroundcont.PC客戶端應(yīng)用程序組件化之后開發(fā)者角度運(yùn)行載體仍然是進(jìn)程進(jìn)程仍然是只有一個(gè)入口點(diǎn)—main使用者角度流暢的UI、友好的交互、正確的結(jié)果不知進(jìn)程是何物Backgroundcont.結(jié)論應(yīng)用程序組件化前后,用戶對(duì)其運(yùn)行載體(進(jìn)程)沒有概念,但是開發(fā)者來說,組件化后的應(yīng)用程序仍然是和進(jìn)程直接關(guān)聯(lián)的,也就是說,進(jìn)程一旦不存在,程序和

3、組件也隨之灰飛煙滅!Backgroundcont.再說移動(dòng)客戶端應(yīng)用程序與PC客戶端應(yīng)用程序一樣,包含UI、交互和業(yè)務(wù)等復(fù)雜邏輯與PC客戶端應(yīng)用程序一樣,用戶的需求是流暢的UI、友好的交互、正確的結(jié)果運(yùn)行在低頻率CPU、小容量內(nèi)存、小面積屏幕設(shè)備上Backgroundcont.設(shè)備特性對(duì)移動(dòng)客戶端應(yīng)用程序的影響低頻率CPU影響程序運(yùn)行速度,尤其是程序啟動(dòng)速度,因?yàn)橛脩魧?duì)程序啟動(dòng)時(shí)間最為敏感小容量內(nèi)存影響同時(shí)運(yùn)行的程序的數(shù)量,而且系統(tǒng)會(huì)在內(nèi)存緊張時(shí)殺進(jìn)程,以便回收內(nèi)存小面積屏幕單窗口操作模式,導(dǎo)致用戶需要頻繁地切換程序或者重新打開程序Backgroundco

4、nt.移動(dòng)客戶端應(yīng)用程序開發(fā)的任務(wù)滿足用戶的需求降低程序復(fù)雜度Backgroundcont.組件化是降低移動(dòng)端應(yīng)用程序復(fù)雜度的不二選擇,但需進(jìn)一步考慮以下兩個(gè)事實(shí):設(shè)備特性的影響系統(tǒng)殺進(jìn)程時(shí),被殺進(jìn)程里面的組件如何處理?程序切換和重新打開時(shí),如可提高程序啟動(dòng)速度?用戶不關(guān)心進(jìn)程是否可以將組件與進(jìn)程進(jìn)行剝離?Design基本思想Everythingiscomponent具體實(shí)現(xiàn)程序由組件組成組件與進(jìn)程剝離組件皆程序入口Designcont.程序由組件組成Activity:前臺(tái)交互Service:后臺(tái)計(jì)算BroadcastReceiver:廣播通信Conten

5、tProvider:數(shù)據(jù)封裝Designcont.組件與進(jìn)程剝離組件關(guān)閉時(shí),進(jìn)程可以繼續(xù)存在提高重新啟動(dòng)時(shí)的速度進(jìn)程關(guān)閉時(shí),組件可以繼續(xù)存在保護(hù)被殺進(jìn)程里面的組件Designcont.組件皆程序入口Activity--onCreateService--onCreateBroadcastReceiver--onReceiveContentProvider--onCreateDesigncont.將組件與進(jìn)程進(jìn)行剝離,使得進(jìn)程對(duì)組件透明,聽起來很好,但是如何解決以下四個(gè)問題?誰來負(fù)責(zé)組件的啟動(dòng)和關(guān)閉?誰來維護(hù)組件的狀態(tài)?誰來管理組件運(yùn)行時(shí)所需要的進(jìn)程?組件之間

6、如何進(jìn)行通信?Infrastruction操作系統(tǒng)級(jí)別的組件化支持ActivityManagerServiceBinderLowMemoryKillerInfrastructioncont.ActivityManagerService啟動(dòng)組件組件啟動(dòng)時(shí),檢查其所要運(yùn)行在的進(jìn)程是否已創(chuàng)建。如果已經(jīng)創(chuàng)建,就直接通知它加載組件。否則,先將該進(jìn)程創(chuàng)建起來,再通知它加載組件。關(guān)閉組件組件關(guān)閉時(shí),其所運(yùn)行在的進(jìn)程無需關(guān)閉,這樣就可以讓組件重新打開時(shí)得到快速啟動(dòng)。維護(hù)組件狀態(tài)維護(hù)組件在運(yùn)行過程的狀態(tài),這樣組件就可以在其所運(yùn)行在的進(jìn)程被回收的情況下仍然繼續(xù)生存。進(jìn)程管理在

7、適當(dāng)?shù)臅r(shí)候主動(dòng)回收空進(jìn)程和后臺(tái)進(jìn)程,以及通知進(jìn)程自己進(jìn)行內(nèi)存回收Infrastructioncont.Binder為組件間通信提供支持進(jìn)程間進(jìn)程內(nèi)高效的IPC機(jī)制進(jìn)程間的組件通信時(shí),通信數(shù)據(jù)只需一次拷貝進(jìn)程內(nèi)的組件通信時(shí),跳過IPC進(jìn)行直接的通信Infrastructioncont.LowMemoryKiller內(nèi)存緊張時(shí)回收進(jìn)程由于組件與進(jìn)程是剝離的,因此進(jìn)程回收不會(huì)影響組件的生命周期從低優(yōu)先級(jí)進(jìn)程開始回收EmptyProcessHiddenProcessPerceptibleProcessVisibleProcessForegroundProcessE

8、xperimentExperimentcont.Experimen

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。