西西软件下载最安全的下载网站、值得信赖的软件下载站!

首页编程开发其它知识 → 安卓程序apk解包汉化教程:正规汉化和强制汉化

安卓程序apk解包汉化教程:正规汉化和强制汉化

相关软件相关文章发表评论 来源:西西整理时间:2013/1/19 0:06:57字体大小:A-A+

作者:西西点击:0次评论:0次标签: apk解包

  • 类型:文件处理大小:209KB语言:中文 评分:7.0
  • 标签:
立即下载

汉化资料到到是整理了不少,自己实践了一下,感觉做一些(除特别的外)基本汉化其实不难,今天跟大家分享一下个人整理收集的资料,有兴趣的朋友可以学习下。

APK文件简介:

APK是Android Package的缩写, 即Android application package文件 或Android安装包。
每个要安装 到Android平台的应用都要被编译打包为 一个单独的文件,扩展名为 .apk。APK文 件是用专业软件ecliPSe编译生成的文件 包,其中包含了应用的二进制代码、资 源、配置文件等。通过将APK文件直接传 到Android手机中执行即可安装。
APK文 件其实就是zip格式,但其扩展名被改 为apk,在Windows下用解压软 件winrar/WinZIP/7-Zip可以直接打 开。解压后,你会看到有几个文件和文件夹。

一个典型的APK文件通常有下列内容 组成:   

AndroidManifest.xml 程序全局配置 文件  

classes.dex Dalvik字节码

resources.arsc 编译后的二进制 资源文件

META-INF\ 该目录下存放的是 签名信息

res\ 该目录存放资源文件

assets\ 该目录可以存放一些 配置文件 下面对这些文件和目录做些基本的注释和 介绍:

AndroidManifest.xml 该文件是每个apk应用程序都必须包含的 文件,它描述了应用程序的名字、版本、 权限、引用的库文件等等信息。

classes.dex文件 classes.dex是java源码编译后生成 的java字节码文件。dex是Dalvik VM executes的全称,即Android Dalvik执行 程序。利用解析工具可以将其转换 成java来加以阅读和理解。

resources.arsc 编译后的二进制资源文件。在做主题美 化时要常与这个文件打交道。

META-INF目录 META-INF目录下存放的是签名信息, 有三个签名文件,用来保证apk包的完整 性和系统的安全。

eclipse编译生成一 个apk包时,会对所有要打包的文件做一 个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件 不能被随意替换。比如拿到一个apk包 后,如果想要替换里面的一幅图片,一段 代码, 或一段版权信息,想直接解压缩、 替换再重新打包,基本是不可能的。如此 一来就给病毒感染和恶意修改增加了难 度,有助于保护系统的安全。

res目录 res目录存放资源文件。包括图片,字符 串等等。res下有若干个子目录,主要 为drawable,layout,xml。 解包后,几乎所有可能的修改和编辑工作 基本都在这里。汉化ROM的主要工作就在 这里。汉化ROM实际上就是汉化所有 的apk应用程序的字符文件。

assets目录 assets目录可以存放一些配置文件,这 些文件的内容在程序运行过程中可以通过 相关的API获得。

下面以“设置”应用程序Settings.apk为 例。用winrar打开文件后,看到以上介 绍的六项内容。现在,即使你已经对文件 解压,你还是无法直接阅读每个文件的内 容。为了读出这些文件的内容,从而进行 进一步的修改和编辑,你就必须具有相应 的工具。

APK应用程序的解包和打包工具: 这一节主要介绍在Windows系统中常用 的几个工具包,用来对apk应用程序进行 解包、打包、反编译、解析 所有apk工具包都要求java

下面介绍一些收集的:
        dex2jar和XJad 该方法不是直接对apk文件进行解包。它是首先提取apk文件内的classes.dex文 件,然后使用dex2jar.jar工具包 将classes.dex解包成jar文件,再通 过XJad 或者其他class反编译工具进 行java反编译,最后生成java源文件。
        但是,使用这个工具包无法进 行classes.dex的还原(当然也无法进行apk的打包)。尽管如此,这个工具包 仍然很重要,因为它把classes.dex文件转 换成了可以更容易阅读的java源文件。在 修改apk应用程序时,必不可少,是一极 强的辅助工具。相比之下,apktool和apk manager反编译后得到的是Dalvik 反编译 码 (Dalvik opcodes),需要很专业的知 识来阅读,很不直观。如果你读懂 了java源文件,那修改相对应的Dalvik码 就容易多了…
      google Smali 有两个程 序:baksmali.jar和smali.jar。baksmali .jar用来反解析dex和odex文件,得 到Dalvik码。然后用smali.jar还原 成dex文件。例如,在修改状态栏时间显示颜色时,要用到的。
      AXMLPrinter2.jar对apk文件内的 AndroidManifest.xml和main.xml进行操作,将XML还原成文本文件,便于阅读。
      Apkdb 是一个集 成apktool,smali,Dex2jar,签名等功 能的工具。

这里讲apk汉化,首先说说apk
1 .apk解包后
2.在apk之下有两个文件夹 /res和/smali,还有两个文 件AndroidManifest.xml和apktool.yml 。用文本编辑器打 开AndroidManifest.xml看看,是不是在第一部分里介绍的内容。你要修改的内容 在/res文件夹内
3.打开/res文件夹,看到里面有5个子 夹,/drawable存放apk应用的图标 (Icon),drawable-hdpi(drawable-mdpi)存放其它要用的图形文件,(这些都可以美化替换,需要注意的是格式尺寸必须相同,否则会出错…),/layout是apk的布局文件,/values里是字符文件。汉化apk就是汉化/alues文件夹 内string.xml文件的内容

APK字符汉化 (英小白,谷歌翻译…)

用Notepad++打开string.xml

我们只需汉化
xxxxxxxxxx</string>
成中文就好了。其他地方还有慢慢找。

一般有两种汉化方法: 1.正规汉化, 2 .强制汉化。
这里说的是解包后的apk

1.正规汉化
        一个apk应用在汉化后应该能在英文和中 文系统下都能使用。/values目录下的是英文语言包。为了建一个中文语言包,与/values并行创建一个子文件夹:/values-zh-rCN(必须用这个文件名!)。这里values-zh是中国地区语言包(包含港 澳台及内地),values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。 把/values文件夹里的strings.xml等语言 文件复制进/values-zh-rCN。在一些软件中,只有strings.xml一个文件。 进入/values-zh-rCN,用文本编辑器打开strings.xml,然后你就翻译吧,把英文描述译成相应的中文。

例如,我们可以把上面的string.xml文件 译成: 静音启 动 开启 静音启动 关机 也是静音 关机 不是静音\n如果没有开启静音启动,关机 时播放开机音乐。 里面有个操作符“\n”是换行符,迫使换行 显示文本内容。之后存盘,用“另存 为”(Save As)存成UTF-8格式。这是保 持中文文本的格式。 在做汉化工作时,要对string.xml文件进行修改。有时也需要修改其它xml文件, 一个一个地认真查看,一个一个地汉化。

2.强制汉化  

        所谓“强制汉化”就是不产生/values-zh-rCN文件夹。而是在/values文件夹内把 需要汉化的文件都直接译成中文。显然, 如果在英文操作系统中没有中文字库的 话,强制汉化的apk在英文系统中可能显 示乱码。所以,建议养成良好习惯,采用“正规汉化”。

        以上的汉化是修改string.xml,把英文译成相应的中文就 好了,然后打包和签名。但是,在有些apk文件里,所显示的字符文字并不都在xml文件里。apk原作者把某些字符写 在代码中。反编译后,存放在/smali文件夹里。一层一层地找下去,最后你会看到 一大堆Dalvik码文件,都是以.smali为 文件扩展名。举一个例子,用文本编辑器 打开某个.smali文件,看到: const-string v5, “ServiceMode” “ServiceMode”会在apk执行时显示为英 文。因此,需要汉化。在ROM里, 用工程模式特殊代码看到的多半属于这一 类。汉译起来非常花时间。我们要 把ServiceMode译成“服务模式”。怎么处 理呢?你不能把const-string v5, “ServiceMode”直接改成const-string v5, “服务模式”。打包会失败的。正确的 做法是把相应的中文字符用16进制的unicode来表示。例如:把“服务模 式”用16进制的unicode表示就 是\u670d\u52a1\u6a21\u5f0f 。每一个 汉字用4个字符表示,\u表示为16进制 的unicode码。好了,正确的汉译是: const-string v5, “\u670d\u52a1\u6a21\u5f0f ”
        网上有中文字符与16进制unicode码的对照表或转换工具。

     Apk打包和签名打包操作很简单。 重新回编成apk,软件不同会有细微差别,回编后签名就行,有些程序是不能用签名的,所生成的新的apk应用程序、这就是汉化好的apk程序了。 现在你需要把文件改成你需要的名字。

    hosts修复软件
    (60)hosts修复软件
    文件是计算机中一个举足轻重的文件,该文件有一个比较大的特点就是没有扩展名。经常在一些电脑个性技巧以及其他领域方面会用到,西西提供文件修复工具软件下载大全。官方介绍是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的地址建立一个关联数据库,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从文件中寻找对应的地址,一旦找到系统会立即打开对应网页,如果没有找...更多>>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)
    推荐文章

    没有数据