从Android2.2开始,应用程序可以不安装到内部存储器而选择安装到外部存储器(ApplicationInfo.FLAG_EXTERNAL_STORAGE)去,比如SD卡上,所以,从Android APK的常见安装位置有如下三个:/sdcard/app、/data/app、/system/app。
我们排除应用程序的Manifest.xml自我描述权限问题,我们只关注这些目录的权限约定和存储内容区别,比较结果如下。
一、/sdcard/app
该目录完整路径为/mnt/sdcard/app,默认群组root:root,权限777,用于存储用户任何资料,包括作为程序的安装目录。
二、/data/app
主要包括用户自安装应用程序(这里存放apk文件)、更新、缓存等,默认群组system:system,权限771,用户常规权限可以卸载,如果在recovery中执行wipe命令会自动清理该目录下apk,此外,应用程序的数据库会默认存储在/data/data/PackageName/下,包括下面的系统应用程序数据库也默认在此。
三、/system/app
该目录主要包括系统应用程序,默认群组root:root,权限755, 只有root权限者才可删除。
以上目录权限只是某个品牌手机的默认权限,当然实际定制时均可以在init.rc中改掉。
转载随意~:陶醉 » Android APK安装目录区别