android外掛程式化-apkplug架構啟動-02

來源:互聯網
上載者:User

標籤:android   模組化   apkplug   外掛程式   輕應用   

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

一 apkplug架構所需要的庫檔案(宿主) 可從http://git.oschina.net/plug/apkplugSDK  擷取最新庫檔案

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

    libs--

        --libndkfoo.so   armeabi armeabi-v7a mips x86

        --Bundle(版本號碼).jar      

    將以上的檔案加入宿主應用的libs目錄下

 

二 AndroidManifest.xml 許可權配置

    外掛程式平台需要幾個基礎的許可權配置,請將以下的幾個許可權加入到工程的AndroidManifest.xml中

    <!-- 外掛程式平台需要的許可權! -->     <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();       啟動代碼:      view sourceprint?
01 try
02 {
03  FrameworkInstance frame=FrameworkFactory.getInstance().start(null,Launcher.this,MyProperty.getInstance(this.getApplicationContext()));
04  }catch(Exception ex){
05      System.err.println("Could not create : "+ ex);
06      ex.printStackTrace();
07      StringBuffer buf=newStringBuffer();
08      buf.append("外掛程式平台啟動失敗:\n");
09      buf.append(ex.getMessage());
10      Toast.makeText(this,"外掛程式平台啟動失敗",Toast.LENGTH_SHORT).show();
11  }


  至此架構便嵌入到應用中並啟動成功了,下一篇文章將講解怎樣通過SystemBundle擷取已外掛程式和資訊等操作 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.