下面继续讲解apk文件反编译前后的对比和其中文件所代表的意义,就以一款比较简单的应用 “SD卡清除工具”作为本次教程的教学软件。(附件里面就是该软件,英文的)

A.让我们先来看看反编译前的文件构成吧。如图:

B.接着来说反编译的实际操作,然后再看反编译后的文件

在 汉化课程一中 中下载了提供的工具后【APK反编译及编译工具v141】,最好新建一个文件夹(命名为apktool),然后把apktool工具放置在该文件夹中,并把需要反编译的APK也就是通知栏快捷开关NotificationToggle也放置在apktool文件夹中并重命名为123.apk,然后点击apktool.v1.4.1并按照上面的提示进行操作就可以完成apk的反编译、编译(回编译)、签名等操作。

因为工具中的操作介绍已经很详细了,所以就不做过多的解释了。如果出现下图的界面则说明你已经反编译成功了:

C.接下来我们来看看反编译后的文件和原文件的差别:

通过反编译前后的文件进行对比可以发现其文件的变化。

D.接下来我们就对这些文件的作用作一个大体的认识吧:


其中META-INF 和 res这两个文件夹,还有AndroidManifest.xml,classes.dex和resources.arsc这3个文件,它们是每个软件都有的,也就是必须的!assets有的软件有,有的没有,主要存放的是一些资源文件,一般的程序里面没有,游戏里居多。有的软件还有些其他的文件等。

META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全
res目录是存放资源文件的,不同的软件,res目录下的文件夹也不同,一般也就是
drawable(图片所在文件夹)
drawable-hdpi(高分辨率图片所在文件夹)
layout(界面布局xml文件所在文件夹)
layout-hdpi(高分辨率界面布局xml文档所在文件夹,这个本程序中没有,不过很多程序中有)
menu(一些菜单文件所在目录,本程序中没有,但很多程序中有)
raw(存放帮助类文档或其他资源的文件夹,如help.html;clock.zip,本程序中没有)
xml(其他一些xml文件所在目录)

而对于本教程的【SD卡清除工具】实例而言就只有andmin、drawable、drawable-hdpi、layout、menu、values、xml这几个文件。
drawable这个文件夹一般都是存放软件中的图片。有的软件要修改图片的,就要来这里找!一般一些小型的游戏可以在这个文件夹中找到需要修改的图片。
其他几个文件夹存放的都是些XML文件了,这里面也会有要汉化的地方。
AndroidManifest.xml是主XML文件,是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等等信息,这里面基本是没有要汉化的,但是极个别软件的软件名,或是个别单词会存在于这个主XML中!
classes.dex是java源码编译后生成的java字节码文件,通俗点就是整个软件的源代码文件。
APKTOOL汉化的主要是(下图)

----------------------------------------
注意:反编译软件(apktool版本很多)本教程就是以APK反编译及编译工具v141为例的。