android软件汉化教程

 

一、  android软件安装包解析

android软件安装包为apk文件,apkandroid package的缩写。

apk文件实际是一个zip压缩包,可以通过解压工具解开。

下面我们以android手机通话录音软件record mycall的汉化做为例子讲解。

winrar解压apk文件:


apk中文件夹及文件说明如下:


META-INF文件夹:内含签名文件,保证apk包的完整性和系统的安全性;

res文件夹:内含资源文件,图片、图标等,通常有以下目录结构:drawable(图片所在文件夹)、drawable-hdpi(高分辨率图片所在文件夹)layout(界面布局XML文件所在目录)、layout-hdpi(高分辨率界面布局XML文档所在目录)menu(一些菜单文件所在目录)raw(存放帮助类文档或其他资源的文件夹,如help.html,clock.zip)xml(其它一些xml文件所在目录)等。

AndroidManifest.xml:程序的主要XML文件,描述了程序的名字、版本、权限、引用的库文件等信息。

classes.dex:程序的主要代码文件,是java源码编译后生成的java字节码文件。

resources.arsc:编译后的二进制资源文件,是主要的资源文件。

    汉化的主要文件有(依据汉化的秩序排列):resources.arsc*.xmlclasses.dex。下面依次讲解。

二、汉化resources.arsc

       如果用16进制代码工具汉化,非常的繁麻烦,且易出问题。为方便起见,此处使用“汉化狂人”这款软件。此软件的运行需要安装微软的framework NET2 2以上。

       运行“汉化狂人”,打开resources.arsc


       除了“res/”这个开头的不用汉化外,对于其它,就要根据软件中能看到的单词和语句进行汉化了。一般汉化到attr行往后的就不用汉化了。

       汉化完成后,保存替换原来压缩包中的arsc文件。

三、XML文件汉化

       依然使用“汉化狂人”软件来汉化。

       res目录中有许多的xml文件,根据文件名称,一般可以知道xml文件作用,再根据实际情况进行打开汉化。

四、classes.dex文件汉化

       通过对resources.arscxml文件进行汉化后,软件中剩余的有英文的地方,一般都在classes.dex文件中了。

       要对classes.dex进行汉化,首要要进行反编译,也就是解包。这里使用工具Xtemp,注意这个工具需要java虚拟机的支持。

       XP操作系统中,把classes.dex文件拷贝到c:/android/xtemp目录中,把classes.dex拖到undex.bat上就可以解包了,解包完成,在Xtemp目录下看到一个新生成的classes文件夹,这就是反编译后的解包的文件所存放的目录。

       

       打开classes文件夹的下级目录,有许多.smali后缀的文件,都是反编译后的文件,可用记事本打开。但要从如此多的smali文件中找到需要修改的内容,这里用notpad++文本编辑软件,它支持批量搜索文件夹内所有的文件内容。

       这里要注意的是,通过搜索出来的结果可能有许多地方,但要注意的是,只有“const-string”后面的才是需要汉化的内容。也可以通过搜索“const-string”来查找要汉化的内容,但要注意的是,const-string后面的不一定是要汉化的。

       汉化完成后,把classes文件夹拖到redex.bat上,在同目录下生成一个out.dex文件,将其重命名为classes.dex替换原文件即可。

       注意:如果在汉化的过程中,汉化了不该汉化的地方,打包进可能失败。

五、打包签名

       winrar打开原版的apk文件,把汉化后的arscxmldex文件按原目录结构替换到压缩包内,然后,删除META-INF文件夹内的CERT.RSACERT.SF两个文件。保存。

       将保存后的apk文件用APKSignauto-sign等软件进

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
最全的汉化软件教程首先,我们先别慌着开始汉化研究,因为汉化涉及许多电脑方面的基础知识,我们必须先来学习一下这戏基础。如果你对自己的电脑知识掌握程度有相当的把握那就跳过这一部分继续往下看,如果没有就一定要认真地看。 二进制(0 1):不管是电子计算机还是游戏机在存储数据的时候都是以二进制的方式进行储存的。因为电子电路能表示的就只有两种状态,要么通电要么断电(电子电路是与非门电路,准确来讲应该是高电位和低电位两种状态,这里为了简单化就认为成通电与断电)。而我们人类只习惯于十进制,所以要读懂二进制就先转化为十进制。又由于二进制的一位表示的数值太小,如果要表示一个比较大的数字的话这个二进制数字就相当的长,这样不便于人们辨识。所以从二进制里面派生出了八进制(0 1 2 3 4 5 6 7)和十六进制(0 1 2 3 4 5 6 7 8 9 A B C D E F),每三位二进制数可以转换为一位八进制,每四位二进制可以转换为一位十六进制。怎样互换这些不同的进制数值是个数学问题,高中文化都知道的方法,如果实在不懂的话可以使用任何一款科学计算器,Windows系统里面就带有。123D表示十进制,123H表示十六进制,末尾的D H这些字母标明数值的类型。 位bit与字节byte:我们常说的电脑是32位;PS是32位;GBA是32位,这里的32位指的是核心CPU寄存器的宽度,1位就是1个二进制位的宽度,32位就是32个二进制位的宽度,也是8位十六进制宽度,数值表示范围从00000000H-FFFFFFFFH。两位十六进制数为一个字节byte,数值范围00H-FFH;两个字节为一个字;两个字为一个双字。由此可得几个单位的转换关系:1GB(byte)=1024MB 1MB=1024B 1B(byte)=8b(bit)。MB和Mb是两个单位,任天堂的卡带容量都是以Mb为单位的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yb980

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值