本文章基于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. CentOS 如何修改mysql 用户root的密码

    源地址:http://blog.sina.com.cn/s/blog_6756f85201019zv7.html 第一步:用帐号登录mysql[root@CentOs5 ~]# mysql -u ro ...

  2. NDK-gdb的错误ERROR(不同于上一篇): Could not extract package's data directory...的解决方法

    这个问题比较龟毛. 我的系统在4.0.4上一直调试好好的,到了2.2的系统居然fail.能检查的地方全部检查过了,居然不行. 最后仔细差了一遍,居然是由于/data目录的属性是777导致.ndk-gd ...

  3. 腾讯測试project师笔试面试记录

        从3月29日參加腾讯笔试開始,開始了为期1周的腾讯之旅,尽管最后还是跪在了二面上,可是感觉收获非常多,至少明确了自己与向往的BAT公司的差距,明确了自己还是路漫漫其修远兮.     腾讯非常注 ...

  4. CodeForces 13E. Holes 分块处理

    正解是动态树,太难了,仅仅好分块处理水之.看了看status大概慢了一倍之多..     分块算法大体就是在找一个折衷点,使得查询和改动的时间复杂度都不算太高,均为o(sqrt(n)),所以总的时间复 ...

  5. Zero Clipboard - 跨浏览器兼容的“复制到剪贴板”功能

    开发中经常会用到复制的功能,在 IE 下实现比较简单,但要想做到跨浏览器比较困难了. 本文将介绍一个跨浏览器的库类 Zero Clipboard ,它利用 Flash 进行复制,所以只要浏览器装有 F ...

  6. JavaScript 中的事件类型4(读书笔记思维导图)

    Web 浏览器中可能发生的事件有很多类型.如前所述,不同的事件类型具有不同的信息,而“ DOM3级事件”规定了以下几类事件. UI(User Interface,用户界面)事件:当用户与页面上的元素交 ...

  7. GNU libmicrohttpd 0.9.29 发布 - 开源中国社区

    GNU libmicrohttpd 0.9.29 发布 - 开源中国社区 GNU libmicrohttpd 0.9.29 发布

  8. android 在你的UI中显示Bitmap - 开发文档翻译

    由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没有注明“转”,那么均为原创,转贴请注明本博客链接链接 Displaying Bitmaps in Your UI 在你的UI中显示Bitmap ...

  9. HDU 4814 Golden Radio Base 模拟

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4814 题目大意: 把一个正整数表示为φ进制, φ = (1+√5)/2 . 且已知: 1. φ + 1 ...

  10. 百度map android sdk3.5实现定位 并跳转的指定坐标,加入标记

    前几天又下载了新的百度地图sdk,3.5版本号.发现百度地图api有了较大变化 定位和3.0版本号差点儿相同 可是设置地图中心和加入maker标记有较大变化 设置地图中心点 // 定义地图状态zoom ...