对于Android DEX文件详细说明

  • 对于Android DEX文件进行优化,需要注意的一点是DEX文件的结构是紧凑的,但是我们还是要想方设法的进行提高程序的运行速度,我们就仍然需要对DEX文件进行进一步优化。

    调整所有字段的字节序(LITTLE_ENDIAN)和对齐结构中的没一个域 验证DEX文件中的所有类 对一些特定的类进行优化,对方法里的操作码进行优化 。优化后的文件大小会有所增加,应该是原Android DEX文件的1-4倍。 优化发生的时机有两个:对于预置应用,可以在系统编译后,生成优化文件,以ODEX结尾。

    这样在发布时除APK文件(不包含DEX)以外,还有一个相应的Android DEX文件;对于非预置应用,包含在APK文件里的DEX文件会在运行时被优化,优化后的文件将被保存在缓存中。

    每一个Android应用都运行在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统而实现的。

    所有Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制。
    不同的应用在不同的进程空间里运行,加之对不同来源的应用都使用不同的Linux用户来运行,可以最大程度的保护应用的安全和独立运行。

    Zygote是一个虚拟机进程,同时也是一个虚拟机实例的孵化器,每当系统要求执行一个 Android应用程序,Zygote就会FORK出一个子进程来执行该应用程序。这样做的好处显而易见:Zygote进程是在系统启动时产生的,它会完成虚拟机的初始化,库的加载,预置类库的加载和初始化等等操作,而在系统需要一个新的虚拟机实例时。

    Zygote通过复制自身,最快速的提供个系统。另外,对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域,大大节省了内存开销。Android应用开发和Dalvik虚拟机Android应用所使用的编程语言是Java语言,和Java SE一样,编译时使用Sun JDK将Java源程序编程成标准的Java字节码文件(.class文件)。

    而后通过工具软件DX把所有的字节码文件转成Android DEX文件(classes.dex)。最后使用Android打包工具(aapt)将DEX文件,资源文件以及AndroidManifest.xml文件(二进制格式)组合成一个应用程序包(APK)。应用程序包可以被发布到手机上运行。

     

===================================================================   本工具,直接在【鼠标右键】创建快捷菜单;   非常方便汉化工作者对APK或Dex文件的编译操作;   工具箱集合了,当今最强悍,最犀利的APK及Dex文件编译工具;   【注意:反编译文件名称 不能用中文,否则无法回编译。】 ___________________________________________________________________ 使用说明:   本工具执行安装后,直接在【鼠标右键】生成快捷键,自动关联APK、DEX、 Odex、Zip文件。只要在电脑任意非分区根目录,【鼠标右键】点击相关文件,即 可编译操作。如,反编译APK及DEX文件,反编译后生成可编译的同名文件夹, 汉化修改完成后,对文件夹点击【鼠标右键】根据文件夹反编译前的文件类型, 现在【回编译XXX文件】即可!   同时,针对apk和zip文件增加签名操作,只要【鼠标右键】点击,选择 【签名XX文件】即可!签名前无需删除原来的【META-INF】签名数据。本工具会 判别apk还是zip并自动删除签名数据。 ___________________________________________________________________ 常见问题:   1、被杀毒软件拦截误杀(安装前,关闭杀毒软件)   2、没有管理员权限(右键以管理员身份运行C:\Apkdb\安装.exe)   3、UAC限制 安装过程没有写入注册表提示,直接显示安装完成   (右键 我的电脑-管理-本地用户和组-用户-Administrator(√ 密码永不过期)   4、安装成功,安装过程有写入注册表提示,但是右键APK 没有菜单   (检查是不是安装了PC版的手机管理工具,关联了APK文件)   5、安装后无法编译文件,提示JAVA 错误   (未安装JAVA平台,或安装错误。请卸载后重启电脑,重装再次重启电脑)   6、安装成功后,编译文件提示 “Can't create the output directory \\****\smali”   (拜托,这是文件夹 没有写入权限。是不是在硬盘分区根目录编译了?    Apktool不能在磁盘分区,如C盘 D盘 根目录进行编译!    如果不是根目录,请检查apk文件名称是不是有问题,如文件名结尾空格。)   7、能反编译,但无法回编译   (可能是被旧版本的Apktool编译过,可以试试用旧版的反编译,在用新版的回编译)   8、其他小白问题,上QQ群提问,不要单独Q我,谢谢! ___________________________________________________________________ 更新特性: v.1.6.5 2011.12.07   1.更新,手动选择编译工具Apktool版本   2.保留,出错自动切换Apktool其他版本   3.更新,回编译无Dex 工具保留“smali”源码文件   4.更新,合并Odex到Apk 采用Baksmali1.3.0版并自动切换API等级   5.更新,Apktool v1.4.2为中文版   6.增强,兼容各类PC版APK安装器(无需删除APK关联)   7.其他微调整
《APK+Dex文件反编译及回编译工具》 简称:APKDB 是一款,针对Android OS系统的APK程序,直接反编译修改的工具。 APKDB集合了当今最强悍,最犀利的APK及Dex文件编译工具; 正常安装后,它直接在【鼠标右键】创建快捷菜单; 非常方便汉化工作者,对APK或Dex文件进行简易的反编译回编译操作 1.本工具必须先安装JAVA7; 2.如需显示APK自身图标必须先安装.NET Framework4 · 对*.Apk 文件 反编译 及 回编译 用于汉化修改 · 对*.Dex 文件 反编译 及 回编译 或查看详细源代码 · 对*.Apk 文件 批量反编译 及 回编译 · 对*.Apk、*.Zip 文件执行签名 · Windows下直示Apk件自身图标 v2.0.2 正式版 2016.06.05 *.更新,ShakaApktool v2.0.0(2016.06.01) *.更新,Apktool v2.1.1正式版(2016.05.07) *.更新,7-zip压缩工具版本到16.02 *.更新,smali、baksmali v2.1.2(2016.03.28) *.更新,ADB工具 (25.1 rc1版) *.更新,Zipalign优化工具 (23.0.3版) *.更新,合并Odex文件 *.更新,XML编辑器(提升速度,修复bug) *.更新,显示APK自身图标(Apkshellext v2.0.1.5780.2290) *.更新,刷机精灵APK安装器 *.新增,自定义默认签名,可用自己制作的签名包签名 *.新增,Keytool签名包制作工具,推荐使用JAVA8 *.新增,极限压缩优化APK内图片功能 *.新增,PNG图片优化工具OptiPNG v0.7.6 *.新增,设定默认Apktool版本(回车键直接执行) *.新增,ShakaApktool自定义操作 *.新增,选项,不反编译Resources、Classes文件 选择后(可同时使用),再选择使用Apktool工具。 *.新增,反编译jar文件时,自动识别是否含多个dex文件,并使用ShakaApktool反编译 *.新增,反编译JAR文件后,回编译时自动合并并转移到反编译目录内 右键[APK文件]、[RSA文件]、[original]目录、[META-INF]目录 可直接查看签名信息。 *.新增,创建[开始菜单-所有程序-APKDB]目录 *.新增,精简APK语言包功能(仅保留英文、简体中文、繁体中文) *.增强,对繁体系统的兼容 *.增强,右键菜单判别准确率 *.增强,重新调整右键菜单,强制关联所有文件 *.增強,针对不同系統的兼容性 *.修复,XP签名优化出错问题 *.修复,选项按键滞留问题 *.修复,文件名含空格优化失败问题 *.修复,签名遗留旧文件,删除框架文件… *.修复,卸载出错问题 *.修复,APK安装器不关联问题 *.修复,个别APK文件反编译时停顿问题 *.修复,修改AndroidManifest.xml回编译没变化问题 *.修复,各种小问题 *.优化,整体兼容性,增加选项状态提示 *.优化,界面调整 *.优化,安装过程 *.优化,对JAVA路径的判别 *.优化,对64位系统的支持 *.优化,执行脚本 *.优化,编译过程 *.优化,DEX文件夹的的判别 *.删减,旧版APKTOOL(2.0.0以下版本) *.其他,一些微调整
《APK+Dex文件反编译及回编译工具》 简称:APKDB 是一款,针对Android OS系统的APK程序,直接反编译修改的工具。 APKDB集合了当今最强悍,最犀利的APK及Dex文件编译工具; 正常安装后,它直接在【鼠标右键】创建快捷菜单; 非常方便汉化工作者,对APK或Dex文件进行简易的反编译回编译操作; ___________________________________________________________________ 功能特性 · 对*.Apk 文件 反编译 及 回编译 用于汉化修改 · 对*.Dex 文件 反编译 及 回编译 或查看详细源代码 · 对*.Apk 文件 批量反编译 及 回编译 · 对*.Apk、*.Zip 文件执行签名 · Windows下直示Apk件自身图标 声明 1.本工具必须先安装JAVA7; 2.如需显示APK自身图标必须先安装.NET Framework4。 ___________________________________________________________________________________________ 下载地址 百度云下载:http://idoog.cn/apkdb | http://pan.baidu.com/s/1eQoZtmE MEGA下载: http://idoog.me/apkdb 谷歌云端硬盘:http://goo.gl/IUzIlW 官方网站:http://www.idoog.me 嵌入式汉化教程:http://idoog.cn/apk_hh/ 或 http://idoog.me/apk_hh/ ____________________________________________________________________________________________ 使用说明: 本工具执行安装后,直接在【鼠标右键】生成快捷键,自动关联APK、DEX、 Odex、Zip文件。只要在电脑任意非C盘根目录,【鼠标右键】点击相关文件,即 可编译操作。如,反编译APK及DEX文件,反编译后生成可编译的同名文件夹, 汉化修改完成后,对文件夹点击【鼠标右键】根据文件夹反编译前的文件类型, 现在【回编译XXX文件】即可! 同时,针对apk和zip文件增加签名操作,只要【鼠标右键】点击,选择 【签名XX文件】即可!签名前无需删除原来的【META-INF】签名数据。本工具会 判别apk还是zip并自动删除签名数据。 ____________________________________________________________________________________________ 常见问题: 1、被杀毒软件拦截误杀(安装前,关闭杀毒软件) 2、没有管理员权限(右键以管理员身份运行C:\Apkdb\安装.exe) 或者,使用兼容模式 (右键-属性-兼容性-兼容模式[Windows XP SP3]) 以及 特权等级 勾选“以管理员身份运行此程序” 3、UAC限制 安装过程没有写入注册表提示,直接显示安装完成 (右键 我的电脑-管理-本地用户和组-用户-Administrator(√ 密码永不过期) 4、安装成功,安装过程有写入注册表提示,但是右键APK 没有菜单 (检查是不是安装了PC版的手机管理工具,关联了APK文件) 5、安装后无法编译文件,提示JAVA 错误 (未安装JAVA平台,或安装错误。请卸载后重启电脑,重装再次重启电脑) 6、安装成功后,编译文件提示 “Can’t create the output directory\\****\smali” (这是文件夹 没有写入权限。检查是否直接在硬盘分区根目录编译了? Apktool不能在磁盘分区。如:C盘 D盘 根目录! 如果不是根目录,请检查apk文件名称是不是有问题。如,文件名结尾空格。) 7、能反编译,但无法回编译 (可能是被旧版本的Apktool编译过,试试用旧版的反编译,用新版的回编译) 8、回编译出错问题: (1.提示 strings.xml 最后一行错误,检查是否符号错误; (2.提示 strings.xml 最顶部含中文代码首行错误,编码格式不对,转换成 UTF-8; (3.提示 public.xml 出错,检查改动过的 arrays.xml 是否代码有错误的地方; (4.其他错误,检查是否复制aapt.exe 文件到系统目录如:C:\Windows\System32\aapt.exe 9、安装过程提示 systeminfo 提示“不是内部或外部命令” 请在系统变量【path
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值