一、Enum的产生 二、Android官方建议 2中使用Enums,DEX size增加是情形1中的13倍之多。这只是DEX code的增加,同样,运行时的内存分配,一个enum值的声明会消耗至少20 bytes,不算其中的对象数组需要保持对enum值的引用。使用javap反编译情形二中生成的cla ...
分类:
移动开发 时间:
2016-09-14 12:29:44
阅读次数:
253
通常我们习惯用eclipse来开发Android程序,它会自动帮我们打包当前的应用程序。如果在Navigator视图下,我们可以看到以下几个文件: 在上图中,com包放置的是我们的class文件,classes.dex是class文件经过转换后的可以在dalvik上跑的精简类文件,resources ...
分类:
移动开发 时间:
2016-09-13 11:46:58
阅读次数:
220
先来看看整体的结构,结构体定义在DexFile.h里面 在dexFileSetupBasicPointers中设置各个子结构体,当然是在解析DexHeader之后源码在DexFile.c文件中 在解析每个子结构体之前我们先了解下leb128格式,源码leb128.c中解析这种格式 LEB128 ( ... ...
分类:
其他好文 时间:
2016-09-03 10:56:38
阅读次数:
222
一.生成dex文件我们可以通过java文件来生成一个简单的dex文件编译过程:首先编写java代码如下:(1) 编译成 java class 文件执行命令 : javac Hello.java编译完成后 ,目录下生成 Hello.class 文件(2) 编译成 dex 文件dx --dex --ou... ...
分类:
其他好文 时间:
2016-08-31 14:06:14
阅读次数:
157
一. dex文件头(1) magic value在DexFile.c dexFileParse函数中 会先检查magic opt啥是magic opt呢? 我们刚刚从cache目录拷贝出来的那个前面的dey 036就是magic opt在源码中会先解析magic opt,然后重设dexfile指针重... ...
分类:
其他好文 时间:
2016-08-31 13:55:26
阅读次数:
194
今天在写程序的时候我的Android Studio 突然编译错误(错误提示如下:)后来经过我的几番折腾发现每一次都要先Clear Project一下然后再Build就可以了,如果你第二次再Build的时候就报错。后来我就找到了最强的老师(Google)尝试解决!可惜很遗憾,我在Google上看到的都 ...
分类:
移动开发 时间:
2016-08-31 00:40:34
阅读次数:
494
字符串解密算法还愿jeb.jar为核心功能,所以主要分析这个1. jar转dex在使用jeb分析Android\sdk\build-tools\23.0.3dx.bat --dex --output=输出目录 jeb.jar(路径)2. 载入分析发现很多字符串加密之后的字节数组3.解密字符串代码在这... ...
分类:
其他好文 时间:
2016-08-29 22:34:50
阅读次数:
215
本篇文章demo地址动态加载是什么应用在运行的时候通过加载一些本地不存在的可执行文件实现一些特定的功能,Android中动态加载的核心思想是动态调用外部的Dex文件,极端的情况下,Android AP...
分类:
其他好文 时间:
2016-08-29 17:57:25
阅读次数:
274
热修复技术分为几部分: 原理介绍 Android HotFix源码分析 自定义框架 1.Android分包MultiDex原理 首先Dex是什么东西? Dex就是Window里面的exe文件 也就是可执行问题。 Android没有用传统的Java虚拟机,而是使用dalvik虚拟机。当APK安装到手机 ...
分类:
移动开发 时间:
2016-08-28 11:10:25
阅读次数:
372
Java文件 应用程序源文件 Android本身相当一部分都是用java编写而成(基本上架构图里头蓝色的部份都是用Java开发的),android的应用必须使用java来开发 Class文件 Java编译后的目标文件不像J2se,java编译成class就可以直接运行,android平台上class ...
分类:
移动开发 时间:
2016-08-26 12:05:46
阅读次数:
217