安卓應用程序插件化開發框架 -AAP Framework
上篇博文,介紹了一種安卓開發中程序插件化的方法,想想應該可以搞的更方便些,于是花了4天時間把框架做出來了,希望能對大家有用。
介紹
這個框架的初衷,是為了方便讓程序模塊化、插件化,將一個apk應用拆分為多個apk。
不明白這個插件化、模塊化是怎么回事的話,可以看看騰訊微信的安卓客戶端中的插件配置。
在這里我會以騰訊微信為例,如何使用這個框架。 (騰訊微信并不是真正的插件化,它是偽的,插件并非與它的主程序分離開,結果就是每次插件的更新,都必須以整個程序的更新為代價)
都能干啥
框架的思想,主要是通過apk清單文件中的sharedUserId屬性來吧多個apk融合為單一的dalvik虛擬機,也就是融合為一個進程,這樣就變相逾越了android框架中不同apk權限不同無法互通的鴻溝(rpc啦什么的其它的畢竟不如這個來的實在)。
從最簡單的皮膚插件到復雜的涉及數據庫的拓展功能,從普通activity跳轉到把插件的activity轉變為view并附加到主程序中的拓展功能,都是可以通過本框架來實現的,當然,本框架只是提供了一種途徑,如何編碼還得靠自己。
本人能力有限,可能有一些錯誤、疏漏或者不足之處,請不吝指教,我的博客地址在左下角,或者我的郵箱,都可以聯系到我。
ps:下面會以騰訊微信為例,這里聲明一下,本人沒有對微信安卓客戶端進行任意形式的反編譯與破解工作,只是看球半天進行簡單的猜測而已。
框架結構
本插件框架由三個包組成:
- org.igeek.android.pluginframework 這個包種類是框架的主要操作類
- org.igeek.android.pluginframework.annotation 未來可能會考慮使用注解
- org.igeek.android.pluginframework.beans 框架內部使用的一些beans
- org.igeek.android.pluginframework.util 一些工具類
- XMLParse 插件包
浙公網安備 33010602011771號