網(wǎng)站優(yōu)化建設(shè)哈爾濱3322免費域名注冊
一、FrameWork中有哪些設(shè)計巧妙之處
例如:
- Binder調(diào)用,模糊進程邊界: 屏蔽跨進程IPC通信的細節(jié),讓開發(fā)者把精力放在業(yè)務(wù)上面,無需關(guān)心進程之間的通信。
- Bitmap大圖傳輸,高性能: 只傳遞Binder句柄,到目標進程后做內(nèi)存映射,不用做大量數(shù)據(jù)拷貝,速度非常快。
- Zygote創(chuàng)建進程,資源共享: Zygote預(yù)加載一些進程資源,在創(chuàng)建新進程后,新的進程直接繼承這些資源,比較快,省事。
- Intent解耦,模糊進程: 應(yīng)用只需表達意圖,無需關(guān)心目標在哪個進程,由AMS來解析Intent,比如廣播,可能接受者是在同一個進程內(nèi),也可能是在不同進程內(nèi),但是應(yīng)用發(fā)起端無需care。
- Handler消息循環(huán)機制:既可以滿足應(yīng)用的開發(fā)需求,也能為系統(tǒng)的使用開綠燈(屏障消息),還能處理應(yīng)用死鎖如ANR之類。
binder實體對象在經(jīng)過binder驅(qū)動之后會自動轉(zhuǎn)換為binder代理對象,而binder代理對象在經(jīng)過binder驅(qū)動之后又會自動還原為binder實體對象,到了應(yīng)用層拿到的永遠是接口引用對象。