前言:
现在随处都可以找到功能强大的汉化工具,操作简单,上手快,汉化不再是件麻烦事。
想学汉化的朋友只要你用心,你也可以自己汉出优秀的作品,因为汉化根本没啥技术含量,要的只是持之以恒。
不要再羡慕别人会汉软件有多么多么牛X了,只要你有些不差的英语功底,有着热爱汉化、分享资源的热情,你也能成为“汉化达人”,一切皆有可能!

教程分三个部分:
第一部是强制汉化教程,是Android软件比较早的汉化方法,方法是用汉化工具在原语言(英文、或软件原带的其它语言)的基础上将单词和语句强制修改成中文。
第二部是APKTool汉化、精简教程,方法是用APKTool工具将软件反编译解包,直接用文本编辑工具修改语言包、精简语言包或自行添加中文语言包。
第三部分是去广告教程。

汉化工具(帖子已提供附件):
AndroidResEdit(arsc/xml汉化、签名工具)
汉化狂人(arsc/xml汉化工具)
Notepad++ Portable(dex汉化、文本编辑工具)
APKTool(反编译/编译工具)
smali/ baksmali(dex解包/打包工具)
WinRAR(apk安装包打包/解包工具)

* 基础知识:
1、apk安装包的文件结构
以知名桌面软件“LauncherPro”为例,apk安装包文件目录如下图:

文件目录如下:
- META-INF
- res
  - anim
  - color
  - drawable
  - drawable-hdpi
  - drawable-land
  - drawable-land-hdpi
  - drawable-mdpi
  - drawable-port
  - drawable-port-hdpi
  - layout
  - layout-land
  - layout-port
  - xml
- AndroidManifest.xml
- classes.dex
- resources.arsc

- 多数情况都要汉化的是resources.arsc、classes.dex和res文件夹里的***.xml文件。
- META-INF文件夹里面存放的是证书文件,软件修改后需要将里面的证书文件删除(***.RSA、***.SF、***.MF三个文件),否则软件无法安装。
- res文件夹里存放的大部分是软件所需的资源及布局文件(drawable存放资源、layout、xml存放布局文件***.xml),部分需要汉化的单词、语句会在这些***.xml文件里。
- AndroidManifest.xml文件里包含了软件名称、版本、权限、引用的库文件等信息。极少数软件在这个文件里会有单词、语句需要汉化。
- classes.dex文件是Java源码编译后的代码文件。通常该文件里都有单词、语句需要汉化。
- resources.arsc文件是编译后的资源文件,大多数情况下,需要汉化的单词、语句绝大多数都在这个文件里,汉化的时候首先就要看这个文件。

* 另外,一些需要汉化的***.png图片文件、***.html文件、***.txt文件可能会在assets文件夹或res/raw文件夹内。图片文件需要用Photoshop修改,html、txt文件可以直接用Notepad++ Portable文本编辑工具修改(不建议用系统自带的记事本,这东西杀伤无数….)。

2、打包/解包
apk安装包其实就是zip格式的压缩包,只是文件扩展名改成了apk而已,所以可以直接用解/压缩软件WinRAR打开,若你的系统没有关联apk文件,请先安装WinRAR,打开WinRAR——选项——设置——综合,在“用户自定义压缩文件扩展名”处填上apk,点“确定”保存即可。之后就可以直接双击用WinRAR打开apk安装包文件。
汉化软件的时候,不需要把整个apk安装包解包,对于需要汉化的文件,如resources.arsc、classes.dex等文件,直接用鼠标拖出来,汉完后再拖进apk安装包后重新签名就行了(签名问题下面会讲到)。

3、签名
Android的软件也需要签名,不过和Symbian相比,却要简单方便得多,首先是不需要自己去申请证书,下载个签名工具就可以签名了。另外,我们从电子市场、软件官网下载来的软件都是已经签好名的,可以直接安装,这里讲到的签名,是针对软件安装包被修改过的情况(如汉化需要修改安装包内的文件,原来的签名文件就不能用了,所以要重新签名软件才能正常安装。),正常情况下不需要签名。
现在Android可用的签名工具很多,想方便点的话可以用汉化浪子出品的AndroidResEdit,这个软件自带签名包(工具在帖子附件有提供)。

签名方法很简单,删除原签名文件后(META-INF 文件夹内的***.RSA、***.SF、***.MF三个文件),打开AndroidResEdit——签名——签名apk文件,选择需要签名的apk安装包后点击“立即签名”即可。

一、强制汉化

- 上面已经讲过,强制汉化是Android软件比较早的汉化方法(方法和Symbian软件汉化方法类似,熟悉Symbian软件汉化的朋友对这方法可以直接上手。),主要是用汉化工具在原语言(英文、或软件原带的其它语言)的基础上将单词和语句强制修改成中文。
好处是操作方便,通俗易懂,上手快,汉化速度比较快,比较适合刚接触汉化的人。缺点就是汉化的文字长度受字节限制,中文文字字符量不能超过原文的字符量(对翻译用词的准确性有一定影响),强制汉成中文后有可能造成软件运行不稳定(不过这种情况也比较少,但偶尔会出现)。

- 通常需要汉化的文件有resources.arsc、classes.dex、***.xml这三种类型的文件,其它类型的文件稍后单独列出来讲解。

1、下面以知名桌面软件“LauncherPro”为例,讲解resources.arsc的汉化过程:
① 用WinRAR打开LauncherPro的apk安装包,将resources.arsc文件拖出来,用汉化狂人打开。

注:resources.arsc用汉化狂人、AndroidResEdit都可以汉化(两者均为汉化浪子出品),不过狂人有搜索功能,支持保存字典,比起AndroidResEdit来要方便很多,建议用汉化狂人汉化。另外,汉化狂人在完成汉化,保存好文件后,再次修改文件时字符量会限制为当前的中文字符量,例如把Sava这个单词汉化成了“保存”,把resources.arsc文件保存后,想要将“保存”修改为“另存为”是不行的,这时字符量已经限制为了2个字符。这是就可以用AndroidResEdit来修改,不过字符量限制仍然为原英文单词Save的4个字符限制。

② 打开resources.arsc文件后,可以通过搜索栏搜索要汉化的单词、语句。双击要汉化的单词、语句即可在弹出的对话框中填写中文,完成后点击“OK”即可。
如图:

*
需要注意的事项:

-
有路径的不需要汉,如图:

- 类似单词间没有空格、单词间有_等没有实际语义的不用汉,如图:

* 类似不用汉的部分很容易就能辨认出来,这个需要积累一段时间,对软件的节点有一定的了解后,会很自然地就能判断出来。

③ 将所有需要汉化的单词、语句汉化完成后,点击文件——保存汉化文件即可,如图:

* 对于经常更新的软件,为了节省每次汉化的时间,在第一汉化后,我们可以利用汉化狂人保存字典,打开汉化——字典汉化——导出字典,如图:

等软件更新后,再汉化时,直接打开汉化——字典汉化——导入字典,导入之前保存的字典即可,汉化狂人会自动帮你汉化,若软件有更新新的选项,新的单词、语句则需要自己动手查找,总体来说节省了相当多的时间。

-
完成resources.arsc的汉化并保存后,可以先把resources.arsc放一边了,下面进行***.xml文件汉化。

2、***.xml文件汉化
- ***.xml文件汉化其实和resources.arsc文件汉化方法一样,这里不做过多阐述,详见上面的resources.arsc文件汉化过程讲解。下面说明一些要注意的地方。

Tips:
① ***.xml文件基本都在res目录里
- res
- anim
- color
- drawable
- drawable-hdpi
- drawable-land
- drawable-land-hdpi
- drawable-mdpi
- drawable-port
- drawable-port-hdpi
- layout
- layout-land
- layout-port
- xm
为了方便汉化,可以把res整个文件夹从apk安装包中拖出来,再逐个打开res文件夹里的***.xml文件,查找需要汉化的单词,语句。

② 大多数情况下,需要汉化的单词、语句都在res\layout以及res\xml目录中的***.xml文件里。

③ 完成汉化保存***.xml文件后,将整个res文件夹拖回apk安装包中即可。

3、classes.dex文件汉化
* 完成resources.arsc文件和***.xml文件的汉化后,可以先将这些文件拖回apk安装包中,签名,传到手机安装,看看还有没有单词和语句漏汉,若有的话,且在resources.arsc文件和***.xml文件中找不到,那么这些单词和语句基本就在classes.dex文件里,此时需要对classes.dex进行汉化。

- 汉化classes.dex文件,首先需要将classes.dex文件解包,这时需要用到解包工smali/ baksmali(帖子附件有提供),下载解包工具附件,解压,里面分别有WinXP和Win7对应的版本,按自己使用的系统选择。解压后,将Xtemp文件夹复制到D盘根目录。

- 准备好解包工具后,将classes.dex文件从apk安装包里拖出来,放到刚刚的Xtemp文件夹内,若是WinXP用户,用鼠标将classes.dex文件拖到undex.bat文件上,会弹出CMD命令窗口自动解包classes.dex文件,完成会提醒按任一健关闭窗口;若是Win7用户,双击dex.bat文件,按提示操作即可。解包成功后,Xtemp文件夹内会多出classes文件夹。

- 要对解包出的classes文件夹里的文件进行汉化的话,需要用到文本编辑工具Notepad++ Portable(帖子附件有提供),下载附件,解压,运行Notepad++ Portable
文件夹内的Notepad++ Portable.exe,打开Notepad++ Portable.exe程序。(若软件打开后为英文,打开——Settings——Preferences,在Loclization处选择中文即可。)

* 下面开始讲解classes.dex文件的汉化:
① 先确定需要汉化的单词,以LauncherPro为例,软件中有“Please wait ...”在classes.dex文件中。在Notepad++ Portable中按Ctrl+Shift+F键调出文件查找窗口,在“查找目标”处输入要搜索的“Please wait ...”,将“目录”定位至Xtemp文件夹的classes目录(就是刚刚解包出来的classes文件夹),点击“全部查找”,如图:

搜索结果:

② 双击搜索结果中的黄颜色区域,即可跳转至该单词、语句的字段,进行修改,如图:

修改完成后,点击“保存”图标保存,如图:

* 以此类推,所有需要汉化的单词、语句都可以通过“文件查找”搜索到。汉化完成并保存后,就可以重新打包classes.dex文件了。

③ 重新打包classes.dex文件。若是WinXP用户,右键Xtemp文件夹内的redex.bat文件,选择打开,之后会弹出CMD命令窗口自动重新打包,如图:

完成后按任意键退出窗口即可,此时Xtemp文件夹内多出了out.dex文件,这是重新打包后的classes.dex文件,将其文件名重命名为classes.dex,再拖进apk安装内,签名后就可以安装了。

Tips:
- 若对软件的汉化熟悉后,用“文件查找”搜索要汉的单词、语句时,可以直接输入“const-string”,因为基本上这些单词、语句都在const-string后面,如图:

- 对于刚刚接触汉化的人,dex汉化这部分最好先在汉完arsc和xml文件后,把软件装上去查找没有汉完的单词、语句,然后再到dex里查找汉化,软件上没有的单词,就不要多汉,不然出问题了很难查找,dex重新打包后,那些中文是搜不出来的,所以很难修改。切记,宁可少汉,也不要多汉,即使少汉了,日后还可以补汉上去。
* 传统的汉化方法大致就这样,难度并不大。万事都是熟能生巧。

4、其它文件类型汉化
- 除了resources.arsc、***.xml、classes.dex这三中常见的文件类型需要汉化外,有些软件还有另外一些文件需要汉化,例如txt、html、png等文件。

* 下面对这类文件的汉化作下讲解:
① txt汉化,txt之类的文本文件可以直接用Notepad++ Portable打开,难度不大,将里面的内容修改成中文包保存即可。这类文件大部分用作显示关于信息、帮助信息等,所以基本上都是一些整句句子。另外,若保存后在手机上这些内容显示乱码的话,可以尝试将文件格式更改为UTF-8格式(在Notepad++ Portable中打开 格式——转为UTF-8编码格式)。

②html文件也和txt类似,可以用Notepad++ Portable汉化,完成后保存即可,需要注意的格式问题也和txt一样。另外要注意的是这类文件里面有代码,熟悉汉化后对这些代码自会有相应的了解,例如<p style="color:red" align="center">,表示这段代码后的文字内容以红色、居中显示。

③ png图片文件通常都是用Photoshop来修改的,部分软件是通过调用图片来达到显示选项的目的,而单词又在图片上,所以需要通Photoshop将图片上的单词修改成中文,保存后再拖回apk安装包中替换原文件即可。这个只需要Photoshop上的一些最基本的操作,难度并不大,就不作过多阐述了。

二、APKTool汉化

- 自从有了APKTool后,Android的软件汉化就迎来了一次革命。
通过APKTool,不仅可以对软件进行汉化,还是精简软件语言、去除广告(后面会讲到)。相较于传统的强制汉化方式更加有灵活性。

* APKTool汉化有点如下:
- 反编译软件安装包,直接修改语言包或添加语言包,大大减少汉化后软件问题的几率。
- 可精简无用的语言
- 可用来去除广告

1、下面讲解下APKTool汉化的基本知识

* 解包/打包
- 先下载APKtool工具包(帖子附件有提供),解压,将APKTool v1.3.2文件放至D盘根目录。
- 将需要反编译的apk安装包放至APKTool v1.3.2文件夹内(以LauncherPro为例,文件名为LauncherPro.apk)
- 打开CMD命令行窗口(开始——运行,输入cmd,确认),如图:

- 在命令窗口中输入命令,定位至APKTool v1.3.2文件夹,如图:


- 输入命令反编译apk安装包,如图(红色方框部分为反编译命令):

* 命令说明:apktool d LauncherPro.apk launcher
- apktool d为反编译命令,其中d代表decode
- LauncherPro.apk为被反编译的apk安装包的文件名(可以自己定义)
- launcherpro为存放反编译后的文件的文件夹(可以自己定义)

2、下面开始讲解APKTool的汉化方法:

① 添加、汉化语言包
- 反编译完成后,进入launcherpro文件夹(在D:\APKTool v1.3.2路径下)
多数情况我们只需要修改launcherpro\res内的文件

- 在res文件夹中,我们可以看到有很多values-***的文件夹,这就是语言包。

- values是英文语言包,values-zh中国地区语言包(包含港澳台及内地),values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。除此以外,其它地区的语言包都是精简的对象,可以不过多了解。

- 在values文件夹里,通常有arrays.xml、strings.xml等语言文件,要汉化这些文件,可以用Notepad++ Portable打开,如图:

- 我们只需要将>*********</string>间的*********内容改成中文就行了。

* 若要汉的软件没有中文语言包,可以自己在res目录下新建values-zh-rCN和values-zh-rTW文件夹,再把values文件夹内的原arrays.xml、strings.xml语言文件复制到values-zh-rCN和values-zh-rTW文件夹,然偶将语言文件内的单词、语句修改成中文即可。

② 汉化解析
- 了解清楚语言包的问题后,大家也就会明白,APKTool的操作步骤其实也很简单,反编译——修改或添加语言包——重新打包而已,但费时的就是在修改、添加语言包这一块,比传统的汉化方法要更费时间,但所带来的好处传统的方法无法与其相比。

- 另外,除了res文件夹内有语言包需要汉化外,在res文件夹内的layout和xml文件夹内也会有文件需要汉化,同样是用Notepad++ Portable打开,这些文件里面都是代码语句,需要通过搜索找到需要汉化的单词来汉化,所以这里建议大家先把原版的软件装上去,再对照单词,边搜索,边汉化。

③ 重新编译打包
- 用Notepad++ Portable修改、添加好语言包后,就可以重新编译打包了。
- 方法如图下:
在刚才的命令窗口输入如下命令,如图:

* 命令说明:apktool b launcherpro
- apktool b为重新编译命令
- launcherpro为需要编译的目录,存放反编译后的文件的文件夹(可以自定义)

- 重新编译完成后,launcherpro文件夹内会新增一个dist文件,里面的LauncherPro.apk就是重新编译好的apk安装包,签名后即可安装。
* APKTool的汉化流程大致就这样,还是那句话,熟能生巧,多多练习。下面是其它说明。

3、其它
- 精简语言,这个很简单,只需要将res目录内非values、values-zh-rCN、values-zh-rTW的其它values-***语言包文件夹删除即可。

4、注意事项
- 部分情况下,在精简语言后,重新编译打包时,命令窗口会提示public******错误,这是由于values语言包文件夹下的public.xml文件给非values、values-zh-rCN、values-zh-rTW的其它values-***语言包文件里的语言文件定义了字段,但这些语言包都被精简了,定义不了,所以会出错。解决方法有两个:
* 一是按照命令窗口中的提示(有提示public.xml文件的具体哪一行的值没有定义),到相应的语言包里找到那行未定义的代码,复制到values-zh-rCN、values-zh-rTW语言包文件夹内的strings.xml语言文件中。

* 二是按照命令窗口中的提示(有提示public.xml文件的具体哪一行的值没有定义),直接到values语言包文件夹下的public.xml文件中删除没有定义的那几行代码。

三、去广告

-
先了解下软件的广告原理

一个软件若要显示广告,需要先导入SDK,并在AndroidManifest.xml中注册。
Res\layout内的xml文件就包含有广告界面的配置代码,修改这些代码就可以去除广告界面。
另外还要屏蔽广告下载源,不然只是单单不显示广告而已,软件还会下载广告所需的数据,耗费流量。
目前Android的广告供应商有两个,一个是Admob,一个是Google Ads,前者已被后者收购,但两者SDK依然独立。

-
广告代码
Admob的广告代码为:

<com.admob.android.ads.AdView
android:id=”@+id/ad”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content” />

Google Ads的广告代码为:
<com.google.ads.GoogleAdView
android:id=”@+id/adview”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />

-
广告下载源
Admob的广告下载源:

http://r.admob.com/ad_source.php
http://mm.admob.com
http://api.admob.com

Google Ads的广告下载源:
http://pagead2.googlesyndication.com/pagead/afma_load_ads.js

*
去广告步骤:
1、去除广告下载源

- 解包classes.dex(方法上面已讲过),用Notepad++ Portable搜索广告下载源地址(若不知道软件用的是哪个供应商的广告的话,最好两家的下载源都搜索下),如图:

-
搜索结果如下:

- 将广告下载源地址修改成无效的地址(例如0.0.0.0、192.168.1.1等),如图:

- 完成后保存,重新打包classes.dex,拖回apk安装包替换原文件。

2、去除广告界面
① 将替换了去除过广告下载源地址的classes.dex的apk安装包用APKTool反编译。

② 用Notepad++ Portable搜索广告代码(上面已列出)
- 如图,将搜索路径定位到res文件夹(解释反编译后的res文件夹),代码只搜索开头就行了,如:com.admob.android.ads.AdView 和 com.google.ads.GoogleAdView。
如图:

- 搜索结果:

③ 双击黄颜色区域,修改下图上方的段代码

android:layout_width="fill_parent"
修改为
android:layout_width="0.0dip"
android:layout_height="wrap_content"
修改为
android:layout_height="0.0dip"

修改后:


将所有搜索到的代码按照上面修改,完成后保存,用APKTool重新编译打包,签名,安装即可。

* 再作下解释:
android:layout_width="fill_parent"
修改为
android:layout_width="0.0dip"
android:layout_height="wrap_content"
修改为
android:layout_height="0.0dip"
之所以这么修改,是因为要让广告窗口不显示,android:layout_width定义的是广告窗口的宽度,android:layout_height定义的是广告窗口的高度,0.0dip代表0像素,将两者后面的值修改为0.0dip,那么高和宽都是显示0像素,等于不显示,达到了去广告窗口界面的目的。

[转自安智论坛]Android软件汉化教程(强制汉化/Apktool汉化/精简/去广告)相关推荐

  1. 安卓android手机垂直门户,安卓手机门户 安智论坛正式更名智友

    随着智能手机普及,安卓智能手机的市场用户争夺战进入白热化阶段.作为国内用户群体规模最大的应用商店之一,安智重新整合旗下资源,将备受安卓手机用户喜爱的安智论坛正式更名为智友,并推出相应的独立站点和App ...

  2. Android游戏开发Android软件开发【教程三十篇】

    Android软件开发之发送短信与系统短信库解析(三十)  New Android软件开发之获取通讯录联系人信息(二十九)  New Android软件开发之PreferenceActivity中的组 ...

  3. Android逆向工具xposed和mt管理器进行应用脱壳和去广告

    1.下载安卓模拟器,使用网易木木模拟器,官网下载就行,然后打开root和应用兼容性,否则无法使用xposed . 下载之后模拟器版本为 2.下载xposed,官网 https://repo.xpose ...

  4. 【XDA汉化组编写】Android软件汉化/精简/去广告/优化教程 FAQ

    * 引用.转载请注明出处:XDA智能手机论坛-bbs.xda.cn-iKira! http://bbs.xda.cn/thread-10968699-1-1.html * 汉化其实不难,难的是持之以恒 ...

  5. 【特殊软件】ES文件浏览器特殊版v4.2.6.1 去广告高级版

    软件介绍: 让手机管理变简单,一个能管理安卓/iOS设备本地.局域网共享.远程FTP.蓝牙设备和云存储的系统工具类移动软件,非常好用. 本地文件管理-看文件.找文件 云端文件管理-支持多网盘登录 多端 ...

  6. android去广告软件下载,Android文本编辑器(QuickEdit)V1.1.4 精简去广告版

    Android文本编辑器(QuickEdit)是Android上的高效,稳定和全功能的文本编辑器.QuickEdit文本编辑器包含了大量性能和用户体验方面的优化,它的速度和输入反馈更加优越.你可以使用 ...

  7. ansys workbench汉化教程_FC魔法阵咕噜咕噜汉化版下载-街机魔法阵咕噜咕噜完美汉化版下载...

    游戏介绍 魔法阵咕噜咕噜汉化版在原版的基础上做了汉化修改,方便玩家理解.这部魔法阵咕噜咕噜汉化版游戏中融合了丰富的魔法元素.战斗元素等,趣味性很强.快来下载这款魔法阵咕噜咕噜汉化版游戏体验一下吧! 魔 ...

  8. 汉化教程: ps3闪之轨迹破解和汉化例程

    转载自:http://tieba.baidu.com/p/2768824631?pn=1 1.闪之轨迹的下载 下载完解压后,你会在闪轨的游戏文件里发现一个名为"data.psarc" ...

  9. 软件:文档下载神器之冰点文库下载器去广告纯净版

    一款网络平台分享文档的下载工具.用户使用冰点文库无需积分就可以自由下载百度.mbalib.豆丁.畅享.max.book118文档,无需注册和登录.并且通过冰点文库下载的文档可以根据用户要求,最终生成高 ...

最新文章

  1. 系列文章--jQuery教程
  2. 从浏览器地址栏输入url到显示页面的步骤
  3. C语言中.和->区别
  4. 用数学运算实现数据无损压缩的算法
  5. 配置EditPlus
  6. spring发送邮件
  7. 【css练习】斑马线表格,美人尖,断线下划线
  8. 为了探究不同光照处理_昭通2020名师助考? 丨掌握控制变量法轻松搞定中考物理实验探究题...
  9. [转] - 浅谈数据分析和数据建模
  10. 常用电子元件识别图解大全
  11. 中文近义词工具包,Synonyms 发布新版本 v3.16,支持词汇表扩大至 40w+
  12. 安卓kali安装mysql_超详细安卓手机安装kali教程(root篇)
  13. html、input隐藏内容占空间与隐藏内容不占空间
  14. 入秋的第一篇数据结构算法:看看归并与快排的风采
  15. Ajax中的 “success” 与 “error ”回调函数何时调用 ?
  16. python-json校验-jsonpath
  17. tl431 输出接104 振荡
  18. 基于规则的分形图形生成方法
  19. 酷狗免费下载歌曲(网易云同样适用)
  20. 在网络安全领域,比较牛的中国黑客有哪些?

热门文章

  1. webpack与grunt/glub 的比较
  2. 3000字带你真正掌握CSS盒子模型
  3. 通过url下载文件保存到指定的不存在目录下
  4. 深受程序员鄙视的外行语录,看看你被哪句打击过
  5. 【牛腩】删除类别失败
  6. 经纬财富:自贡现货白银投资优点
  7. c++三种实例化对象方式
  8. Linux安装、使用Sleuth kit/Autopsy(分析磁盘映像和恢复文件的开源取证工具)
  9. leetcode_贪心算法
  10. Android横竖屏切换小结