基于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. SpringBoot整合Mybatis完整版

    喜欢的朋友可以关注下,粉丝也缺. 自从Spring推出Boot,Cloud系列之后,一度成为热门的框架,现在大部分的招聘要求都要有相关的开发经验,借此我在这里就给大家分享一下如何玩转SpringBoo ...

  2. 好玩的原生js的简单拖拽

    这个拖拽的图片不是唯一的,拿到代码自己添加一张照片就可以啦 <!DOCTYPE html><html> <head> <meta charset=" ...

  3. 《CLR Via C#》读书笔记:26.线程基础

    一.线程开销 操作系统创建线程是有代价的,其主要开销在下面列举出来了. 内存开销 线程内核对象 拥有线程描述属性与线程上下文,线程上下文占用的内存空间为 x86 架构 占用 700 字节.x64 架构 ...

  4. nginx入门教程

    nginx入门教程 一.概述    什么是nginx?   Nginx (engine x) 是一款轻量级的Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器.   什么是反向 ...

  5. Java的运行原理(转载)

    在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器.这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口.编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由 ...

  6. Linux命令行文本工具

    浏览文件 cat 查看文件内容 more 以翻页形式查看文件内容(只能向下翻页) less 以翻页形式查看文件内容(可以上下翻页) head 查看文件的头几行(默认10行) tail 查看文件的尾几行 ...

  7. python 备忘

    import jsonu='''{ "maps": [ { "id": "blabla", "iscategorical" ...

  8. python布尔类型和逻辑运算

    布尔类型 python中True表示真,False表示假,它们是布尔类型: >>> type(True) <class 'bool'> 在python中,bool的Tru ...

  9. iOS面试准备之思维导图

    以思维导图的方式对iOS常见的面试题知识点进行梳理复习,文章xmind点这下载,文章图片太大查看不了也点这下载 你可以在公众号 五分钟学算法 获取数据结构与算法相关的内容,准备算法面试 公众号回复 g ...

  10. 【golang-GUI开发】struct tags系统(二)qt的自定义组件和构造函数

    今天我们来讲讲自定义组件和它的构造函数. 在前面的文章里我们已经接触了好几个自定组件,这次的示例是一个自定义对话框,他有一个about按钮,点击按钮可以显示出Qt的信息或者用户输入的信息.这是效果图: ...