綁定帳號登入

Android 台灣中文網

[軟體] Android應用插件式開發解決方法

[複製連結] 查看: 6090|回覆: 0|好評: 0
lucky_jayce | 收聽TA | 顯示全部樓層 |閱讀模式
發表於 2013-11-7 14:20

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 lucky_jayce 於 2013-11-7 14:21 編輯

Android應用插件式開發解決方法
一、現實需求描述
一般的,一個Android應用在開發到了一定階段以後,功能模組將會越來越多,APK安裝包也越來越大,用戶在使用過程中也沒有辦法選擇性的載入自己需要的功能模組。此時可能就需要考慮如何分拆整個應用了。
二、解決方案提出
一般有兩種方式,一種是將應用按照功能分拆成多個應用,用戶需要哪個就下載哪個,都需要就都下載。應用之間,可以在代碼層面做一定的關聯,以共享部分訊息。另一種方式,類似於其他平台插件的方式,用戶可以在主應用中可以選擇性的下載需要的插件,不需要該功能,則不需要下載。
第一種方式,只需要開發多個應用就夠了。第二種方式稍微複雜,需要做很多額外的工作。這裡我們簡單討論第二種方式的大致實現方法。
三、實現方法概述
有人可能會想到,是否可以像其他平台那樣,下載一個類似於dll檔案,或者jar包,就能自動識別並且載入該功能?可惜的是,在Android平台上是不允許直接動態載入jar包的,作者也沒有想到類似辦法。所以,想實現這種功能,還是要以獨立APK的方式來載入。和第一種方式不同的是,從設計的角度,具體的插件是沒有獨立執行的入口的,也不允許有桌面圖示存在,必須從主應用中開啟,關閉後回到主應用。從用戶的角度看,可以在應用中載入需要的功能並且使用,也就類似於其他平台插件的方式了。
為了實現這種方式,從設計的角度,就需要考慮清楚哪些功能作為獨立的插件提供給用戶,這裡不再詳述。下面從開發的角度說明大致需要做的工作。
O  主應用中需要開發的框架功能:
識別具體的插件是否已經安裝(根據插件的package名)
如果已經安裝要判斷是否需要升級(服務器端獲取最新的版本和本地的比較)
下載並且安裝(或者升級)插件
卸載該插件
O  插件APK開發中需要注意的事項:
Manifest檔案中不要提供啟動的入口
O  主應用和插件之間交互的提示:
最好是使用相同的android:sharedUserId,插件可以方便的獲取主應用的資源、資料庫等等。
主應用可以以Intent方式啟動具體的插件,同時帶入Map類型參數或者json串參數,在插件APK中解析具體參數,實現業務邏輯。
三、其他說明
本博客內容並沒有具體說明如何去實現,沒有代碼級別的說明。但是通過上面介紹的方式,開發者基本已經可以理解如何實現插件式的Android應用了。具體的,在開發過程中可能還會遇到很多問題,需要開發者自己摸索和完善。
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則