首頁 > 軟體

如何使用ApkPlug進行Android平台下模組化開發

2019-11-27 13:59:54

使用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為:"+co
ntext.getBundle().getBundleId());??? }??? public void stop(BundleContext context)??? {??? ???????? System.err.println("你好我是外掛,我被停止了 我的BundleId為:"+context.getBundle().getBundleId());???????? }????????}
m.err.println("你好我是外掛,我被停止了 我的BundleId為:"+context.getBundle().getBundleId());???????? }????????}

4

3,編寫plugin.xml設定檔案plugin.xml 是一個設定表,它跟AndroidManifest.xml作用類似。 plugin.xml文件放置在assets中即可? 重要屬性說明: Bundle-Name ? ? ? ? ? ? ? ? ? ? ? ?外掛名稱 Bundle-SymbolicName ? ? ? 外掛包名 ?-與應用packagename可一一對應 Bundle-Version ? ? ? ? ? ? ? ? ? ? 外掛版本 ?-1.0.0 Bundle-Activator ? ? ? ? ? ? ? ? ? ?外掛入口 ?-與Appliction 類似 Bundle-Activity
? ? ? ? ? ? ? ? ? ? ? 外掛介面 ?-多個Activity可用 , ?分割 Bundle-Service ? ? ? ? ? ? ? ? ? ? 外掛Service ?-多個Service可用 , 分割 ? ?(v2.0.0新增) Bundle-Receiver ? ? ? ? ? ? ? ? ?外掛廣播 ? ?-多個廣播類可用 , 分割 ? ? ? ? (v2.0.0新增)
可用 , 分割 ? ?(v2.0.0新增) Bundle-Receiver ? ? ? ? ? ? ? ? ?外掛廣播 ? ?-多個廣播類可用 , 分割 ? ? ? ? (v2.0.0新增)

5

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的方法就講完了,有興趣的關注我,下次講雲端託管外掛實現應用內更新。

IT145.com E-mail:sddin#qq.com