在网易云阅读App上看到了插件管理功能,刚好自己也需要以插件的模式来扩展已有的功能,于是研究了一下,下面是一张网易云阅读App提供的插件模式,只需下载相应的插件就扩展了相应的功能,非常方便。



     在插件下载完成了之后还有一个安装过程,这一个安装过程误导了我很久,一开始以为Android SDK已提供了相应的插件功能,经过google一番发现压根就没有提供该功能。接着以为是网易自己实现了插件功能,遂想偷师。反编译了代码,拿过来一看,混淆的比较严重,压根就不能看,没办法只有硬着头皮去寻找相关的代码,经过一番查找,终于找到了关键代码,发现往 /data/data/packagename/plugin/pdf目录下存了一些东西,于是在该目录下发现以下一些文件


 

     记得以前看到过一篇文章,在Android中也可以动态的去加载class文件,http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html ,由于自己的英语比较挫,看得不是很真切,不过农民伯伯有篇类似的文章http://www.cnblogs.com/over140/archive/2012/03/29/2423116.html ,并阅读提供的扩展阅读博文很好的解决了本人的需求 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法 

     记得以前看到过一篇文章,在Android中也可以动态的去加载class文件,http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html ,由于自己的英语比较挫,看得不是很真切,不过农民伯伯有篇类似的文章http://www.cnblogs.com/over140/archive/2012/03/29/2423116.html ,并阅读提供的扩展阅读博文很好的解决了本人的需求 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法 

     不过在实践的过程中也发现一些问题,如果直接去加载 SDCard中的apk文件并不能成功,具体的异常这里就不贴了,自己可以去实践下。还有就是发现如果去加载直接dex文件的话也不能成功,报的异常是"unable to open 'dex' file",通过阅读API文档发现并没有提及可以直接加载dex文件,只是说可以去加载包含classes.dex文件的jar包和apk文件

     以上遇到的问题还望大家能够指点一下~

     最后还是希望大家能够仔细阅读下面的参考博文中的内容~

     参考博文



 




Android Application plugin的更多相关文章

  1. Failed to apply plugin [id 'com.android.application'] 和 Could not find com.android.tools.build:gradle:2.XX的最正确的解决方法

    发现android studio是真的可爱啊,上一秒还没问题可以build运行,下一秒就出错...好,你任性,你牛逼.. 说下今天又遇到的两个问题:Failed to apply plugin [id ...

  2. Plugin with id 'com.android.application' not found.

    构建报错: Error:(1, 0) Plugin with id 'com.android.application' not found. <a href="openFile&quo ...

  3. AS导入项目报错:Plugin with id 'com.android.application' not found.

    从github或第三方Demo中获取的项目导入到AndroidStudio中报错Plugin with id 'com.android.application' not found.:今天导入一个讯飞 ...

  4. android 编译错误 Error:(1, 0) Plugin with id 'com.android.application' not found.

    在导入一个项目时,由于它本身的gradle版本比较高,你试用比较旧版本的gradle时就报出Plugin with id 'com.android.application' not found.的错误 ...

  5. Error:(1, 0) Plugin with id 'com.android.application' not found

    Error:(1, 0) Plugin with id 'com.Android.application' not found.Open File 这个错误是build.gradle造成的,我们打开文 ...

  6. android studio - 导入工程报错[Plugin with id 'com.android.application' not found]

    出错现象: 大概意思是找不到:com.android.application 插件,以上现象对于初学者来说会经常碰到,下面分析下产生的原因. 原因分析 首先来看看导入后的工程结构: 对于此工程结构,是 ...

  7. The android gradle plugin version 2.3.0-beta2 is too old, please update to the latest version.

    编译项目的时候,报如下错误: Error:(, ) A problem occurred evaluating project ':app'. > Failed to apply plugin ...

  8. Android Application的Gradle说明

    //引入插件 apply plugin: 'com.android.application' android { compileSdkVersion 29 buildToolsVersion &quo ...

  9. Gradle之Android Gradle Plugin 主要 Task 分析(三)

    [Android 修炼手册]Gradle 篇 -- Android Gradle Plugin 主要 Task 分析 预备知识 理解 gradle 的基本开发 了解 gradle task 和 plu ...

随机推荐

  1. flex中在basewidget中不能使用图表组件问题

    参考 http://blog.sina.com.cn/s/blog_51e3d0e70101hljz.html

  2. qt新进程工作目录的设置(工作目录确实是被子进程继承的,但也可以设置)

    经过试验,qt启动一个新的进程时,这个进程的工作目录是继承父进程的,无论是通过start还是startDetached来启动. 其实对于linux系统,qt底层应该也是调用fork.exec之类的函数 ...

  3. [Android学习笔记]try-catch

    private boolean test() { boolean result = true; String str = null; try { Log.d("test",&quo ...

  4. Android studio导入Eclipse项目,和一些错误的解决

    Android studio导入Eclipse开发的项目步骤如下 如果已经打开Android studio的话就选择你已打开的项目,关闭然后导入 开始导入 导入完成. 2.项目出错 Error:(13 ...

  5. 九度OJ 1179 阶乘(模拟)

    题目1179:阶乘 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4526 解决:1315 题目描写叙述: 输入n, 求y1=1!+3!+...m!(m是小于等于n的最大奇数) y2=2! ...

  6. SICP 解题集 — SICP 解题集

    SICP 解题集 — SICP 解题集 SICP 解题集¶ 这个文档的目标是成为中文化的.完整的<计算机程序的构造和解释>一书的解题集. 这个解题集的特色是: 对于每道习题,除了习题答案之 ...

  7. 总结文件操作函数-文件夹(三)-C语言

    获取.改变当前文件夹: 原型为: #include <unistd.h>   //头文件 char *getcwd(char *buf, size_t size); //获取当前文件夹.相 ...

  8. ios 6 横竖屏转换

    xcode 版本4.5     模拟器:6.0 项目需求:刚进去界面横屏,从这个界面进去的界面全是竖屏. 程序的根控制器用了UINavigationController.下面是代码: 1.在appde ...

  9. ThinkPHP---RBAC

    一.什么是RBAC 基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注. 在RBAC中,权限与角色相关联,用户通 ...

  10. Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架

    Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. 历史 Bootstrap 是由 Twitter 的 ...