您现在的位置是:首页 > 正文

使用pm命令安装或卸载apk

2023-11-09 19:07:10阅读 169
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
       pm uninstall [-k] PACKAGE

pm命令可以通过adb在shell中执行,同样,我们可以通过代码来执行。

public static void execCommand(String... command) {
		Process process = null;
		try {
			process = new ProcessBuilder().command(command).start();
			//对于命令的执行结果我们可以通过流来读取
			// InputStream in = process.getInputStream();
			// OutputStream out = process.getOutputStream();
			// InputStream err = process.getErrorStream();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (process != null)
				process.destroy();
		}
	}

execCommand("pm", "install", "-f", filePath);//安装apk,filePath为apk文件路径,如/mnt/sdcard/ApiDemos.apk
execCommand("pm", "uninstall", packageName);//卸载apk,packageName为包名,如com.example.android.apis

编译生成apk时,要在你的manifest文件下添加android:sharedUserId="android.uid.system",编译完成之后还无法正常安装,会出现Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE错误,此时,要为apk重新签名。

在android源码\build\target\product\security中找platform.pk8和platform.x509.pem两个文件,在android 编绎目录out下找到 signapk.jar 这个包(源码目录\build\tools\signapk),并把编译好的apk(如PMDemo.apk)放在同一目录下,在重新签名之前,用rar文件打开apk文件,进入META-INF目录下,将CERT.SF和CERT.RSA这两个文件删除掉,然后在命令行中执行以下命令:

java -jar signapk.jar platform.x509.pem platform.pk8 PMDemo.apk NewPMDemo.apk

安装前先把旧的apk卸载,这样重新签名之后的apk就可以正常安装了。

 

转载于:https://my.oschina.net/eclipse88/blog/52270

文章来源:https://blog.csdn.net/weixin_33817333/article/details/92048453
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.dflian.com/82211.html

网站文章

  • ARM 深入理解LR、PC部分内容

    ARM 深入理解LR、PC部分内容

    其实我也不算很确定,但是目前就是这样理解的。写出来mark一下,有不对还请大家指出呀。学的时候举的例子是两种情况:有返回、无返回。其中,返回则默认为是BX LR语句,作用等同于【MOV PC,LR,即跳转到LR中存放的地址处】LR存放的地址是什么呢?我的理解是(返回值将要返回到的目标位置+bit[0])其中bit[0]是自设定用来标记thumb mode的,在本例中取值为...

    2023-11-09 19:07:05
  • android listpopupwindow 源码分析,基于上一篇实现的SimpleListPopupWindow<T>详解

    这次是个简单的PopupWindow,快速迭代用。import java.util.List;import android.content.Context;import android.view.Vi...

    2023-11-09 19:06:49
  • spring boot rabbitmq 如何保持顺序消费

    在消费消息时,先从消息中提取出消息 ID,然后根据分片规则计算出当前消费者线程负责的分片编号,如果当前线程负责的分片与消息所在分片相同,则处理该消息。要保证消息的顺序,需要在分片规则上做额外的处理,确...

    2023-11-09 19:06:40
  • 文档自动备份 到服务器,客户端文件自动备份到服务器

    文档自动备份 到服务器,客户端文件自动备份到服务器

    客户端文件自动备份到服务器 内容精选换一换用户可以在公有云MRS集群以外的节点上使用客户端,在使用客户端前需要安装客户端。如果集群外的节点已安装客户端且只需要更新客户端,请使用安装客户端的用户例如ro...

    2023-11-09 19:06:37
  • python习题库12-15/1-7

    python习题库12-15/1-7

    习题12:统计首字母是“a”的单词的个数 编程思想: 1、生成字符串s 2、初始一个count=0,用于统计s字符串中的a的个数 3、将字符串s切割遍历,判断如果s字符串某个位置的元素等于a,那么co...

    2023-11-09 19:06:32
  • 智能车入门——元素识别与循迹

    智能车入门——元素识别与循迹

    这篇文章介绍如何让车真正跑起来。即按照规定路径循迹。

    2023-11-09 19:06:14
  • npoi excel导入html数据,winfrom 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中

    npoi excel导入html数据,winfrom 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中

    1.通过NUGET管理器下载nopi,在引入命令空间1 usingSystem;2 usingSystem.Collections.Generic;3 usingSystem.Text;4 usingSystem.IO;5 using NPOI.SS.UserModel; //NPOI6 using NPOI.HSSF.Util; //NPOI7 using NP...

    2023-11-09 19:06:07
  • 国企java程序员,工作稳定收入低,不想干了

    国企java程序员,工作稳定收入低,不想干了

    昨天有个小兄弟找到我,说了下自己的国企程序员经历,有同病相怜的吗?我是18年毕业的程序员,技术一般般,用了点关系进了国企,时间是真的很多,但是收入很低,之前试过接私单做,但是有两个难题。第一,个人接私...

    2023-11-09 19:06:03
  • Raft 一致性算法论文译文

    Raft 一致性算法论文译文

    本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为《In search of an Understandable Consensus Algorithm (Extended Version...

    2023-11-09 19:05:50
  • Excel中的表格批量生成word表格(WPS篇)

    Excel中的表格批量生成word表格(WPS篇)

    使用excel中的数据,批量生成word表格

    2023-11-09 19:05:46