在Android中動態載入自定義類

2021-06-22 12:33:19 字數 862 閱讀 3546

普通的android程式dalvik虛擬機器都是從乙個預設的地方引導程式需要的類檔案(dex檔案),而dalvik虛擬機器還提供了從其他地方載入類的能力(比如從裝置的內部儲存空間以及網際網路).

這種自定義類載入機制可以使用於一些場景:

android有個示例專案演示了如何使用, 專案位址

在示例中有3個類檔案:

在打包的時候需要修改專案目錄下的local.properties檔案,把sdk.dir的值修改為對應的android sdk目錄.例如:sdk.dir=e:\\google\\android-sdk-windows

另外不要忘記在default.properties中指定需要的android平台: 例如 target=android-9

然後就可以執行android install來build並且安裝到模擬器或者手機上了.

載入自定義類的過程

獲取需要載入的自定義類的dex檔案,可以是裝置本地的檔案或者網際網路上的檔案

把獲取到的自定義類dex檔案儲存到程式的內部儲存空間中:new file(getdir(「dex」, context.mode_private),secondary_dex_name);

通過dexclassloader類載入器來解析優化前面的dex檔案

通過dexclassloader的loadclass函式來載入類

通過獲得到的類的newinstance函式來生成需要的物件

開始使用獲取到的動態類物件~\(≧▽≦)/~啦啦啦

中 的android-custom-class-loading-goodev-demo

詳細情況請參考專案中的**注釋

修改後的專案可以通過eclipse adt來build.

read more:

Android動態載入 載入已安裝APK中的類

前言 android動態載入 載入已安裝apk中的類和資源。不錯的帖子哦!gridview用法大總結 牛年珍藏版 原始碼 android樸素ui城市天氣預報原始碼 精美android ui介面原始碼 有圖有真相 正文 一 目標 注意 被呼叫的apk在android系統中是已經安裝的。從當前apk中呼...

在Symbian中動態載入DLL

在symbian中動態載入dll 2008年08月27日 星期三 下午 05 05 我想大家對symbian已經有了基本的了解,我就不再介紹了。總起來說,我感覺symbian和windows系統相當的相似,而s60的程式設計框架和mfc又有八分相近。那麼,在windows中我們能動態的引入dll那在...

在Symbian中動態載入DLL

在symbian中動態載入dll 我想大家對symbian已經有了基本的了解,我就不再介紹了。總起來說,我感覺symbian和windows系統相當的相似,而s60的程式設計框架和mfc又有八分相近。那麼,在windows中我們能動態的引入dll那在symbian中也應該可以。就做了個小測試,過程如...