編輯:關於Android編程
本節我們將練習怎樣安裝(更新)一個插件。本文章基於v1.6.7版本進行說明,最新的方式以官網為准
可下載最新的apkplugdemo源碼http://git.oschina.net/plug/apkplugDemos
一 apkplug插件
apkplug插件是一個apk文件,它與普通的android APP基本相同(開發方式),本節只講插件安裝接口而插件開發將在後面的章節詳細講解
二 apkplug 插件安裝服務
apkplug內嵌一個OSGI服務,所以框架大部分接口都是通過OSGI服務發布的,在這裡你可以不用詳細了解OSGI服務的原理,一下我們將給出調用插件安裝服務的模板代碼。你在開發時可以直接套用。
三 BundleControl接口
插件安裝服務接口為 org.apkplug.Bundle.BundleControl
// startlevel =2 isCheckVersion=true
Bundle install(BundleContext context,String loaclFilePath,installCallback callback)
// v1.6.7 新增接口 建議使用最新的這個調用接口
Bundle install(BundleContext context,String loaclFilePath,installCallback callback,int startlevel,boolean isCheckVersion)
* loaclFilePath --- 插件apk文件的路徑 格式為 "file:"+apk文件絕對路徑
* installCallback ---插件安裝的回調函數 通過它可獲知插件安裝狀態
* startlevel ---插件啟動級別 ,小於default_startlevel的插件會在框架啟動時自起 default_startlevel=2
* isCheckVersion ---安裝時是否檢測已有插件版本 true 檢測版本如果已安插件版本與現有插件版本相同將不安裝 false 不檢測覆蓋安裝
四 獲取BundleControl服務
獲取服務的模板代碼為:
01
public
void
install(String
path,installCallback callback,
int
startlevel,
boolean
isCheckVersion)
throws
Exception{
02
System.out.println(
"安裝
:"
+path);
03
BundleContext
mcontext=frame.getSystemBundleContext();
04
ServiceReference
reference=mcontext.getServiceReference(BundleControl.
class
.getName());
05
if
(
null
!=reference){
06
BundleControl
service=(BundleControl) mcontext.getService(reference);
07
if
(service!=
null
){
08
service.install(mcontext,
path,callback, startlevel,isCheckVersion);
09
}
10
mcontext.ungetService(reference);
11
}
12
}
調用函數安裝插件
//插件啟動級別為1(會自啟) 並且不檢查插件版本是否相同都安裝
install("file:"+filepath[0],new myinstallCallback(),1,false);
五 插件卸載
Bundle.uninstall();
官網www.apkplug.com
QQ交流群:132433459
前言EventBus是一款針對Android優化的發布/訂閱事件總線。簡化了應用程序內各組件間、組件與後台線程間的通信。優點是開銷小,代碼更優雅,以及將發送者和接收者解耦
歡迎使用Markdown編輯器寫博客很多時候,我們在使用應用時,會出現輸入法軟鍵盤彈出的問題,通常情況下,我們默認會使用戶點擊返回鍵或者下一步對軟鍵盤進行隱藏。為了更好的
一、 Android分發機制概述: Android如此受歡迎,就在於其優秀的交互性,這其中,Android優秀的事件分發機制功不可沒。那麼,作為一個優秀的程序員,要想做
在android studio 中出現找不到com.android.support:recyclerview-v7 jar包。 咋一看不對啊,明明you su