HOME> 活动公告> 使用pm命令安装或卸载apk,静默安装、卸载方法

使用pm命令安装或卸载apk,静默安装、卸载方法

2026-08-23 14:53:44

pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME][-s] [-f] PATH

pm uninstall [-k] PACKAGE

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

/*

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

*/

public static String execCommand(String ...command)

{

Process process=null;

InputStream errIs=null;

InputStream inIs=null;

String result="";

try

{

process=new ProcessBuilder().command(command).start();

ByteArrayOutputStream baos = new ByteArrayOutputStream();

int read = -1;

errIs=process.getErrorStream();

while((read=errIs.read())!=-1)

{

baos.write(read);

}

inIs=process.getInputStream();

while((read=inIs.read())!=-1)

{

baos.write(read);

}

result=new String(baos.toByteArray());

if(inIs!=null)

inIs.close();

if(errIs!=null)

errIs.close();

process.destroy();

} catch (IOException e) {

result=e.getMessage();

}

return result;

}

1

execCommand("pm","install","-f",filePath);//安装apk,filePath为apk文件路径,如/mnt/sdcard/ApiDemos.apk

2

execCommand("pm","uninstall", packageName);//卸载apk,packageName为包名,如com.example.android.apis

编译生成apk时,要在你的manifest文件下添加android:sharedUserId="android.uid.system",如:

package="com.xieyuan.mhfilemanager"

android:versionCode="1"

android:versionName="1.0"

android:installLocation="internalOnly"

android:sharedUserId="android.uid.system" >

编译完成之后还无法正常安装,会出现Installationerror: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这两个文件删除掉,然后在命令行中执行以下命令:

1

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

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

没有platform.pk8和platform.x509.pem,signapk.jar的可以到这里下载

http://download.csdn.net/detail/ab6326795/6042755

CorelDRAW 帮助
如何通过Chrome浏览器设置网页的自定义背景颜色【操作教程】