Keep on going, never give up.

Android APK安装目录区别

从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

主要包括用户自安装应用程序、更新、缓存等,默认群组system:system,权限771,用户常规权限可以卸载,如果在recovery中执行wipe命令会自动清理该目录下apk,此外,应用程序的数据库会默认存储在/data/data/PackageName/下,包括下面的系统应用程序数据库也默认在此。

三、/system/app

该目录主要包括系统集成时自带的应用程序,默认群组root:root,权限755, 只有root权限者才可删除。

以上目录权限只是某个品牌手机的默认权限,当然实际定制时均可以在init.rc中改掉。

四、/data/dalvik-cache

/data/dalvik-cache目录用于存储.apk中的dex文件,.dex文件是dalvik虚拟机的可执行文件,大小约为原始apk文件大小的四分之一。

实际安装过程如下:

  • 复制APK安装包到data/app目录下
  • 解压并扫描检查apk,验签,把dex文件(Dalvik字节码)保存到dalvik-cache目录
  • 在data/data目录下创建对应的应用数据目录。

卸载过程则相反,删除上述创建的文件即可。

相关评论(0):  

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

最新文章

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载也必须遵循“署名-非商业用途-保持一致”的创作共用协议. 返回顶部
Copyright@2005-2016 Metsky.com, All rights Reserved.