Android应用安装涉及到如下几个目录:
system/app系统自带的应用程序,无法删除。
data/app用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录。
data/data存放应用程序的数据。
data/dalvik-cache将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)。
APP安装过程:
1. 先把apk拷贝到/data/app下, 没错,就是完整的apk, 例如com.calendar.UI-2.apk
2. 解压apk,把其中的classes.dex 拷贝到/data/dalvik-cache, 其命名规则是 apk路径+classes.dex, 如: data@app@com.calendar.UI-2.apk@classes.dex, 其中@表示目录符号/
3. 在/data/data下创建对应的目录,用于存储程序的数据,例如cache, database等, 目录名称与包名相同, 如com.calendar.ui.
注: 安装过程并没有把资源文件, assets目录下文件拷贝出来,他们还在apk包里面呆着,所以,当应用要访问资源的时候,其实是从apk包里读取出来的。其过程 是, 首先加载apk里的resources.arsc(这个文件是存储资源Id与值的映射文件),根据资源id读取加载相应的资源。
system/app系统自带的应用程序,无法删除。
data/app用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录。
data/data存放应用程序的数据。
data/dalvik-cache将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)。
APP安装过程:
1. 先把apk拷贝到/data/app下, 没错,就是完整的apk, 例如com.calendar.UI-2.apk
2. 解压apk,把其中的classes.dex 拷贝到/data/dalvik-cache, 其命名规则是 apk路径+classes.dex, 如: data@app@com.calendar.UI-2.apk@classes.dex, 其中@表示目录符号/
3. 在/data/data下创建对应的目录,用于存储程序的数据,例如cache, database等, 目录名称与包名相同, 如com.calendar.ui.
注: 安装过程并没有把资源文件, assets目录下文件拷贝出来,他们还在apk包里面呆着,所以,当应用要访问资源的时候,其实是从apk包里读取出来的。其过程 是, 首先加载apk里的resources.arsc(这个文件是存储资源Id与值的映射文件),根据资源id读取加载相应的资源。
APP卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。
http://blog.csdn.net/droyon/article/details/41516375?utm_source=tuicool