android插件化-apkplug框架啓動-02

本文章基於apkplug v1.6.7 版本編寫,最新方式以官網最新消息爲準 java

一 apkplug框架所須要的庫文件(宿主) 可從http://git.oschina.net/plug/apkplugSDK  獲取最新庫文件 android

    同時可下載最新的apkplugdemo源碼 http://git.oschina.net/plug/apkplugDemos git

    libs-- app

        --libndkfoo.so   armeabi armeabi-v7a mips x86 框架

        --Bundle(版本號).jar       函數

    將以上的文件加入宿主應用的libs目錄下 this

 

二 AndroidManifest.xml 權限配置 spa

    插件平臺須要幾個基礎的權限配置,請將如下的幾個權限加入到工程的AndroidManifest.xml中 .net

    <!-- 插件平臺須要的權限! -->
    <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"/>

    另外將一下加入到<application></application>節點中
    <!-- 插件平臺須要的配置! -->
   <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獲取已插件和信息等操做
相關文章
相關標籤/搜索