最近在做解压缩相关项目,需要处理不同格式的文档,各个文件格式,解析器如何知道一个文件是什么格式,主要是文件二进制头(file signatures-文件签名)来决定的。
例如如何确定一个文件是apk(同zip等压缩文件)文件,需要解析其前四个字节“50
4B 03 04”来确定。
反编译apk文件中的dex文件,其前8个字节是固定的(“64
65 78 0A 3...
分类:
其他好文 时间:
2014-09-16 19:01:01
阅读次数:
564
1、早期的Dalvik VM内部使用short类型变量来标识方法的id,dex限制了程序的最大方法数是65535,如果超过最大限制,无法编译,把dex.force.jumbo=true添加到project.properties文件中可以通过编译,在低端手机无法安装,报错误INSTALL_FAILED...
分类:
移动开发 时间:
2014-09-16 15:42:00
阅读次数:
286
在将ADT和SDK Tool升级到最新(分别是21.1和16.0.1)之后,我的一个工程(相对比较大)在编译并运行的时候,出现错误,Eclipse控制台输出如下信息: Unable to execute dex: Cannot merge new index 67208 into a non-...
分类:
其他好文 时间:
2014-09-16 15:34:50
阅读次数:
170
1、 apk是android应用程序安装格式,.dex是Android二进制执行文件格式。2、Android操作系统是基于Linux的多用户操作系统,每一个应用程序都是使用的不同的用户。3、 默认情况下,一个应用程序一个userid,系统设定的,你不需要手动去设定, 针对这样的应用程序,该用户有权....
分类:
移动开发 时间:
2014-09-14 23:39:17
阅读次数:
241
今天打包时,发现2.3机器,产生的APK在某些机器上不能安装(Installation error:INSTALL_FAILED_DEXOPT),针对这个问题的一个可能解释是:最新的ADT和SDK Tool在将jar转化成dex的时候,可能会合并类的代码,这将导致巨大的类;类中的每一个方法都分配有一...
分类:
移动开发 时间:
2014-09-10 17:37:30
阅读次数:
161
一 赋值
int dex = 100;// 默认十进制
int oct = 0144;// 八进制,以0开始
int hex = 0x64;// 十六进制,以0x开始
二 输出
void show(int x)
{
printf("dec = %d; octal = %o; hex = %x\n",x,x,x);
printf("dec = %d; octal = %#o; ...
分类:
编程语言 时间:
2014-09-03 13:04:16
阅读次数:
210
1、所需要的工具1)apktool,功能:反编译出apk所需要的资源文件和布局设置文件等,下载地址:https://code.google.com/p/android-apktool/downloads/list需要下载apktool1.5.2.tar.bz2 和apktool-install-linux-r05-ibot.tar.bz2 这两个文件,并把解压后的文件放在同一个文件夹中。2)dex...
分类:
移动开发 时间:
2014-09-01 22:52:33
阅读次数:
364
当一个app的功能越来越复杂,代码量越来越多,也许有一天便会突然遇到下列现象: 1. 生成的apk在2.3以前的机器无法安装,提示INSTALL_FAILED_DEXOPT 2. 方法数量过多,编译时出错,提示: Conversion to Dalvik f...
分类:
移动开发 时间:
2014-09-01 10:56:43
阅读次数:
3999
Dalvik本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik...
分类:
其他好文 时间:
2014-08-30 23:05:40
阅读次数:
464