Android動態載入技術 系列索引

2021-09-19 17:21:41 字數 1286 閱讀 9881

大家新年好,最近花了點時間,慢慢把這個系列的內容稍微調整了下。

last edit: 2016-2-10

現在使用得比較廣泛的動態載入技術的核心一般都是使用classloader,後者能夠引導程式外部的類(已編譯好的),從而達到公升級**邏輯的目的。雖然動態載入的核心原理比較簡單,但是根據功能的複雜程度,實際在android專案中使用的時候還要涉及許多其他方面的知識,這裡分為幾個篇幅分別進行介紹。

簡單易懂的介紹

內容:動態載入技術在android中的使用背景;

android的動態的載入大致可以分為「載入so庫」和「載入dex/jar/apk」兩種;

動態載入的基礎是類載入器classloader;

使用動態載入的三種模式;

採用動態載入的作用與代價;

除了classloader之外的動態修改**的技術(hotfix);

一些動態載入的開源專案;

類載入器classloader的工作機制

內容:類載入器classloader的建立過程和載入類的過程;

classloader的雙親**模式;

dexclassloader和pathclassloader之間的區別;

使用classloader載入外部類需要注意的一些問題;

自定義classloader(hack開發)

載入sd卡的so庫

內容:如何編譯和使用so庫;

分析android中載入so庫相關的原始碼;

如何載入sd卡中的so庫(也是動態載入apk需要解決的問題);

簡單的動態載入模式

內容:如何建立我們需要的dex檔案;

如何載入dex檔案裡面的類;

動態載入dex檔案在art虛擬機器的相容性問題;

**activity的模式

內容:如何啟動外掛程式apk中沒有註冊的activity

**activity模式開源專案「dynamic-load-apk」

動態建立activity的模式

內容:如何在執行時動態建立乙個activity;

自定義classloader並偷梁換柱替換想要載入的類;

動態建立activity模式開源專案「android-pluginmgr」

**模式與動態建立類模式的區別;

還未發布的內容

使用「環境注入」的模式;

使用動態載入技術的情形;

使用動態載入方式專案的專案結構調整和開發除錯方式;

開源專案「android-frontia」,動態載入框架的專案,專注於「外掛程式化」和「宿主與外掛程式之間的通訊」;

android 動態載入技術

首先,應該保證host程式 inte ce部分和impl實現部分在同乙個專案中,其中inte ce部分和impl實現部分作為android library。寫好 之後,將impl部分打包jar的build指令如下 task clearjar type delete task makejar type...

Android動態載入技術(外掛程式化技術)

no1 外掛程式化技術的好處 1 減輕應用的記憶體和cpu占用 2 實現熱插拔,即在不發布新版本的情況下更新某些模組 no2 外掛程式化方案必須要解決三個基礎性問題 資源訪問 activity生命週期的管理和classloader的管理 no3 宿主是指普通的apk,外掛程式一般指經過處理的dex或...

ANROID動態載入技術 系列索引

說到動態載入,我們經常使用 外掛程式化 熱修復 熱部署 等詞彙,所以大家應該不會陌生。本系列的文章的主要目的是分析一下整個動態載入的過程,重點分析其中的關鍵技術點,並且開發乙個比較靈活的動態載入框架,用於滿足不同程度的業務需求。現在使用得比較廣泛的動態載入技術的核心一般都是使用 classloade...