普通的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中也應該可以。就做了個小測試,過程如...