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、添加权限

3、系统签名

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

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

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

(2) 打系统签名包

系统签名工具:地址

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

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

ShellDemo_new.apk 即系统签名的apk.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,638评论 25 708
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,569评论 0 17
  • 天有雾兮风有月, 山有木兮木刻水, 孤鸿踏影比惊鹊, 一点涟漪一声碎。
    郎玄珠阅读 215评论 2 5
  • 摄影:SHILO设备:佳能7D
    一墨志阅读 346评论 0 8