C++学习(四一九)apk安装过程

Posted hankern

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++学习(四一九)apk安装过程相关的知识,希望对你有一定的参考价值。

Adroid的应用安装涉及到如下几个目录:

/data/app:存放用户安装的APK的目录,安装时,把APK拷贝于此。

/data/data:应用安装完成后,在/data/data目录下自动生成和APK包名(packagename)一样的文件夹,用于存放应用程序的数据。

/data/dalvik-cache:存放APK的odex文件,便于应用启动时直接执行。

具体安装过程如下:

首先,复制APK安装包到/data/app下,然后校验APK的签名是否正确,检查APK的结构是否正常,进而解压并且校验APK中的dex文件,确定dex文件没有被损坏后,再把dex优化成odex,使得应用程序启动时间加快,同时在/data/data目录下建立于APK包名相同的文件夹,如果APK中有lib库,系统会判断这些so库的名字,查看是否以lib开头,是否以.so结尾,再根据CPU的架构解压对应的so库到/data/data/packagename/lib下。

APK安装的时候会把DEX文件解压并且优化位odex,odex的格式如Figure 5图所示:

odex在原来的dex文件头添加了一些数据,在文件尾部添加了程序运行时需要的依赖库和辅助数据,使得程序运行速度更快。

以上是关于C++学习(四一九)apk安装过程的主要内容,如果未能解决你的问题,请参考以下文章

C++学习(四一七)AndroidStudio中的libs和jniLibs

Android APK安装过程学习笔记

C++学习(四二五)apk打包过程

Android开发学习——应用安装过程

C++学习(四三二)apk的四种安装方式

C++学习(四一五)android lint