一、安装
1、安装方法
adb install apkPath 全新安装
adb install -r apkPath 覆盖安装
2、安装位置
Android应用安装涉及到如下几个目录:
/system/app 系统应用安装目录 存放apk文件 如需安装系统应用只需把apk文件拷到该目录即可 需root权限
/data/app 普通应用安装目录 存放apk文件 如需安装普通应用只需把apk文件拷到该目录即可 需system权限
/mnt/asec/packageName-number 普通应用安装目录 存放apk和lib(里面存放so库) 需system权限
/data/data app数据目录 需system权限
/data/data/packageName/lib app库目录 存放so库 链接文件 一般指向 /data/app-lib/packageName-number 或 /mnt/asec/packageName-number/lib
/data/dalvik-cache
/data/system/package.list保存系统中存在的所有非系统自带的APK信息,即UID大于1000的apk 内容有包名 apk位置 uid 等信息 需system权限
/data/system/package.xml文件用于记录系统中所安装的Package信息 内容有包名 apk位置 uid 拥有权限 签名等信息 需system权限
3、安装过程
复制APK安装包到安装目录下(data/app、/mnt/asec 或其他app目录)
解压并扫描安装包
把dex文件(Dalvik字节码)保存到dalvik-cache目录
在data/data目录下创建对应的应用数据目录
把so库文件拷贝到对应的目录中 且与/data/data/packageName/lib建立链接
把app信息写入package.list和package.xml文件中
4、安装失败处理
空间不够 腾出空间
其他问题 先按后面的卸载异常处理 然后重新安装该应用
5、安装失败异常信息
INSTALL_FAILED_INSUFFICIENT_STORAGE
没有卸载干净 重新卸载
由于存储空间不足导致安装失败
查询app存储空间是否足够
不足 腾出空间
足的话 一次运行一个安装实例 cache是否足 可以关机后拿掉电池重新开机试试 还是不行刷机模式下 wipe date
Installation error: INSTALL_FAILED_VERSION_DOWNGRADE
版本号错误 在清单文件里往上修改下版本号(android:versionCode)试试 不行卸掉该apk在安装
Installation error: INSTALL_FAILED_UID_CHANGED
UID不同安装失败 出现此问题的原因大多是apk冲突或APK没卸干净造成
按照下面的方法重新卸载该apk 在装
Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER
内容提供者已存在安装失败 新安装应用和以安装应用的清单文件中的某个内容提供者地址重复造成的 先看下待安装app是否卸载干净 如果没 就卸载干净在试
如卸载干净后还存在该问题 把清单文件里的注册的provder地址一批一批的去掉 在安装 只到安装成功 成功之前那个provider地址就是导致失败的地址
修改下该地址就行
Installation error: INSTALL_FAILED_DEXOPT
空间不够 卸载一些apk 在装
二、卸载
1、卸载方式
adb uninstall packageName
2、卸载异常处理
通过命令或图像界面重新卸载
如果卸载失败按下面执行
找到app安装目录并删除 (可以从上面packages开头的文件中找 或 从上面的安装位置所指定的几个目录中找)
删除该应用的app数据目录
dex缓存目录中删除该app的dex文件
在packages.list和packages.xml中删除该应用的配置信息