基于Python实现批量安装android apk包

by:授客 QQ:1033553122

1.相关软件包及文件下载

下载地址:adb软件包及批量安装apk包的py文件.zip

2.测试环境

Win7 64位

Python 3.3.2

3.用法及代码show

用法:

把.apk包放入apk目录下,然后进入到install_apk_once_many.py所在目录,运行程序:

python install_apk_once_many.py

运行结果:


代码展示


#!/usr/bin/env python

#
-*- coding:utf-8 -*-


__author__
=
'shouke'


import

subprocess
import

os

workdir
= os.getcwd()
apk_path
= os.path.join(workdir,
'apk'
)
adb_apth
= os.path.join(workdir,
'adb.exe'
)

p
= subprocess.Popen(adb_apth +
' root'
,

stdout=subprocess.PIPE,

stderr=subprocess.PIPE,

shell=True,

universal_newlines=True)
try:
    p.communicate()
    if

p.returncode:
        print('运行出错,程序已退出')
        exit()
except

Exception
as

e:
    p.kill()

filename_list
= os.listdir(apk_path)

fail_cnt
=
0   #
统计安装成功的包数

pass_cnt
=
0   #
统计安装失败的包数

fail_list
= []
# 存放安装失败的包文件名


for

filename
in

filename_list:
    if

os.path.splitext(filename)[1]
==
'.apk'
:

# 判断是否是apk包

        print('正在安装apk包:%s'

% filename)
        p
= subprocess.Popen(adb_apth +
' install -r apk/'

+ filename,
stdout=subprocess.PIPE,

stderr=subprocess.PIPE,

universal_newlines=True,

shell=True)

# adb install -r 如果已存在则覆盖安装

        try:
            outs
= p.communicate()[0]
            if

outs.find('Success'):
                print('安装成功\n')
                pass_cnt
= pass_cnt +
1
            else:
                print('安装失败\n')
                fail_cnt
= fail_cnt +
1
                fail_list.append(filename)
        except

Exception
as

e:
            p.kill()

print('安装成功总数:',
pass_cnt)
print('安装失败总数:',
fail_cnt)
print

('安装失败的文件有:',
fail_list)


 


注:

adb root   以root权限重新启动 adb的守护进程


 

Python Python实现批量安装android apk包的更多相关文章

  1. Visual Studio 2017为Android APK包签名

    Visual Studio 2017为Android APK包签名   为Android APK包签名,可以保证后期的App顺利升级.在Visual Studio 2015中,IDE会自动生成两个AP ...

  2. Python 使用 distutils 工具安装的扩展包的卸载

    Python 编写完扩展包并 build 好后,可以采用 $ sudo ./setup.py install 安装.采用这种方式安装的扩展包,可以使用 pip list 查看到,但不能直接使用 pip ...

  3. Python - 升级所有已安装的第三方包

    我们有时候需要把系统上已经安装的第三方的packages升级到最新版.但是easy_install和pip都没有直接的命令可以使用. 我们可以是用如下命令来查看系统上面哪些包过期了. pip list ...

  4. 在多版本python的pip的安装与对应包的安装

    最近花了好长时间在搞这个,由于Deepin下python有两个版本,并且都没有安装pip,之前的博文默认安装pip给python2.7,结果各种问题,在此将之前走过的弯路整合起来: 首先,安装pip ...

  5. 批量修改安卓apk包名

    1.准备工作 1.1 反编译工具apktool下载 1.2 java, android SDK安装 1.2 python安装 2.反编译现有包 apktool.bat d test.apk 3. 直接 ...

  6. PC机安装android apk | adb install -r

    PC 下载 *****.apk 通过adb直接安装到android系统

  7. [Unity] 导出Android APK包出错

    确认Android环境是OK的. 检查 StreamingAssets 目录下是否有中文的文件名 检查其它目录的中文文件名. 移除一些插件再试.

  8. Android Apk包下查看 sha1

    用keytool工具查看sha1,格式如下:keytool -printcert -file  Urovo.RSA文件路径(APK解压后在Meta-INF文件夹下)

  9. linux安装配置apk打包程序gradle+jdk+Android_sdk+python自动化编译脚本

    安装gradle: 1.下载gradle包 去这里下载需要的tar.gz包:https://services.gradle.org/distributions/ 2.解压 tar zxvf gradl ...

随机推荐

  1. 【jdbc】连接数据库从浅入深

    一.回想 还记得以前自学的时候,刚接触到数据库,讲解的连接数据库的最基本的理论知识和方法,现在温习一下基础知识并总结如下! 1.JDBC连接数据库的基本流程 加载JDBC驱动程序 —> 提供JD ...

  2. MRO

    在Python3里面,有多继承的时候,往往会出现调用Super失败的情况.Python里存在一种多继承 Super的调用顺序(C3算法),保证每个类调用一次. 体现:类名.__mro__ 使用Supe ...

  3. sql server 性能调优之 当前用户请求分析 (1)

    一. 概述 在生产数据库运行期间,有时我们需要查看当前用户会话状态或者是说数据库当前是否运行良好, 应用的场景比如:当运行的应用系统响应突然变慢时需要分析数据库的.或想分析当前的数据库是否繁忙,是否有 ...

  4. shell运算符与流程控制-2

    1.shell运算符 1.1.算数运算符 原生的bash不支持算数运算,可以通过其它方式实现例如expr. `expr a + b` #a b为数字,和运算符之间要有空格 #``不是单引号,为键盘上E ...

  5. Jenkins的一些笔记

    公司主要要开发自己的paas平台,集成了Jenkins,真的是遇到了很多很多困难,特别是在api调用的权限这一块,这里,把自己遇到的一些坑的解决方法做一下笔记吧.当然,首先要讲的,就是如何在开启安全的 ...

  6. MFC编程之数值调节按钮

    MFC编程之数值调节按钮 一丶数值调节按钮使用的注意事项 CSpinButtonCtrl类是MFC封装的数值调节按钮. 我们要使用数值调节按钮需要注意的事项. 1.数值调节按钮跟一个编辑框配合使用. ...

  7. 【原创】uC/OS 中LES BX,DWORD PTR DS:_OSTCBCur的作用及原理

    LES BX, DWORD PTR DS:_OSTCBCur ;OSTCBCur->OSTCBStkPtr = SS:SP!!! ], SS ;将当前SS(栈的基地址)寄存器值存放至当前任务控制 ...

  8. CAS 无锁式同步机制

    计算机系统中,CPU 和内存之间是通过总线进行通信的,当某个线程占有 CPU 执行指令的时候,会尽可能的将一些需要从内存中访问的变量缓存在自己的高速缓存区中,而修改也不会立即映射到内存. 而此时,其他 ...

  9. IDEA的几个常用配置,日常开发必备。

    用了IDEA有很长时间了,身边的同事朋友也都慢慢的开始都从Eclipse切换到IDEA了,其实无论是Eclipse还是IntelliJ IDEA都是开发工具而已,各自都有优点.但是刚从Eclipse切 ...

  10. Nacos系列:Nacos的三种部署模式

    三种部署模式 Nacos支持三种部署模式 1.单机模式:可用于测试和单机使用,生产环境切忌使用单机模式(满足不了高可用) 2.集群模式:可用于生产环境,确保高可用 3.多集群模式:可用于多数据中心场景 ...