从Android2.2开始,(即基本上现有的机型都适用),应用程序可以选择安装到外部存储器(ApplicationInfo.FLAG_EXTERNAL_STORAGE)比如SD卡上,而不安装到内部存储器
Android APK的常见安装位置有如下三个:/system/app、/sdcard/app、/data/app。
一、/system/app
该目录主要包括系统集成时自带的应用程序,默认群组root:root,权限755, 只有root权限者才可删除。
以上目录权限只是某个品牌手机的默认权限,当然实际定制时均可以在init.rc中改掉。
二、/data/app
主要包括用户自安装应用程序、更新、缓存等,默认群组system:system,权限771,用户常规权限可以卸载,如果在recovery中执行wipe命令会自动清理该目录下apk,此外,应用程序的数据库会默认存储在/data/data/PackageName/下,包括下面的系统应用程序数据库也默认在此。
三、/data/dalvik-cache
/data/dalvik-cache目录用于存储.apk中的dex文件,.dex文件是dalvik虚拟机的可执行文件,大小约为原始apk文件大小的四分之一。
实际安装过程如下:
- 复制APK安装包到data/app目录下
- 解压并扫描检查apk,验签,把dex文件(Dalvik字节码)保存到dalvik-cache目录
- 在data/data目录下创建对应的应用数据目录。
卸载过程则相反,删除上述创建的文件即可。
四、/sdcard/app
该目录完整路径为/mnt/sdcard/app,默认群组root:root,权限777,用于存储用户任何资料,包括作为程序的安装目录。