android插件化-apkplug插件開發-07

從文章<<apkplug框架基礎結構-01>>瞭解到apkplug框架中的插件是普通的apk文件,本節講解插件開發流程。 java

一 插件工程結構 app

    apkplug插件只比普通app多三個特殊文件 框架

    1.org.osgi.framework.BundleActivator --插件入口類 函數

    2.plugin.xml                                    --插件配置文件  與AndroidManifest.xml類型類似 post

    3.osgi1.6.3.jar                                 --osgi.jar 文件定義了一些插件通訊接口 BundleActivator就在其中 spa

 

二   入口類BundleActivator編寫 插件

    BundleActivator就兩個函數它們是public void start(BundleContext context),public void stop(BundleContext context)。它們分別在插件啓動 中止的時候被apkplug框架調用,咱們能夠再start函數中獲取插件上下文BundleContext 而且初始化或註冊一些插件提供的OSGI服務 xml

三 plugin.xml文件說明 blog

    plugin.xml 與AndroidManifest.xml類型類似提供插件的系統屬性,咱們也能夠經過它定義一些自定義的屬性,經過Bundle.getHeaders().get("key")獲取 接口

    plugin.xml有如下幾個屬性比較重要

    1.Bundle-Name                      --插件名稱

    2.Bundle-SymbolicName           --插件惟一標識相似安卓程序應用標識

    3.Bundle-Version                    --插件版本號 ‘主版本號.次版本號.修訂版本號 如1.1.6

    4.Bundle-Activator                  --插件入口類 ,經過它框架可在啓動插件的時候找到並調用start()函數

    5.Bundle-Activity                     --插件的 Lanucher Activity路徑

    6.Export-Package                    --提供給其餘插件使用的java類須要導出對應包路徑(多個包以 ‘,‘ 分割)

    7.Import-Package                    --插件內部沒有這樣的java類須要從其餘插件導入(多個包以 ‘,‘ 分開)

    注意事項:

            Export-Package,Import-Package是相互配合的,但若是插件不須要與外部互交的話就無需配置它們。而咱們也應該儘可能少使用這兩個屬性

    由於它們是插件直接耦合度增長不利於熱插拔更新。

三 編譯打包

    最後將編輯好的插件工程打包編譯生成apk文件,該apk文件即爲插件,可經過apkplug提供的服務安裝到宿主應用中<apkplug插件安裝方法>

官網www.apkplug.com

QQ交流羣:132433459 

相關文章
相關標籤/搜索