<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 插件平臺須要的配置! -->
<activity
android:name="org.apkplug.app.apkplugActivity"
android:theme="@style/android:Theme.Light"
android:configChanges="orientation|keyboardHidden"
/>
三 啓動apkplug框架
你能夠在應用的Application中啓動框架具體代碼以下 (並不限制在Application中)
public FrameworkInstance start( List activatorList,Context appContext,PropertyInstance property)
public FrameworkInstance start( List activatorList,Context appContext,PropertyInstance property,DisplayMetrics dm2)
1.activatorList 是一個BundleActivator的List(能夠爲null) 這些BundleActivator在框架啓動時啓動(系統級別)
2.PropertyInstance 框架保存配置信息的接口
//框架經過該接口獲取本地保存的變量
public String getProperty(String key);
//框架經過該接口設置本地變量
public void setProperty(String key,String v);
//框架啓動時將自動安裝該該函數提供的文件 "file:"+apk文件路徑 (1.6.7之後不建議使用 可用BundleControl代替)
public String[] AutoInstall();
//框架啓動時將自動安裝並啓動該該函數提供的文件 "file:"+apk文件路徑 (1.6.7之後不建議使用 可用BundleControl代替)
public String[] AutoStart();
//調試模式 調試模式中退出APP時調用FrameworkInstance.shutdown();將刪除全部插件
public boolean Debug();
四 框架啓動成功獲取FrameworkInstance接口
框架啓動成功之後會返回org.apkplug.app.FrameworkInstance接口,它是宿主應用與apkplug框架和插件通訊的接口。
//中止框架
public void shutdown();
//獲取框架的SystemBundle apkplug框架啓動時會建立一個SystemBundle 它的BundleID爲0 同時它不可中止和卸載,咱們科經過它與其餘插件通訊
public Bundle getSystemBundle();
//SystemBundle 插件的上下文 BundleContext
public BundleContext getSystemBundleContext();
啓動代碼:
try
{
FrameworkInstance frame=FrameworkFactory.getInstance().start(null,Launcher.this,MyProperty.getInstance(this.getApplicationContext()));
}catch (Exception ex){
System.err.println("Could not create : " + ex);
ex.printStackTrace();
StringBuffer buf=new StringBuffer();
buf.append("插件平臺啓動失敗:\n");
buf.append(ex.getMessage());
Toast.makeText(this, "插件平臺啓動失敗",Toast.LENGTH_SHORT).show();
}
至此框架便嵌入到應用中並啓動成功了,下一篇文章將講解怎樣經過SystemBundle獲取已插件和信息等操做