最近做了一个Android项目,要求软件能够自动下载指定的APK文件并自动安装,无须用户操作,即静默安装。在查阅了GOOGLE之后,综合了各位方法之后,找到了一种相对简化的方法,不过此方法只在4.0的Android版本下测试过,其它版本各位可以照此方法尝试一下。 想要做到静默安装,其实就是要有权限执行pm install命令。准备工作其实就两步: 1、获取执行权限 2、执行命令 我们首先介绍第二步,如何执行pm install命令: 关键代码其实就一句: Runtime.getRuntime().exec( "pm install xxx.apk"); 网上也有人提到利用BufferReader读取控制台的输出Success来判断是否安装成功,但我始终没有抓到最后输出的那一句Success,只好用Package install的receiver来处理安装成功后的操作。 再回到如何获取权限的方法, 1、首先,我们要做的就是从Android的系统源码的 /build/target/product/security目录中,找到两个签名文件: platform.x509.pem和platform.pk8 2、在 /build/tools/signapk目录下找到signapk.jar文件的源码,编译成signapk.jar文件 3、然后在Android项目的manifest.xml文件中,加上INSTALL_PACKAGES的权限。 4、导出apk文件,这里选择签名文件导出。右键项目->"Android Tools"->"Export Signed application Package..." 5、最后就是执行 jarsignapk.jarplatform. x509.pemplatform.pk8 签名的apk 目标文件.apk 由此生成的目标文件apk就可以正常安装在Android中,并可以静默安装任意指定的apk文件了。

文中所需的三个文件下载:

signapk.jar

platform.x509.pem

platform.pk8

通过 为知笔记 发布

    更多相关文章

    1. 一款常用的 Squid 日志分析工具
    2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
    3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
    4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
    5. 学习Android闹钟源代码(三)-AlarmClock类分析(part1)
    6. adb通过wifi连接方法
    7. Android抓包方法(一)之Fiddler代理
    8. Android(安卓)消息机制(Handler Looper Message )理解
    9. 关于android:sharedUserId="android.uid.system"这个系统级权限

    随机推荐

    1. 运行linux命令
    2. android如何正确获取iccid,特别是中间带有
    3. 編譯android原始碼到模擬器上執行
    4. 解决android:ellipsize="end" 异常
    5. Android初学者
    6. Android(安卓)Activity的启动模式(androi
    7. Android运行模拟器
    8. Android串口通信实例分析【附源码】
    9. 简单android音乐播放器中 android学习(四)
    10. linux下用git下载android任意模块源码