分享

APK安装包文件结构

 Izwei 2014-04-27
 APK安装包文件结构

我们在搭载Android系统的手机上运行程序或玩游戏时都是需要安装一个应用程序,那么这个应用程序是什么和文件结构是怎样的呢?在学习安卓应用汉化之前,让我们带着这些疑问先了解下APK安装包的结构吧,这样可以让我们熟悉它每个目录的作用,也可以让我们为日后的汉化做好准备。好了,本节课程现在开始!

一、APK文件是什么和包含什么呢?


APK安装包全名称是Android application package,它包含了应用的二进制代码、资源、配置文件等。

每一个安装到Android系统上的应用程序都会被编译打包为一个单独的文件,后缀名为.apk。但APK文件其实就是Zip格式,因此我们可以用WinRAR或WinZip之类的压缩软件来打开。

对于汉化来说建议将apk这个扩展名关联到压缩软件,那双击APK文件时可以直接打开。方法如下:先打开WinRAR -> 选项 -> 设置,再切换到“综合”标签页,在“用户自定义压缩文件扩展名”下面输入apk,按确定即可,如下图:



当我们关联后就可以直接打开APK文件了,一般来说,关联后,apk文件会直接以压缩文件的形式展示出来,当然所还是apk的样式,你可以使用"右击 -> 打开方式"来进行安装。选择压缩文件选项



二、APK文件的结构是如何呢?

打开APK文件后可看到它里面是树状的目录结构,而它每一个目录都是组成该APK文件的必要组件,但assets目录就并非每个APK文件都有的,具体要根据该APK文件要实现的功能而定。下面以爱奇艺为例来讲解,如下图:




文件目录简介
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源码资源外,找出需要汉化的文本还是比较容易的。所以经过了解结构,我们可以知道我们在汉化apk文件的时候知道我们目标修改的文件即可!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多