Android应用程序相关目录

本文详细介绍了Android系统中各类应用程序的安装位置,包括系统核心应用、非系统应用、受DRM保护的应用等,并阐述了Android启动过程中如何扫描及安装这些应用。

参考链接:http://www.2cto.com/kf/201405/299974.html


一个最一般的apk包(不是系统app,没有共享lib,不是装在sd上或是forward-lock的app)装完后内容会体现在这么几个目录:

/data/app // apk包

/data/app-lib// native lib

/data/data //数据目录,其中的lib目录指向上面的/data/app-lib目录

/data/dalvik-cache/data@app@.apk@classes.dex //优化或编译后的Java bytecode


Android启动时会把已有的app安装一遍,过程主要分三部分:读取安装信息,扫描安装,写回安装信息。读取和写回主要是针对于一坨安装信息文件。这些信息保证了启动后app与上一次的一致。关键步是扫描指定目录下的apk并安装。Android中apk主要分布在以下几个目录,意味着启动时要扫描的主要也是这几个目录:

系统核心应用:/system/priv-app

系统app:/system/app

非系统app:/data/app(安装于手机存储的一般app)或/mnt/asec//pkg.apk(sdcard或forward-locked)

受DRM保护app:/data/app-private

vendor-specific的app: /vendor/app

资源型app:/system/framework


现有app的安装信息放在/data/system/packages.xml里,由Settings管理。另外/data/system/packages.list记录了app的uid和数据路径以及permissions等信息。readLPw()就是用于恢复这些信息,实现位于/frameworks/base/services/java/com/android/server/pm/Settings.java。readLPw()先打开packages.xml,再通过XmlPullParser类来解析其内容。它会根据不同的tag调用相应的函数来读取信息。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值