Android手机软件汉化教程---第四课dex文件汉化

Android手机软件汉化教程---第四课 dex文件汉化
2011-04-22 10:57
Android手机软件汉化教程

第四课 dex文件汉化

前面我们已经汉化好了arsc和xml文件,这一讲,我们就要开始学习最麻烦的dex文件汉化了。其实dex的汉化并不是难,主要是要仔细!一不小心汉到了不该汉的,就可能导致dex文件打包失败,或是软件无法使用!
首先,要对DEX文件进行汉化,就需要先对dex进行反编译,也就是解包dex文件。
把需要反编译的classes.dex文件放到Xtemp目录下,如图

然后按住classes.dex拖拽到dex.bat上,按“1”,就会自动解包了,等出现如图内容时,就说明解包成功。

上述是在windows7系统下的操作,xp用户的操作略有不同,xp用户请在C盘根目录下创建一个android目录,将xp版本的dex解包工具Xtemp文件夹放到android目录下,如下图,

然后将classes.dex拖到undex.bat上就可以解包了。
解包完成,就会在Xtemp目录下看到一个新生成的classes文件夹,这个就是反编译后解包的文件所存放的目录。

打开classes文件夹的下级目录,我们会看到很多.smali后缀的文件,这些以.smali为后缀的文件就是反编译后的文件了,也就是我们要汉化修改的文件。
很多人要郁闷了,打开文件夹一看,好多.smali文件啊,几十个,其实这都是少的,有的大软件,都有上百个.smali文件,那就更郁闷了!

.smali文件其实就是文本文件,用普通的记事本就能打开,但是自带的记事本软件来编辑这么多文件,肯定是不行的,累都累死了,所以我们来使用强悍的Notepad++文本编辑软件!
Notepad++支持批量搜索文件夹内所有的文件内容,不需要一个文件一个文件的去搜索,大大降低了工作量!
我们用Notepad++打开一个.smali文件,都是程序代码,看着都晕,这哪个是要汉的呢?
对于懂点编程的人就不会太难了,可以根据文件名和代码去找,那对于不懂编程的怎么办呢,其实也很简单的。

我们之前说了,android软件的汉化最好是按顺序来,先汉化arsc文件,然后来汉化xml文件,最后才是dex文件,当我们汉化好arsc和xml后,先将软件打包,然后安装上,这时软件中没有汉化到的还显示英文的地方一般就在dex文件中了!
通过我们前面的汉化,我们会发现,在汉化了arsc和xml后,还有些地方是英文的,例如下面两图中的Setting,Help,Info和Available Memory:,这4个地方都还是英文,下拉通知栏,里面也还有一些英文,这些没汉到的地方,就基本上就在dex文件里了!


现在我们就开始来找到并汉化这些漏网之鱼吧!
首先打开Notepad++,然后选择上方菜单栏中的“搜索”,选择“在文件中查找”,

然后点击“目录”后面的小按钮,找到classes目录,并选择它!

然后在“查找目标”后面的输入框中输入你要查找的单词,如这里我们要查找Setting,就输入它,然后点击右边的“全部查找”,稍等一会,就会为你搜索到全部文件中的Setting。


这时,我们会看到很多地方包含Setting,哪个是要汉化的呢?其实很简单,我们只需看一个关键词,那就是“const-string ”,我们只汉化“const-string ”后面的,也就是说,我们只修改const-string vX “XXX” 中两个“”双引号中间的XXX部分,其他不要动!
双击下面搜索到的“const-string ”后的Setting,然后就会在上面跳转到该项,我们就可对其进行修改

后面的就依照这个办法,看看哪个没汉的就搜哪个,虽然有点麻烦,但是不容易出错,对于新手还是比较适合的。如果你日后熟练了,也可以直接搜索const-string来查找要汉的,要汉化的内容肯定是跟在const-string后的,但是要注意,const-string后面的不一定是要汉化的!这里有点饶舌,看看下面截图就明白了。

这搜索到的都是些不需要汉的,类似这样的还有很多,虽然都是跟在const-string后面的,但是要汉化的其实不是很多,不过这个也是要根据不同软件来看。具体的排除技巧,和汉化arsc还有xml时提到的注意事项一样!那些小技巧很多也都适用于dex的汉化排除。

我们一直往下找,在后面是不是看到了要汉化的地方,很明显,图中的这四个红框处就是软件中没汉到的地方,按我们汉第一个设置的的办法,把其他都搞定吧。
这里其实有个小窍门,就是大家在汉化dex时,会发现很多要汉化的地方都是连在一起的,中间间隔不会很远,比如,软件设置中的一些要汉化的地方在一个文件中,而且都还在一起,有联系的。这个就要通过不断的汉化来积累经验了!
好了,把没汉到的地方都搜索到,并汉化了,保存好后,就可以打包dex了。
打包dex时,只需将classes文件夹拖到dex.bat上,然后按2,就开始打包了

当出现命令行中的提示时,说明打包成功,并在xtemp文件夹下生成一个新的out.dex文件,只需重命名为classes.dex替换原文件即可。
Xp下的用户在打包dex时,请将classes文件夹拖拽到redex.bat上,出现如下界面时说明打包成功,并会在同目录下创建一个out.dex文件,只需重命名为classes.dex替换原文件即可。

这里注意,如果你汉化dex时有汉错或是把不该汉的地方汉化了的情况时,就有可能打包失败,或是在使用软件时出现错误!
dex的汉化内容就是这些,汉化是个细心的活,大家要多练习,多积累经验,当你汉化的软件多了,很轻松就会知道哪些需要汉,哪些不要汉,对于你了解软件的结构,也有一定帮助!

更多相关文章
  • 内容简介1.第二部分第四课:文件操纵,鼓掌之中2.第二部分第五课预告:用户和权限文件操纵,鼓掌之中既然上一课我们学习了Linux中的文件组织方式,那么现在就该是玩弄,啊不,是操纵它们的时候了.文件操作有哪些呢?一般就是显示文件内容啦,还有拷贝文件,移动文件,删除文件,等等.这一课我们还会学习链接的知 ...
  • 本节课将介绍如何使用C#控制语句中的循环语句,本课目的如下:1.学会"while"循环的用法.2.学会"do" 循环的用法.3.学会"for" 循环的用法.4.学会foreach循环的用法.5.进一步了解"break"语 ...
  • 1序言: 前面一节课讲解了Makefile的基础知识包括原理.预定义以及命令格式,这样是可以完成一个自动编译的文件,这些知识可以帮你完成.想想mak真是强大啊,可能有些同志发现了如果项目文件太多每个目标文件都要写指令有没有其它的简化来加快开发速度,提高项目的可维护性,答案当然是有的,这就是接下来的要 ...
  • 本节课将介绍如何使用C#选择控制语句,第三课将达到如下几个目的:1.学会"if"语句的用法.2.学会"switch"语句的用法.3.学会在"switch"语句中如何使用"break"语句.4.理解"goto&q ...
  • 本节课向你介绍C#的方法,其目的是:1.了解方法的结构格式2.了解静态和实例方法之间的区别3.学会实例对象的使用4.学会如何调用实例化的对象5.学会方法的四种参数类型的使用6.学会使用"this"引用以往,对于每个程序来说,所有的工作都在Main()方法中实现.这对于功能简单的程 ...
  • 拥有Qloud Media就可拥有专属您个人的随身多媒体剧院!只需在PC端的Qloud伺服器设定分享影片.音乐及图片,就可以在你的手机上随时随地享受影音多媒体欢乐! 您不再需要拷贝档案或者是进行转档,所有的工作都会经由PC 端的伺服器软体自动处理. 你如果家里电脑上有很多电影,但是又想在自己的and ...
  • Android是 Google 推出的目前国际流行的新锐智能手机平台,正在吸引越来越多的用户和开发者加入其阵营.本文精选了国内 Android 用户装机必备的十大应用(自然是以具备在线云同步功能的为主),希望为各位安卓的新玩家提供实用参考.1.聊天必备--QQ手机 QQ Android 版是腾讯公司 ...
  • android手机QQ尾巴修改QQforPad
    android手机QQ尾巴修改(QQ for Pad)在QQ聊天时我们有时会看到手机QQ聊天发消息时后面会跟着一个尾巴如:来自HTC手机QQ: http://mobile.qq.com ,让很多人羡慕嫉妒不已,下面我也写个教程吧,老规矩还是以我的HTC S710D为例.1.运行环境:先下载安装jav ...
一周排行
  • 一. 简介 在本文中,我们将探讨ASP.NET 2.0的会员.角色和配置问题.ASP.NET中的会员系统提供了一个可编程API用于创建和管理用户账户,而其中的角色部分使开发者能够定义一组角色并把用户与角色相关联.典型 ...
  • Excel2010数据透视表应用
    Excel中的公式.函数非常强大,可以帮助我们完成很多数据整理工作.但自从Excel200 ...
  • shell编程中,当使用if语句时,总是涉及到条件的判断.下面来讨论下条件判断的各种情况.1. 条件为语句例如:当目录下有sam开头的文件时,输出hi,it's here.if ls sam* &> / ...
  • 算法是个什么玩意儿-希尔排序
           我想希尔排序 应该算 插入排序的一个优化.把一个数组按规则分割成若干个子序列 ...
  • rhel7.0nmcli网络管理
    网络配置一.查看ip地址  [[email protected]_lyb 桌面]# ip addr sho ...
  • 本文汇总了DB2常用的几个命令,适用于unix和windows,供参考.  创建实例db2inst2unix:使用root登录,指定实例用户为db2inst2,设置 TCP/IP端口为50001db2icrt -u ...
  •     1.Linux是一个多用户的操作系统.每个用户登录系统后,都会有一个专用的运行环境.通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义.用户可以对自己的运行环境进行定制,其方法就是修改 ...
  • C#.NET大型企业信息化系统集成快速开发平台4.2版本-所有的基础数据都可以恢复删除
    客户的需求如下: 所有基礎信息需要記錄創建人,創建時間,更改人,更改時間,刪除人,刪除時間 ...
  • 这里先大致介绍一下Hadoop. 先说一下Hadoop的来龙去脉.谈到Hadoop就不得不提到Lucene和Nutch.首先,Lucene并不是一个应用程序,而是提供了一个纯Java的高性能全文索引引擎工具包,它可以 ...
  • 说明此数据库中不存在查找的mosic表,检查连接的数据库是否正确.