当前位置:文档之家› Android软件汉化精简去广告优化教程 & FAQ

Android软件汉化精简去广告优化教程 & FAQ

工具包含以下工具:

AndroidResEdit、apktool、baksmali+smali、Java_6 Update 31、Microsoft .NET Framework、Notepad++ Portable、signapk、WinRAR、zipalign、汉化狂人

准备工作:

下载上面的附件“Android汉化工具.zip”,解压。

1、安装Java环境(Java_6 Update 31.exe);

2、安装Microsoft .NET Framework(Microsoft .NET Framework_2.0.exe);

以上两个必须要安装,否则很多汉化工具会无法使用、各种报错(如汉化狂人、apktool、smali等),切记!!

在电脑上安装都很简单的,其它的就不过多阐述了。

APK包文件结构:

汉化前先了解下apk安装包的结构

apk安装包其实就是一个Zip压缩文件,所以可以用WinRAR、WinZip之类的压缩软件来打开,建议大家将apk这个扩展名关联到压缩软件,双击默认以WinRAR打开。

关联方法:

1、打开WinRAR——选项——设置,如图:

* z+ t6 B% {6 B

2、切换到设置窗口的“综合”标签,在“用户自定义压缩文件扩展名”下面填上apk,然后点确定。# e' m# s, K, N$ M! p7 J

0 k6 }. Q- _% A5 e9 Y( P

这里以固件管家(ROM Manager)的apk安装包为例讲解目录结构,如图:

这里以固件管家(ROM Manager)的APK安装包为例讲解目录结构,如图:

文件目录结构

assets

com

META-INF

-CERT.RSA

-CERT.SF

-MANIFEST.MF

res

-drawable

-drawable-hdpi

-drawable-ldpi

-drawable-mdpi

-drawable-xhdpi

-layout

-menu

-xml

AndroidManifest.xml

classes.dex

resources.arsc

*assets目录:通常存放的是一些附加文件,例如txt、html等说明文档、字体文件、附加图片等(游戏apk安装包有些差别。某些软件该目录下的一些文本文件需要汉化);

*com目录:通常也是存放一些附加组件,例如PayPal等(这个目录一般不会有要汉化的内容,不要管它);

*META-INF目录:里面存放的就是签名后的证书;

*res目录:存放的大部分是一些图片资源和界面的布局文件。drawable和drawable-**目录存放的是各种不同分辨率的图片资源。layout、menu、xml目录存放的是软件界面的布局文件,包括菜单、窗口、主界面和设置界面等。

*AndroidManifest.xml文件:记录了软件的版本号、所需要的权限、引用的库文件、类等信息。极少数情况下,某些软件的软件名称、个别设置选项等文字内容在该文件中。

*classes.dex文件:这是Java源码经过编译后的文件,有些软件的选项和说明内容的文字会在这个文件里,需要对其解包后进行汉化。

*resources.arsc文件:这个是经过编译后的资源文件,存储着各国语言,大部分需要汉的内容就在这里。

PS1:某些软件的选项按钮是通过调用图片实现的,图片上的文字就需要Photoshop之类的图片编辑软件来修改,这些图片资源一般都在drawable和drawable-**目录里。

PS2:某些软件apk安装包会有个res\raw目录,这里通常存放的是一些说明文件,如txt、html、hml等格式文件,这些文件里的文字内容用Notepad++ Portable(帖子附件里有)之类的文本编辑器就可以修改(Windows自带的记事本也可以,不过不推荐用这个)。

签名:

方法一:

1、下载帖子附件“Android汉化工具.zip”,解压。推荐将解压出来的“sign”文件夹复制到D 盘根目录(后面的教程统一以复制到D盘根目录为前提进行讲解)。

2、例如要签名的apk包名为“1.apk”。先将“1.apk”文件复制到d:\sign目录里。

下面有两个方式:

* 用鼠标将“1.apk”拖到“Sign.bat”批处理文件上面自动签名,签好的文件会保存在同一个目录里(“1.apk.apk”文件)。

* 另外,也可以手动在CMD命令行窗口中输入命令来签名:

1、打开命令行窗口,进入d:\sign目录:

开始菜单——运行,输入cmd,在弹出的CMD窗口中输入

d: 回车

cs sign 回车

如图:

; L8 L' a, F% r7 h

再输入:. g. H0 y8 }" p8 f' W/ K5 z# q% G, z

java -jar signapk.jar testkey.x509.pem testkey.pk8 1.apk 1-signed.apk 如图:

签完名输出的文件“1-signed.apk”传到手机或者用同步软件即可安装。

方法二

* 用这个方式签名最为简单,傻瓜式操作。

1、下载附件“Android 汉化工具.zip”,解压。打开解压出来的AndroidResEdit(系统需要安装

NET Framework,没安装的机友请自行百度搜索下载安装)。

2、如图,打开工具栏中的“签名”,即可在签名窗口中选择文件进行签名,操作很简单。

注:签名之前最好像将META-INF目录下的证书文件全部删除,以免重新签名后可能出现不能安装的问题。

准备工作和基本须知讲完了,下面开始讲如何使用apktool嵌入汉化。

APKTOOL嵌入汉化:

之所以把apktool放到前面来讲,主要还是因为用apktool来汉化会更加快而直观。用AndroidResEdit或汉化狂人的方法放到后面讲,算是做一个补充,现在已经很少人用了。

apktool汉化的优点已经众所周知,可以精简语言、汉化更彻底、反编译后可以调整布局文件、相比直接修改resources.arsc文件的方法,用apktool修改出的apk出问题的几率会更少。

网上已经有很多apktool的衍生工具,有的甚至集成了签名、反编译、编译、优化等各种一键功能。不过个人不推荐初次接触汉化的人用这些工具。每一步都自己动手,即使中间某些环节出现了问题,也更加好找原因。

这里给出apktool的主页:https://www.doczj.com/doc/3b12400829.html,/p/android-apktool,想要长期做汉化的机友可以经常留意下,及时更新版本。

开始汉化前,请先安装Java环境。必须要安装,apktool、汉化狂人、AndroidResEdit、

baksmali都需要Java环境,否则不能使用,切记!

安装文件在帖子开头的工具包里有。

下面回归正题,开始讲解apktool汉化。

一、嵌入中文

以汉化多键开关(SwitchPro)为例。用apktool嵌入汉化其实很简单,就三个步骤:反编译——翻译+修改——重新打包(其中翻译这一步就是要嵌入中文的翻译)。

* 下载附件“Android汉化工具.zip”,解压。把apktool文件夹复制到D盘根目录。

* 将需要反编译的apk包复制到apktool文件夹里(D:\apktool),将其重命名为1.apk (名称随自己定,1.apk只是为了方便讲解)。

* 开始菜单——运行,输入cmd,打开CMD命令行窗口。

* 在CMD命令行窗口中用cd命令进入d:\apktool

如图:

进入D:\apktool后再输入命令

apktool d 1.apk 1

如图:

注释:d是反编译命令“decode”。中间的1.apk不解释了,你们懂。最后的“1”是反编译后的文件的存储目录,即D:\apktool\1

* 进入D:\apktool\1\res目录,如下图:

各个目录的作用在帖子开头已经解释过,这里不重复了。语言文件strings.xml就在values文件夹里(某些软件还会有attrs.xml、plurals.xml这两个语言文件)。attrs.xml 里一般是一些选项的文字内容,例如打开一个设置选项后,弹出一个列表供你选择,列表中的选项的文字就在attrs.xml里,其余的文字内容基本都在strings.xml里。

若要嵌入简体中文的话,我们要在D:\apktool\1\res这个目录新建一个文件夹“values-zh-rCN”,看文件夹后缀就知道,zh-rCN表示中国内地。要嵌入繁体中文的话,要在D:\apktool\1\res这个目录新建一个文件夹“values-zh-rTW”。

然后再将上面讲到的values文件夹里的语言文件复制到values-zh-rCN和values-zh-rTW里,将里面的英文翻译成简体中文和繁体中文就可以了。

因为现在要汉化的SwitchPro只有strings.xml文件,所以我们需要将strings.xml分别复制到values-zh-rCN和values-zh-rTW里就行了,如图:

* 到这一步,就可以开始翻译了,打开附件“Android汉化工具.zip”中的Notepad++Portable,用Notepad++Portable打开D:\apktool\1\res\values-zh-rCN和D:\apktool\1\res \values-zh-rTW中的

strings.xml文件,如图:

间就行了,如图:

* 翻译完成后,在刚刚的CMD窗口中输入下面的命令重新编译打包:

apktool b 1

注释:这里的b是编译打包命令build,1是要编译打包的目录,即D:\apktool\1

如图:

重新编译打包后的apk包存储在D:\apktool\1\dist里,将apk包签名后就可以安装使用,签名方法帖子开头已经讲过,这里不重复了。

二、汉化未在values文件夹内的语言文件中出现的文字内容

通常某些软件会有少量的文字在其它位置,单单汉化values内的语言文件是不够的。我们可以在汉完values内的语言文件后,先重新编译打包回去,签名,传到手机上安装,然后打开软件,查找有哪些内容未汉化。

通常这些内容都会出现在layout文件夹里的布局文件、xml文件夹里的布局文件和AndroidManifest.xml文件里,我们使用Notepad++Portable来搜索即可。

例如SwitchPro有“Restore”不在values文件夹里的语言文件里,而在其它位置。

打开Notepad++Portable,同时按下Shift+Ctrl+F键调出搜索窗口,输入搜索内容“Restore”将搜索路径定位到D:\apktool\1\res,然后点“全部查找”,如图:

搜索完成后,下方会显示搜索到的文件,双击一下就可以打开该文件。如上图所示,将红色方框中的“Restore”改成中文“还原”即可。

其它的文字同理,可以边在手机上使用软件,找出未汉化的文字,再使用Notepad++Portable将其搜索出来,然后汉化。

另外,少部分软件的软件名称、少量设置标题等文字内容会在D:\apktool\1目录下的AndroidManifest.xml文件里,用Notepad++Portable打开AndroidManifest.xml 文件,将这些未汉化的文字改成中文即可。

三、精简语言

精简语言很简单,有些软件自带了多国语言,如下图:

只需要将图中红色框框部分删除即可。其中自带“values-**-land”是对应手机横屏模式下的布局配置,可以删除。但是若是values-land、values-hdip之类的文件夹就不能删除,这些是对应分辨率的,删除后软件会报错甚至强制关闭。

删除多余的语言后,再重新编译打包、签名即可。方法上面已经讲到,这里不重复了。

将所有内容汉化并精简后,就可以重新编译打包回去,然后签名安装。重新编译打包和签名方法上面已经讲过,这里不再重复。

不过,不是所有软件都可以只用apktool来完全汉化,有部分文字还在classes.dex 文件里,下面会讲到classes.dex文件的汉化方法。

classes.dex文件汉化

除了xml文件里的文字要汉化外,有些软件的文字会在classes.dex里,就是在源码里。这是我们要先将classes.dex解包,之后才能汉化里面的文字内容。

步骤如下:

* 提取apk包里的classes.dex文件,如下图,用鼠标将其拖出来即可。

目录,如图:

(注:smali这个工具也会有更新,附上主页:https://www.doczj.com/doc/3b12400829.html,/p/smali,给有需要的人更新。)

* 将刚刚提取出来的classes.dex文件复制到baksmali+smali文件夹里(D:\baksmali+smali)。

* 打开CMD窗口,先进入D:\baksmali+smali目录,然后输入命令java -jar baksmali-1.3.2.jar classes.dex -o classes

如下图:

注释:其中classes.dex是要解包的文件名,classes是解包后的文件存储目录(D:\baksmali+smali\calsses)。

* 例如SwitchPro有一句“Start time must be less than the End time.”在xml语言文件和布局文件中搜索不到,那么就有可能在Classes.dex文件中。解包在Classes.dex 文件后,我们打开Notepad++Portable,同时按下Shift+Ctrl+F键调出搜索窗口,输入搜索内容“Start time must be less than the End time.”,将搜索路径定位到D:\baksmali+smali\calsses,点击“全部查找”,搜索完成后,下方会出现搜索到含有该段文字的文件,双击即可打开该文件。将“Start time must be less than the End time.”改成中文“起始时间必须要早于结束时间。”后,点击左上角的“保存”按钮保存文件。

如图:

* 通过搜索将所有classes.dex文件中未汉化的文字汉完后,就可以将其重新打包了。在刚刚的CMD窗口中输入命令java -jar smali-1.3.2.jar classes

如图:

相关主题
文本预览
相关文档 最新文档