一、安装

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中删除该应用的配置信息