adb 静默安装_GitHub - anricheng/jing_install: 静默安装与卸载

jing_install

静默安装与卸载

Android实现静默卸载与安装

静默安装简介:一般情况下,Android系统安装apk会出现一个安装界面,用户可以点击确定或者取消来进行apk的安装。

但在实际的项目需求中,有一种需求,就是希望apk在后台安装(不出现安装界面的提示),这种安装方式称为静默安装。

以下用两张方式实现静默安装与卸载:

一、PM命令实现静默安装与卸载

注:这种方法需要root权限

直接adb shell 命令卸载应用

adb shell pm uninstall -k (应用包名)

adb shell pm install -r (apk路径)

在Android程序代码中实现pm

Runtime.getRuntime().exec("sh");// 申请root权限

Runtime.getRuntime().exec("pm uninstall -k uninstallPackageName")//卸载

Runtime.getRuntime().exec("pm install -r unstallapkPath")//安装

安装可选的参数:

参数说明

-l锁定应用程序

-r重新安装应用,且保留应用数据

-t允许测试apk被安装

-i 指定安装包的包名

-s安装到sd卡

-f安装到系统 内置存储中(默认安装位置)

-d允许降级安装(同一应用低级换高级)

-g授予应用程序清单中列出的所有权限(只有6.0系统可用)

卸载可选的参数:

参数说明

-k卸载应用且保留数据与缓存(如果不加-k则全部删除)

声明权限:

在Manifest文件中加入如下语句:

二、调用PackageInstaller接口实现静默安装与卸载

注:需要系统签名

实现原理

android自带了一个安装程序—/system/app/PackageInstaller.apk.大多数情况下,我们手机上安装应用都是通过这个apk来安装的。.我们在应用程序中控制安装应用APP,其实就是发送一个如下的intent。去调用packageinstaller进行安装,具体的操作代码如下:

/* 安装apk */

Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setDataAndType(Uri.parse("file://"+ fileName),

"application/vnd.android.package-archive");

context.startActivity(intent);

对比应用正常安装的流程,静默安装的本质就是去掉如下图

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值