安卓汉化软件游戏第一课:APK安装包文件结构
我们在搭载Android系统的手机上运行程序或玩游戏时都是需要安装一个应用程序,那么这个应用程序是什么和文件结构是怎样的呢?在学习安卓应用汉化之前,让我们带着这些疑问先了解下APK安装包的结构吧,这样可以让我们熟悉它每个目录的作用,也可以让我们为日后的汉化做好准备。好了,本节课程现在开始!
一、APK文件是什么和包含什么呢?
APK安装包全名称是Android application package,它包含了应用的二进制代码、资源、配置文件等。
每一个安装到Android系统上的应用程序都会被编译打包为一个单独的文件,后缀名为.apk。但APK文件其实就是Zip格式,因此我们可以用WinRAR或WinZip之类的压缩软件来打开。
对于汉化来说建议将apk这个扩展名关联到压缩软件,那双击APK文件时可以直接打开。方法如下:先打开WinRAR -> 选项 -> 设置,再切换到“综合”标签页,在“用户自定义压缩文件扩展名”下面输入apk,按确定即可,如下图:
当我们关联后就可以直接打开APK文件了,但关联后如何安装APK文件呢,其实您可以使用"右击 -> 打开方式"来进行安装。如果打开方式处未出现安装器的选项,您可以手动关联一次就会长期显示了。
二、APK文件的结构是如何呢?
打开APK文件后可看到它里面是树状的目录结构,而它每一个目录都是组成该APK文件的必要组件,但assets目录就并非每个APK文件都有的,具体要根据该APK文件要实现的功能而定。下面以BBE SonicMax Pro为例来讲解,如下图:
文件目录简介assets --------------------------------------------------------------- 额外资源
lib ------------------------------------------------------------------ 附加组件
META-INF ------------------------------------------------------------- 证书文件
-CERT.RSA -------------------------------------------------- 签名文件
-CERT.SF --------------------------------------------------- 签名文件
-MANIFEST.MF ----------------------------------------------- 签名文件
res ------------------------------------------------------------------ 资源文件
-drawable --------------------------------------------------- 图片资源
-drawable-hdpi ---------------------------------------------- 高分辨率图片
-drawable-ldpi ---------------------------------------------- 低分辨率图片
-drawable-mdpi ---------------------------------------------- 中分辨率图片
-drawable-xhdp ---------------------------------------------- 超高分辨率图片
-layout ----------------------------------------------------- 界面布局文件
-menu ------------------------------------------------------- 菜单布局文件
-xml -------------------------------------------------------- 其他布局文件
AndroidManifest.xml -------------------------------------------------- 全局配置文件
classes.dex ---------------------------------------------------------- 源码资源文件
resources.arsc ------------------------------------------------------- 二进制资源文件
文件目录概述
assets
该目录存放的是额外资源和配置文件,如txt或html说明文档、字体文件和图片资源等。而游戏APK安装包在此目录中就有可能需要汉化一些图片或文本。
lib
该目录般在armeabi子文件夹中存放一些so文件,例如libnative-audio-jni.so文件等。该目录没有需要汉化的内容,因此可以忽略它。
META-INF
该目录存放的就是签名后的证书,用于保护APK包的完整性和系统的安全。
res
该目录存放的是图片资源和界面的布局文件。drawable和drawable其他分辨率目录存放的是各种不同分辨率的图片资源。layout、menu、xml目录存放的是软件界面的布局文件,包括菜单、窗口、主界面和设置界面等。图标和背景美化可以从这里着手。
该文件记录了软件的版本号、所需要的权限、引用的库文件、类等信息。极少数情况下,某些软件的软件名称、个别设置选项等文字内容在该文件中。
classes.dex
该文件是Java源码编译后生成的Java字节码文件,有些软件的选项和说明内容的文字会在这个文件里,需要对其解包后进行汉化。
resources.arsc
该文件是经过编译后的资源文件,存储着各国语言,大部分需要汉的内容就在此。
三、其他注意事项
1、某些选项、标题或按钮等的英文有可能是调用图像资源的,因此在drawable和drawable其他分辨率目录里发现有该英文的图片时,就需要使用Photoshop之类的图片编辑软件来修改。
2、某些APK安装包的res目录里会有个raw文件夹,该目录通常存放的是说明文件,例如txt、html、hml等格式文件,这些文件可以用Notepad++或EditPlus的文本编辑器来修改,但不建议用系统自带的记事本。
3、任何对APK安装包作出的修改或替换图片资源的行为,都必须要先删除META-INF整个文件夹后重新签名,否则无法安装该应用程序。
四、最后结语
学习APK文件结构最主要的意义就是让我们判断哪些文件需要汉化,哪些可以忽略和熟悉要汉化的文件。但通常情况下需要汉化的文本都在resources.arsc和classes.dex文件里面,除了某些分散在xml布局和classes源码资源外,找出需要汉化的文本还是比较容易的。好了,学习汉化需动手,没有什么是难的,本节课程到此结束!