9.6

  • 不同進(jìn)程間處于不同的虛擬內(nèi)存中,無法直接通過內(nèi)存地址訪問對(duì)方內(nèi)部數(shù)據(jù),因此在Android中采用了Binder機(jī)制
  • Binder組成:
    • Binder驅(qū)動(dòng):將請(qǐng)求投遞到對(duì)方進(jìn)程中
    • Service Manager:獲取各進(jìn)程持有的Binder標(biāo)志(類似于IP地址)
    • Binder Client:請(qǐng)求數(shù)據(jù)的進(jìn)程
    • Binder Server:提供數(shù)據(jù)的進(jìn)程
  • Binder使用到智能指針(SmartPointer)源碼用C++編寫。避免了初始化、delete、野指針的發(fā)生。
    • 引用計(jì)數(shù):被引用對(duì)象擁有一個(gè)計(jì)數(shù)器,當(dāng)被引用數(shù)為0時(shí)即可以釋放對(duì)象。
    • 強(qiáng)引用sp:
    • 弱引用wp:針對(duì)兩個(gè)對(duì)象間相互引用的循環(huán)引用導(dǎo)致的被死鎖而不能被內(nèi)存回收器回收的現(xiàn)象。規(guī)定強(qiáng)指針用于引用子類,弱指針用于引用父類。弱指針必需先升級(jí)為強(qiáng)指針才能訪問對(duì)象
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容