本文章基于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 权限配置

插件平台须要几个基础的权限配置,请将下面的几个权限增加到project的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();
 
    启动代码:

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=new
StringBuffer();
08      buf.append("插件平台启动失败:\n");
09      buf.append(ex.getMessage());
10      Toast.makeText(this,
"插件平台启动失败",Toast.LENGTH_SHORT).show();
11  }
至此框架便嵌入到应用中并启动成功了,下一篇文章将解说如何通过SystemBundle获取已插件和信息等操作 

android插件化-apkplug框架启动-02的更多相关文章

  1. android插件化-apkplug从宿主启动插件Activity-06

    插件是一个apk文件它存在自己的Activity界面和UI显示,本节将解说如何配置插件的启动Activity以及如何从宿主启动它. 一 配置插件apk的对外启动Activity (内部activity ...

  2. Winform开发框架之插件化应用框架实现

    支持插件化应用的开发框架能给程序带来无穷的生命力,也是目前很多系统.程序追求的重要方向之一,插件化的模块,在遵循一定的接口标准的基础上,可以实现快速集成,也就是所谓的热插拔操作,可以无限对已经开发好系 ...

  3. android插件化-获取apkplug框架已安装插件-03

    上一篇文章成功的将apkplug框架嵌入了应用中而且启动 链接http://www.apkplug.com/blog/?post=10 这一篇文章实现怎样获取全部已安装插件 一 获取框架的System ...

  4. 自己动手写Android插件化框架,让老板对你刮目相看

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由达文西发表于云+社区专栏 最近在工作中接触到了Android插件内的开发,发现自己这种技术还缺乏最基本的了解,以至于在一些基本问题上浪 ...

  5. Android插件化(使用Small框架)

    github: https://github.com/cayden/MySmall Android插件化(使用Small框架) 框架源代码 1. Create Project File->New ...

  6. 自己动手写Android插件化框架

    自己动手写Android插件化框架 转 http://www.imooc.com/article/details/id/252238   最近在工作中接触到了Android插件内的开发,发现自己这种技 ...

  7. android 插件化框架VitualAPK

    推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) LeakCanary 与 鹅场Matrix ResourceCa ...

  8. Android插件化开发,初入殿堂

    好久没有写博客了,这次准备写写我这几天的研究成果--Android插件化开发框架CJFrameForAndroid. 好久没有写博客了,这次准备写写我这几天的研究成果--Android插件化开发框架C ...

  9. Android插件化开发

    客户端开发给人的印象往往是小巧,快速奔跑.但随着产品的发展,目前产生了大量的门户型客户端.功能模块持续集成,开发人员迅速增长.不同的开发小组开发不同的功能模块,甚至还有其他客户端集成进入.能做到功能模 ...

随机推荐

  1. jquery 拓展方法

    摘抄自(http://hi.baidu.com/jjjvzugcpmcdmor/item/0e32a89c36a18544f04215d7) $.fn是指jquery的命名空间,加上fn上的方法及属性 ...

  2. Codeforces 358 D. Dima and Hares

    dp[i][0]表示i号兔子先于i-1号兔子喂食,dp[i][1]反过来. 倒着DP D. Dima and Hares time limit per test 2 seconds memory li ...

  3. oracle数据库、客户端安装以及ps/sql连接和导入表实例

    从下面的网址下载http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098 ...

  4. JVM内存配置详解(转)

    前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的O ...

  5. oracle数据库单个数据文件的大小限制

    之前没有仔细想过这个问题,因为总是不会用到,也没有犯过类似错误. 顺便提一下学习方法吧. 卤肉的学习方法是:常用知识点,熟悉理论并反复做实验,深入理解:不常用的知识点,相关内容都了解大概,遇到问题时想 ...

  6. java 获取当期时间之前几小时的时间

    Calendar expireDate = Calendar.getInstance(); expireDate.set(Calendar.HOUR_OF_DAY, expireDate.get(Ca ...

  7. hdu4280(最大流)

    传送门:Island Transport 题意:有N个岛屿 M条无向路 每个路有一最大允许的客流量,求从最西的那个岛屿最多能运用多少乘客到最东的那个岛屿. 分析:无向图正反都加弧,权值一样,这题点多, ...

  8. android编译自己 内置的jar做法

    1.首先 android.mk LOCAL_PATH := $(call my-dir) # ===================================================== ...

  9. UltraEdit破解方法最强收录

    作为一个能够满足你一切编辑需求的强大文本编辑器.ultraedit在IT届有着非常高的人气.只是它正版的价钱也是不廉价滴,没记错的话是要好几十刀. 那么对于我们来说,破解UltraEdit就是一项必备 ...

  10. hdu4489(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4489 题意:给一个n,求n个高矮不同的人排成一排使得高.矮依次排列的种数. 详细思路参考:http:/ ...