apk文件内容以及安装涉及目录

您所在的位置:网站首页 androidapp安装目录 apk文件内容以及安装涉及目录

apk文件内容以及安装涉及目录

2023-09-06 23:14| 来源: 网络整理| 查看: 265

转载请注明出处:http://blog.csdn.net/droyon/article/details/22429191

1、android  apk文件中包含哪些文件,各个文件作用是什么 2、apk安装涉及哪些目录,目录有何意义?

android应用程序是以apk格式的文件进行发布的,源代码文件、资源文件、AndroidManifetst.xml文件等会被压缩到apk文件中。apk文件和jar包一样,是一个zip文件,我们可以讲apk文件扩展名更改为zip,然后解压,了解一下各种文件在apk中的存在形式。

1、res目录:该目录包含了工程中res目录下除values以外的所有内容,一般包括各种layout文件,drawable,但layout文件内容是以二进制xml的方式进行保存的,而所有的drawable图像资源都是未经压缩过的原始文件。因为drawable中的jpg,png本身就是压缩文件。上文介绍了Resource文件getValue方法的调用示例,其中就是以layout为例。

2、classes.dex:该文件是真正的java class文件,dex文件时google发明的,这种格式的作用和java class文件相同。所不同的是,为了能够快速读取class文件并让class在解释时占用更少的内存,gogole对标准的class文件进行了重新的格式优化,这就是dex。想从dex文件看到源码,我们可以进行反编译。

3、resources.arsc:该文件同样是二进制格式的文件,aapt对资源进行编译时,会为每一个资源分配唯一的id值,程序在执行时会根据这些id值读取特定的资源,而resouces.arsc文件正式包含了所有的id值的数据集合。在该文件中,如果某个id对应的是string,那么该文件会直接包含该值,如果id对应的资源是某个layout或者drawable资源,那么该文件会存入对应资源的路径。这也跟我们在上一篇文章介绍的getValue方法流程一样。

apk文件安装涉及的目录:

/data/app:安装apk时,系统首先会把文件拷贝到该目录下,如果是系统程序,即出厂自带的程序,则android4.4版本之前位于/system/app,android 4.4版本之后位于/system/priv-app下。/data/dalvik-cache:每个apk都包含一个class.dex文件,系统在安装apk时,会把该apk中包含的class.dex解压出来放到该目录中,当用户启动该应用程序时,能够快速读取类文件,系统应用程序踪的class.dex文件同样也放到该目录下。该路径的文件命名方式为:“apk路径 + class.dex”,其中apk路径中的子目录符号使用@表示。例如:data@[email protected]@class.dex。user版本的apk文件可能会被进一步优化,变成odex类型文件。 任何程序都可以读写此目录,这就为其他应用程序访问其他apk应用程序文件提供了可能。比如:可以安装某个apk,该apk是插件程序,本身并不能运行,而仅仅是为其他应用程序提供一些实现类,然后在该目录下找到相应的dex文件,使用类动态加载器Dex  ClassLoader./data/data:每个应用程序都有自己的数据目录。目录名称为应用程序的包名,所有的数据目录都在该目录下。 在apk文件安装完毕,/data/app或者/system/app目录中的原始文件不会删除,当程序运行时,所需要的layout文件,drawable文件等需要从该目录中的原文件中进行读取。加载资源时,首先加载resource.asc,然后根据asc中的id值找到相应的资源。

关于加载的流程,请查看上一篇博文。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3