android批量安装APK

本文介绍了如何在Android设备上实现批量安装APK,避免手动安装带来的不便。由于Google的安全措施,官方SDK不提供静默安装API,但系统开发者可以通过调用隐藏的PackageManager方法实现。文章展示了应用界面和安装过程,并提供了主要代码示例,说明了编译系统时整合应用的方法。若需完整工程,可联系作者获取。
摘要由CSDN通过智能技术生成

    在android机上安装APK时一般都是借助PC端的91手机助手或者豌豆荚之类的工具;或者直接将APK下载到android机子上手动点击安装,手动安装时系统会弹出“是否要安装该应用程序?”的对话框让你选择是否安装,如果一次只安装一两个APK还可以在每次弹出对话框时选择“安装“,如果一次需要安装数十个时这是相当费力而且容易漏掉APK没有安装的。

    能不能自己写个应用来实现一次批量安装所有APK呢?答案是肯定的,但是对于一个只熟悉android应用开发的人员是办不到的。因为google为了防止出于一些特殊目的的开发人员编写应用程序偷偷的在你的android机子上安装一些有特殊目的的APK,已经将静默安装APK的API屏蔽了,在官方发布的SDK中是没有这样的API给你调用的。但是对于系统开发人员还是很容易开发出这样的应用的,因为我们可以在编译系统时去编译我们调用了google隐藏了的API的应用。

    先上个我写的批量安装APK应用的界面和批量安装APK时的效果图,该应用实现的功能是先扫描外置SD、TF卡下的所有APK,点击”安装APK“按钮后即开始一次批量安装完扫描到的APK,不需要用户去干预。

    该应用主要用到的是android.content.pm.PackageManager类下的installPackage方法来实现静默安装所有APK的。

   工程文件列表:

updatepackage
│  .classpath
│  .project
│  Android.mk
│  AndroidManifest.xml
│  MainActivity.apk
│  
├─res
│  ├─drawable
│  │      back.jpg
│  │      
│  ├─drawable-hdpi
│  │      ic_action_search.png
│  │      ic_launcher.png
│  │      
│  ├─drawable-ldpi
│  │      ic_launcher.png
│  │      
│  ├─drawable-mdpi
│  │      ic_action_search.png
│  │      ic_launcher.png
│  │      
│  ├─drawable-xhdpi
│  │      ic_action_search.png
│  │      ic_launcher.png
│  │      
│  ├─layout
│  │      activity_main.xml
│  │      
│  ├─menu
│  │      activity_main.xml
│  │      
│  ├─values
│  │      dimens.xml
│  │      strings.xml
│  │      styles.xml
│  │      
│  └─values-large
│          dimens.xml
│          
└─src
    └─com
        └─example
            └─adnroid
                └─updatepackage
                        ApkFile.java
                        ApkSearchUtils.java
                        MainActivity.java
                        UpdateBroadcastReceiver.java
    android系统源代码下添加我们的updatepackage工程,工程下添加用于编译的Android.mk文件内容如下所示:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := MainActivity
LOCAL_DEX_PREOPT :=false
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)

    布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    >
    
   <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height&#
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值