2021-05-12 14:32:11
如何使用ApkPlug進行Android平台下模組化開發
使用Apkplug外掛化的接入流程可歸結如下圖:
1
開啟Apkplug官網後,點選右上角的「註冊」,在跳轉頁面填入相關資訊,註冊介面如下:
2
確認後註冊成功,使用你的賬號登入網站。你就可以用Apkplug開發應用了1
Apkplug中的外掛也是一個完整的apk,它與普通應用的區別有以下3點:
1, 外掛assets目錄下有一個plugin.xml文件,通過它可判斷一個工程是主應用還是外掛。
2, 外掛有一個入口類BundleActivator
3, 外掛會外部參照一個osgi.jar檔案
開發外掛的步驟有如下4步:
1,引入osgi.jar庫檔案
Apkplug中外掛需要匯入的庫檔案只有一個osgi.jar。
匯入osgi.jar庫檔案需要注意一下
osgi.jar檔案只能參照不能編譯到apk檔案中,否則會出現類衝突的情況
異常程式碼:had used a different Lorg/osgi/framework/BundleActivator; during pre-verification。
osgi.jar包匯入方法:
2
這檔案在Apkplug SDK中可以找到。??3
2,編寫外掛入口類BundleActivator外掛啟動時首先呼叫BundleActivator,其功能類似android中的application類。?public class SimpleBundle implements BundleActivator{??? private BundleContext mcontext = null;??? public void start(BundleContext context) throws Exception??? {??????? System.err.println("你好我是外掛,我將為你展示啟動acitivty我已經啟動了 我的BundleId為:"+co4
3,編寫plugin.xml設定檔案plugin.xml 是一個設定表,它跟AndroidManifest.xml作用類似。 plugin.xml文件放置在assets中即可? 重要屬性說明: Bundle-Name ? ? ? ? ? ? ? ? ? ? ? ?外掛名稱 Bundle-SymbolicName ? ? ? 外掛包名 ?-與應用packagename可一一對應 Bundle-Version ? ? ? ? ? ? ? ? ? ? 外掛版本 ?-1.0.0 Bundle-Activator ? ? ? ? ? ? ? ? ? ?外掛入口 ?-與Appliction 類似 Bundle-Activity5
4, 編譯生成外掛apk檔案
外掛工程中新增的檔案目錄結構如下:
6
最後編譯執行外掛工程,生成的apk檔案即為外掛檔案1
Apkplug 主應用開發分兩步整合:
1. 獲取主應用授權AppAuth。
登入賬號進入Apkplug後台後,切換到「應用授權頁面」,按要求填寫好應用資訊,然後確定,你就擁有了一個等待開發的應用授權AppAuth。應用授權介面如下:
2
進入「授權列表」頁面,點選「檢視詳情」連結,進入「應用詳情介面」,就可以看到已申請的AppAuth,點選其後面的「複製」,即可直接複製AppAuth,如下圖所示
3
2. 對接Apkplug SDK 匯入相關庫檔案。
①設定應用許可權
主應用需要幾個基礎的許可權設定,請將以下的幾個許可權加入到主應用的AndroidManifest.xml中。
<!-- 外掛平台需要的許可權! -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE">
</uses-permission>
另外將一下加入到<application></application>節點中
<!-- 外掛平台需要的設定! -->
<activity
android:name="org.apkplug.app.apkplugActivity"
android:theme="@style/android:Theme.Light"
android:configChanges="orientation|keyboardHidden"
/>
最後將我們從Apkplug管理後台申請到的AppAuth加入到設定檔案中。
<meta-data android:name="apkplug-auth" android:value="xxxxxxxx" ></meta-data>
註:由於3.2.2節中我們直接複製了AppAuth,此處直接貼上到AndroidManifest文件中。
如下圖:
4
②匯入SDK庫檔案
主應用需要匯入兩個檔案,將其放入libs目錄中即可。
1, libndkfoo.so
2, Bundle2.0.0.jar
如下圖:
5
這兩個庫檔案在Apkplug SDK中可以找到。然後:主應用啟動Apkplug最簡只需要一段程式碼即可,建議在Application中啟動框架。?FrameworkInstance frame=FrameworkFactory.getInstance().start(List<BundleActivator>,Context);?6
將上一步驟開發好的外掛apk,放置在主應用工程裡的assets路徑下。
如下圖:
1
最後啟動主應用即可。簡單的外掛化apk的方法就講完了,有興趣的關注我,下次講雲端託管外掛實現應用內更新。相關文章