Android安全模型之Android安全機制(記憶體管理)

來源:互聯網
上載者:User

標籤:android   io   使用   java   檔案   linux   as   size   演算法   

Ashmem匿名共用記憶體

Android的匿名共用記憶體(Ashmem)機制基於Linux核心的共用記憶體,但是Ashmem與cache shrinker關聯起來,增加了記憶體回收演算法的註冊介面,因此Linux記憶體管理系統將不再使用記憶體地區加以回收。Ashmem以核心驅動的形式實現,在檔案系統中建立/dev/ashmem裝置檔案。如果進程A與進程B需要共用記憶體,進程A可通過open開啟該檔案,用ioctl命令ASHMEM_SET_NAME和ASHMEM_SET_SIZE設定共用記憶體的名稱 和大小。mmap使用handle獲得共用的記憶體地區;進程B使用同樣的handle,由mmap獲得同一塊記憶體。handle在進程間的傳遞可通過 Binder等方式實現。

為有效回收,需要該記憶體地區的所有者通知Ashmem驅動。通過使用者,Ashmem驅動程式,以及Linux記憶體管理系統的協調,使記憶體管理更適應嵌入式行動裝置記憶體較少的特點。Ashmem機制輔助記憶體管理系統來有效管理不再使用的記憶體,同時通過Binder進程通訊機制實現進程間的記憶體共用。

Ashmem不但以/dev/ashmem裝置檔案的形式適應Linux開發人員的習慣,而且在Android系統運行時和應用程式架構層提供了提供者。其中,在系統運行時提供了C/C++調用介面,在應用程式架構層提供了Java調用介面。而實際上,應用程式架構層的Java調用介面是通過JNI方法來調用系統運行時的C/C++調用介面的,最後進入到核心空間的Ashmem驅動程式中。

LMK機制



Android安全模型之Android安全機制(記憶體管理)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.