前情提要在探索资源加载方式之前,我们先来看看上一篇中没细讲的东西。还没看过的建议先看上一篇Android插件化探索(一)类加载器DexClassLoader。PathClassLoader和DexClassLoader的区别DexClassLoader的源码如下:...
分类:
移动开发 时间:
2016-05-27 11:30:16
阅读次数:
241
加载一个Activity肯定不会像加载一般的类那样,因为activity作为系统的组件有自己的生命周期,有系统的很多回调控制,所以自定义一个DexClassLoader类加载器来加载插件中的Activity肯定是不可以的。
首先不得不了解一下activity的启动流程,当然只是简单的看一下,太详细的话很难研究清楚。通过startActivity启动后,最终通过AMS进行跨进程回调到Applica...
分类:
移动开发 时间:
2016-04-08 15:15:54
阅读次数:
239
Java中也有类加载器ClassLoader,其作用是动态装载Class文件,当我们从网络下载Class文件,或者在编译时不参与而在运行时动态调用时就需要用类加载器。由于Android对class文件进行了重新打包和优化,最终APK文件中包含的是dex文件,加载这种文件就需要用到DexClassLoader。
DexClassLoader(dexPath, optimizedDirectory,...
分类:
其他好文 时间:
2016-04-05 17:47:31
阅读次数:
154
基于Android5.0源码,分析DexClassLoader的创建过程。
分类:
其他好文 时间:
2016-02-25 21:05:16
阅读次数:
260
动态加载框架DL分析插件化开发,主要解决三个问题1.动态加载未安装的apk,dex,jar等文件2.activity生命周期的问题,还有service3.Android的资源调用的问题简单说一下怎样解决这三个问题,让插件化开发成为可能1.解决未安装的apk比较简单,用DexClassLoader就可
分类:
其他好文 时间:
2016-02-16 13:27:18
阅读次数:
222
0x00 在上一篇文章apk安装和优化原理,在最后我们分析了DexClassLoader和PathClassLoader的构造函数的不同。 PathClassLoader最后调用的是new DexFile(pathFile),而DexClassLoader调用的是DexFile.loadDex(dexPathList[i], outputName, 0)。 0x01 ...
分类:
其他好文 时间:
2016-01-21 13:53:18
阅读次数:
256
Android插件化(二):使用DexClassLoader动态加载assets中的apk简介上一篇博客讲到,我们可以使用MultiDex.java加载离线的apk文件。需要注意的是,apk中的类是加载到当前的PathClassLoader当中的,如果apk文件过多,可能会出现ANR的情况。那么,我们能不能使用DexClassLoader加载apk呢?当然是可以的!首先看一下Doc文档.A clas...
分类:
移动开发 时间:
2015-12-28 09:11:42
阅读次数:
271
前言 如同第一章我们说的,宿主程序通过 dexclassloader 将插件的类加载进来,然后通过反射去调用它的方法,这样Activity就被当成了一个普通的类来执行了,因此系统不再接管它的生命周期,也就是说Activity的生命周期函数失效了。针对这样的问题,有网友想出使用Fragment来解决....
分类:
移动开发 时间:
2015-12-09 19:46:58
阅读次数:
242
把Apk 作为asset 资源编译进去,运行的时候释放出来再安装。dexclassloader加载。动态加载。把一个apk写成安装器,默认安装的话,需要root或者需要漏洞利用。
分类:
其他好文 时间:
2015-09-22 14:15:08
阅读次数:
154
1. 加壳apk的加壳:在程序外面再包裹一层代码,保护里面的代码不被非法修改或者反编译。被保护的程序用加密算法加密,解密逻辑写在作为壳的APK中,实际执行的是被保护的程序。大多是通过DexClassLoader或者隐藏的函数openDexFile将源dex(即被保护的app)加载进来,然后动态替换A...
分类:
移动开发 时间:
2015-09-08 00:26:36
阅读次数:
227