Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android插件化-安裝apkplug插件-04

android插件化-安裝apkplug插件-04

編輯:關於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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved