Android静默更新程序

先说我的应用场景,android板子嵌在机器里面。因为没有显示器,所以版本更新需要用到静默安装。先root...

静默更新流程:

1、服务里定时去检测是否有新的版本,下载新版本保存在本地

2、静默更新,系统签名

3、重启

本篇主要聊第二步静默更新,系统更新内容:

1、添加更新代码

// “-r” :替换   “-f” :安装

String result = execCommand("pm","install","-r","/mnt/sdcard/XXXXX.apk");

/*

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

*/

public static String execCommand(String ...command){

Process process=null;

InputStream errIs=null;

InputStream inIs=null;

String result="";

try{

process=newProcessBuilder().command(command).start();

ByteArrayOutputStream baos =newByteArrayOutputStream();

intread = -1;

errIs=process.getErrorStream();

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

baos.write(read);

}

inIs=process.getInputStream();

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

baos.write(read);

}

result=newString(baos.toByteArray());

if(inIs!=null)

inIs.close();

if(errIs!=null)

errIs.close();

process.destroy();

}catch(IOException e) {

result = e.getMessage();

}

returnresult;

}

2、添加权限

Android静默更新程序_第1张图片

3、系统签名

注意上图红框内容,添加上项目会报错,因为是系统权限,这个可以不用管,接下往下做就好。

(1)接着给项目打不签名的apk:

项目右键 -- Android Tools -- Export Unsigned Application Package..

(2) 打系统签名包

系统签名工具:地址

Android静默更新程序_第2张图片

(3)如上图将未签名的ShellDemo.apk复制到文件夹下,接下来就在命令行中打包:

Android静默更新程序_第3张图片

见上图 进到文件夹 执行:java -jar signapk.jar platform.x509.pem platform.pk8 app_unsigned.apk app_signed.apk

ShellDemo_new.apk 即系统签名的apk.

你可能感兴趣的:(Android静默更新程序)