在网易云阅读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. Twenty Newsgroups Classification任务之二seq2sparse(2)

    接上篇,SequenceFileTokenizerMapper的输出文件在/home/mahout/mahout-work-mahout0/20news-vectors/tokenized-docum ...

  2. 一种基于Qt的可伸缩的全异步C/S架构server实现(一) 综述

    本文向大家介绍一种基于Qt的伸缩TCP服务实现.该实现针对C/Sclient-服务集群应用需求而搭建. 连接监听.传输数据.数据处理均在独立的线程池中进行,依据特定任务不同,可安排负责监听.传输.处理 ...

  3. Delphi中使用GDI+进行绘图(2)

    2)使用IGDIPlus接口 (1)下载安装所需软件 可以在以下地址下载IGDI+最新的安装程序. http://www.mitov.com/products/igdi+ www.igdiplus.o ...

  4. 一次ORA-03113错误解决

    ---------------------------------------------------------------------------- -----------------ORA错误处 ...

  5. ExtJs4 笔记(3) Ext.Ajax 对ajax的支持

    本篇主要介绍一下ExtJs常用的几个对JS语法的扩展支持,包括Ajax封装,函数事件操作封装,还有扩展的常用函数等.Ajax服务端交互式操作是提交到.NET MVC.后续服务端交互都采用这一方式实现. ...

  6. Qt窗口操作函数(最大化,全屏,隐藏最大化,最小化)

    Qt窗口中的一些小技术总结 //Qt主窗口没有最小化,最大化按钮且最大化显示  int main(int argc, char *argv[]) { QApplication a(argc, argv ...

  7. Mybatis+Struts2的结合:实现用户插入和查找

    总结一下今天一个成功的小实验:Mybatis+Struts2的结合:实现用户插入和查找.删除和修改如果以后写了,会继续更新. 一 准备工作. 1.新建一个java web项目. 2.在webConte ...

  8. C语言函数参数压栈顺序为何是从右到左?(从左向右的话,碰到printf的会陷入死循环)

    上学期学习了汇编语言,并在操作系统实验中使用了汇编+C语言混合编程,中间也了解了一些C语言与汇编语言的对应关系. 由于汇编语言是底层的编程语言,各种函数参数都要直接控制栈进行存取,在混合编程中,要用汇 ...

  9. 沙朗javascript总结一下(一)---基础知识

    我也听说过Javascript这东西.我一直感觉很神奇,但它并没有去太懂.今天,牛腩哥哥随后的初步研究,一些浅显的认识.就先总结一下. 首先,什么是javascript? javascript是一种直 ...

  10. ImportError: No module named _sqlite3 - 代码分享

    ImportError: No module named _sqlite3 - 代码分享 ImportError: No module named _sqlite3 作者:86市场网       点击 ...