.apk软件汉化知识储备
.apk文件实际是一个zip压缩包,可以通过解压缩工具解开.apk文件。
META-INF目录下存放的是签名信息
res目录是存放资源文件的
不同的软件,res目录下的文件夹也不同,一般有:
drawable(图片所在文件夹)
drawable-hdpi(高分辨率图片所在文件夹)
layout(界面布局xml文件所在文件夹)
layout-hdpi(高分辨率界面布局xml文档所在文件夹)
menu(一些菜单文件所在目录)
raw(存放帮助类文档或其他资源的文件夹,如help.html;clock.zip)
xml(其他一些xml文件所在目录)
通常需要汉化的是resources.arsc AndroidManifest.xml classes.dex三个文件
resources.arsc是编译后的二进制资源文件,是主要的资源文件,汉化时首先要看这个文件,最先汉化的也是这个文件!
AndroidManifest.xml是主XML文件,是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等等信息,这里面基本是没有要汉化的,但是极个别软件的软件名,或是个别单词会存在于这个主XML中!
classes.dex是java源码编译后生成的java字节码文件,就是整个软件的代码文件。
如果当你汉化软件时,arsc和xml文件你都汉化了,但是软件中还有没汉到的,那就肯定在dex文件中了。
开始汉化
1.通过解压缩工具(winrar,好压等)打开.apk文件
2.resources.arsc文件的汉化
打开AndroidResEdit1.5,将resources.arsc拽进AndroidResEdit
下面,可以直接在“替换资源”栏输入对应的中文进行汉化
然后 保存文件,替换原有的resources.arsc文件,AndroidResEdit支持字典导入和导出。
3.重新压缩,签名,查找遗漏的单词
将文件重新压缩,如图,全选文件,点鼠标右键,压缩为.zip文件,这一步注意不是压缩整个文件夹,而是压缩这几个文件。
这时,要把文件中原有的签名删掉,用winrar或好压等软件还要打开.zip,签名文件在META-INF文件夹下,进入目录,将CERT.RSA和CERT.SF这两个文件删掉。
把.zip文件扩展名改为.apk,用AndroidResEdit进行签名(“签名”,选择文件,“立即签名”)
将.apk文件安装在手机或模拟器上,运行软件,查看没有汉化到的单词
4.解压.apk文件,汉化.xml文件,包括Res文件夹里的.xml文件,再次进行压缩、签名、查漏
.xml文件汉化和resources.arsc文件汉化方法一样,也是用AndroidResEdit
完成resources.arsc文件和***.xml文件的汉化后,看看还有没有单词和语句漏汉,若有的话,且在resources.arsc文件和***.xml文件中找不到,那么这些单词和语句基本就在classes.dex文件里,此时需要对classes.dex进行汉化。
5.class.dex文件汉化
classes.dex是java源码编译后生成的java字节码文件,就是整个软件的代码文件。要对DEX文件进行汉化,就需要用Xtemp先对dex进行反编译,也就是解包dex文件。
把classes.dex文件放到Xtemp目录下
把classes.dex拖拽到dex.bat上,按“1”,就会自动解包了,等出现如图内容时,就说明解包成功。
上述是在windows7系统下的操作,xp用户的操作略有不同,xp用户请在C盘根目录下创建一个android目录,将xp版本的dex解包工具Xtemp文件夹放到android目录下,如下图。
解包完成,就会在Xtemp目录下看到一个新生成的classes文件夹,打开classes文件夹的下级目录,我们会看到很多.smali后缀的文件,这些以.smali为后缀的文件就是反编译后的文件了,也就是我们要汉化修改的文件。由于文件很多,查看很不方便,这时就要用到NotePad++了,NotePad++可以在众多文件中查找特定字符。
首先打开Notepad++(若软件打开后为英文,打开Settings——Preferences,在general–Loclization处选择中文即可),然后选择上方菜单栏中的“搜索”,选择“在文件中查找”,设置好查找目录为classes文件夹,查找目标为用const-string或没有汉化到的单词,点击“全部查找”。
双击搜索结果中的黄颜色区域,即可跳转至该单词、语句的字段,进行修改(不要动双引号)。
修改之后点“格式”->以UTF-8编码,“格式”->以ANSI编码(这一步是为了防止汉化出现乱码问题)
完成后保存,注意const-string后面的不一定是要汉化的,最好对照之前遗漏的单词
将classes文件夹拖到dex.bat上,然后按2,开始打包,生成一个新的out.dex文件,只需重命名为classes.dex替换原文件即可。
XP下的用户在打包dex时,请将classes文件夹拖拽到redex.bat上,会自动在同目录下产生一个out.dex文件,只需重命名为classes.dex替换原文件即可。
6.再次进行第2步,进行文件压缩和签名,完成汉化
汉化工具下载 AndroidResEdit下载