Android 静默更新apk
来源:互联网 发布:网络建设合同 编辑:程序博客网 时间:2024/05/31 19:43
Android 静默更新apk
任务:打开App检查服务器有无更新,有则下载,然后静默安装更新。
(1)下载更新app
(2)静默安装
参考链接:
http://blog.csdn.net/jiangwei0910410003/article/details/36427963
http://blog.csdn.net/furongkang/article/details/6886526
内容:关于以上两个任务,网上已经有很多实例以及文字说明了,这里只是记录一下自己参考他们的博客后而写的代码demo。基本上参考上面两个链接就能完全实现改功能了。
(1)检测有无更新并下载
在服务器上放一个保存版本的update.xml文件,以及更新app
1.update.xml
<?xml version="1.0" encoding="utf-8"?> <info> <version>3.0</version> <url>http://192.168.1.103/updatedemo.apk</url> <description>new viersion</description></info>
表示版本号,下载链接,说明
2.下载http://blog.csdn.net/furongkang/article/details/6886526
注意添加权限
3.静默安装(pm install -r XXX.apx)
调用 String result= execCommand("pm","install","-r",file.getPath());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; }
其中apk的权限如下:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
并在manifest加入android:sharedUserId=”android.uid.system”
让然需要root权限,以及app需要系统签名。
系统签名步骤:
(1)从Eclipse导出未签名的apk
(2)在命令行里签名,需要用到一下几个文件
从android源码获取,build/target/product/security,./out/host/linux-x86/framework/
或者直接用find命令找,find -name “signapk.jar”
(3)签名
把待签名的apk和上面三个文件放在同一个文件夹下
java -jar signapk.jar platform.x509.pem platform.pk8 updatedemo.apk updatedemo_sign.apk
提示:到相应的目录下去执行命令,不然会提示error:unable to access jarfile
应该就完成了任务。更新的app也要同样签名!
demo运行环境:4412板子 android4.2.2
demo:代码
- Android 静默更新apk
- APK静默安装与更新
- android 静默安装apk
- android 静默安装Apk
- Android静默安装apk
- android静默安装apk
- android apk静默安装
- Android静默安装apk
- android APK静默安装
- Android 静默安装apk
- android静默安装、静默卸载apk方法
- android静默更新
- Android系统静默安装APK
- 转载 :Android apk的安装、卸载、更新升级(通过Eclipse实现静默安装)
- Android apk的安装、卸载、更新升级(通过Eclipse实现静默安装)
- Android apk的安装、卸载、更新升级(通过Eclipse实现静默安装)
- Android apk的安装、卸载、更新升级(通过Eclipse实现静默安装)
- android apk静默安装和卸载
- C# 循环语句foreach用法
- Praxis Notiz - Week 1 -Wednesday
- java 公平锁
- Mac上Android SDK Manager无法联网下载解决方案
- python_numpy,在命令窗口python.exe和python shell中的效果不一样?
- Android 静默更新apk
- POJ1006
- 第16题
- Quick-Cocos2d-x 3.3下集成云风pbc(Windows版)
- 注解式控制器的数据验证、类型转换及格式化
- 打印机共通知识
- STL系列之一_简介
- Visual C++中的AFX前缀
- 就是这样