Android中实现了英文apk应用的简单汉化,效果类似这样:
说一下具体步骤:
首先利用解压工具解压apk文件,解压后的目录结构如下:
然后利用smali工具对classes.dex进行反编译和编译,同时修改英文“help ”为“帮助”。smali下载地址http://code.google.com/p/smali/downloads/list,将红框中的四个文件下载到本地,并且放到同一个文件夹中。
反编译classes.dex:
ubuntu@ubuntu-desktop:~/fanxiang/hanhua$ ./baksmali com.braveo.langaid.apk_FILES/classes.dex
这样会在当前目录下生成out文件夹:
out文件夹中包含的是以smali结尾的文件,如图:
我这里打开的是LangAidView.smali文件,修改:
const-string v1, "help"为 const-string v1, "帮助"
然后在通过下面的命令编译out文件夹:
ubuntu@ubuntu-desktop:~/fanxiang/hanhua$ ./smali out
用生成的out.dex替换解压文件中的clesses.dex。同时META-INF文件夹下只保留MANIFEST.MF,其他文件全部删除。
然后利用zip工具将解压的文件夹打成zip包,修改文件后缀名为apk。
最后给apk文件签名。步骤如下:
ubuntu@ubuntu-desktop:~/fanxiang/hanhua$ keytool -genkey -alias my.keystore -keyalg RSA -validity 20000 -keystore my.keystore
输入密码等信息,最后回车如下图:
这样就生成了签名文件my.keystore。利用下面的命令给apk签名:
ubuntu@ubuntu-desktop:~/fanxiang/hanhua/com.braveo.langaid.apk_FILES$ jarsigner -verbose -keystore my.keystore -signedjar wendy_signed.apk com.braveo.langaid.apk_FILES.apk my.keystore
命令中wendy_signed.apk 表示最终要生成的签名apk,com.braveo.langaid.apk_FILES.apk 表示需要签名的apk。输入密码,签名成功截图如下:
到此wendy_signed.apk就可以直接安装到手机使用。