0x00 在上一篇文章apk安装和优化原理,在最后我们分析了DexClassLoader和PathClassLoader的构造函数的不同。 PathClassLoader最后调用的是new DexFile(pathFile),而DexClassLoader调用的是DexFile.loadDex(dexPathList[i], outputName, 0)。 0x01 ...
分类:
其他好文 时间:
2016-01-21 13:53:18
阅读次数:
256
apk 反编译大家都比较熟悉,这里只做一个笔记。1 反编译 apkapktool d perfect.apk这样就把资源文件解压缩了, classes.dex 也反编译成了 smali 文件2 修改 smali 文件得到 smali 文件,现在就可以对 smali 文件进行修改和添加自己的代码了。当...
分类:
移动开发 时间:
2016-01-21 00:30:12
阅读次数:
301
一个使用命令行编译Android项目的工具类简介编译apk项目需要使用的几个工具,基本都在sdk中,它们分别是(Windows系统):
1.aapt.exe
资源打包工具
2.android.jar
Android编译工具
3.dx.bat
dex文件生成工具
4.sdklib.jar
生成apk
5.jarsigner
签名工具
准备在打包前,需要的环境如下:
1.JDK1.6+
2.An...
分类:
移动开发 时间:
2016-01-11 08:02:35
阅读次数:
329
1 什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。dex格式是专门为Dalvik设计的一种压缩格式,适合内存和处理器速度有限....
分类:
移动开发 时间:
2016-01-09 13:51:50
阅读次数:
225
1 什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。dex格式是专门为Dalvik设计的一种压缩格式,适合内存和处理器速度有限....
分类:
移动开发 时间:
2016-01-09 00:52:12
阅读次数:
247
出现的原因:当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很...
分类:
移动开发 时间:
2016-01-08 11:39:33
阅读次数:
253
本手册适合至少有初级经验的开发者查阅或复习相关知识使用,新手可能会看不懂。1、java代码优化1.1安卓如何执行代码dvm:.java->.class->.dex->.apk
优化斐波那契数列:
斐波那契数列的递推公式是f(n)=f(n-1)+f(n-2),特征方程为:x2=x+1,解该方程得(1+sqrt(5))/2,(1-sqrt(5))/2.所以f(n)=Ax1n+Bx2n,带入f(0)=0,...
分类:
移动开发 时间:
2016-01-07 16:46:17
阅读次数:
296
Android App的大小随着Android平台持续增长。当你的应用程序和它引用的库达到某个大小,你会遇见预示你的App已经达到Android应用构建架构极限的构建错误。早期版本的构建系统报告如下错误:
Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536
最近版本的Android构建系统显示一个不同的错误,他指示这同样的问题:...
分类:
移动开发 时间:
2016-01-07 01:19:49
阅读次数:
263
一.apktool的作用安卓应用apk文件不仅仅是包含有resource和编译的java代码的zip文件,如果你尝试用解压工具(如好压)解压后,你将会获得classes.dex和resource.arsc等文件。但这些文件对我们来说一无用处。你可以尝试打开AndroidManifest.xml:如果...
分类:
其他好文 时间:
2015-12-29 11:11:58
阅读次数:
169
这个问题困扰我好一两天了,现在解决了这个麻烦的问题,我觉得有必要以博客的形式描述一下我这段心酸的解决经历,在网上查了好多关于这方面的资料,大多都是说编译的jar包,或者libs重复之类的(我用的是AS),但是我仔细看了好几遍我的builde.gradle文件,没有这个问题的存在,所以我就很纳闷,.....
分类:
移动开发 时间:
2015-12-28 12:12:32
阅读次数:
196