adb 设备命令
一、adb 设备命令
1、查看机型时,可以使用以下命令
$ adb shell getprop ro.product.model
2.如果我们忘记具体系统属性的名字
$ adb shell getprop | grep product
3.获取设备号
$ adb shell getprop ro.serialno
4.我们还可以通过 adb devices 命令来查看设备信息:
$ adb devices
查看型号等详细信息使用以下命令
$ adb devices -l
二、
#获取手机名称 NAME = 'adb shell getprop ro.product.model'
#获取手机版本 VERSION = 'adb shell getprop ro.build.version.release'
#获取手机厂商 PRODUCER = 'adb shell getprop ro.product.brand'
获取以上信息python代码:
import os
deviceName = os.popen('adb shell getprop ro.product.model').read()
print(deviceName)
platformVersion = os.popen('adb shell getprop ro.build.version.release').read() print(platformVersion)
device = os.popen('adb shell getprop ro.product.name ').read()
print(device)
三、获取多个设备号
直接上代码:
#coding=utf-8
import re
import os #获取设备多台设备号列表
def get_deviceid():
str_init=' '
all_info= os.popen('adb devices').readlines()
print('adb devices 输出的内容是:',all_info) for i in range(len(all_info)):
str_init+=all_info[i]
devices_name=re.findall('\n(.+?)\t',str_init,re.S) print('所有设备名称:\n',devices_name)
return devices_name r=get_deviceid()
print(r[0])
四、---待完善
1、需求
最近需要给多台pad安装apk包,但是之前的串形脚本,一台pad装一个apk需要1分钟,80台就需要80分钟,于是乎我考虑能不能让任务池进行批量并行安装apk。
2、实现思路:
想到使用多进程的方式即使用python的pool.map方法,给每个任务池分配任务,起多任务池并行处理任务,废话不多说,
直接上代码:
#!/usr/bin/env python
# -*- encoding: utf-8
-*- import os
import time
from multiprocessing
import Pool
list=[]
def getDevicesAll():
#获取devices数量和名称
devices = []
try:
for dName_ in os.popen("adb devices"):
if "\t" in dName_:
if dName_.find("emulator") < 0:
devices.append(dName_.split("\t")[0])
devices.sort(cmp=None, key=None, reverse=False)
print(devices)
except:
pass
print(u"\n设备名称: %s \n总数量:%s台" % (devices, len(devices)))
return devices
def quickinstall(device):
#卸载原有apk
try:
os.system('adb -s ' + device + ' uninstall 包名')
os.system('adb -s ' + device + ' uninstall 包名')
except:
print(device + "卸载失败\n")
print(device + "卸载成功\n")
try:
for i in list:
os.system('adb -s ' + device + ' install ' + i)
except:
print(device + "安装失败\n")
print(device + "安装成功\n")
def qainstall(devices):
starttime=time.time()
pool = Pool(8) #创建8个任务池
result=pool.map(quickinstall,devices)
endtime=time.time()
pool.close()
pool.join()
print(endtime-starttime) #打印时间
if __name__ == "__main__":
filesname = '/Users/用户名/Desktop/package'
#获取安装包
for parent, dirnames, filnames in os.walk(filesname):
for filname in filnames:
path = os.path.join(parent, filname)
list.append(path)
try:
devices = getDevicesAll()
except:
print("获取设备出错")
res = input("输入1开始更新:")
if int(res) == 1:
try:
qainstall(devices)
except:
print("更新失败")
Touch(devices)
adb 设备命令的更多相关文章
- ubuntu 使用adb shell命令识别android设备
ubuntu 使用adb shell命令配置 在ubuntu下使用adb 命令识别Android设备需配置adb_usb.ini 文件 文件路径: ~/.android/ ,若不存在创建该文件. a ...
- adb 相关命令 以及无法adb识别设备的解决方法
[自己解决方法] 在-/.android/文件夹下面新建adb_usb.ini文件.里面写入设备的idVendor号(0x加上四位数字),然后输入 adb kill-server, 然后adb dev ...
- adb devices命令链接设备失败 解决办法
使用adb devices命令链接设备失败 1,检查adb的环境配置是否存在问题 参见我的博客(sdk配置):https://www.cnblogs.com/changpuyi/p/9459025.h ...
- adb push命令的使用
最近刚接触一种工具(命令),什么命令呢?就是adb命令,对这个命令纯属一个小白鼠,什么都不懂,所以只能adb --help 一下参数,然后就尝试着使用. 今天遇到一个问题,需要将某个文件拷到小机上面, ...
- adb常用命令
adb命令的主要用途 1. 运行android设备的shell(命令行). 2.管理模拟器或android设备的映射端口. 3. 安装和卸载应用程序. 4.计算机和android设备之间的上传 ...
- 54. Android中adb常用命令及应用常用目录
本文主要介绍adb常用命令及应用常用目录.1.adb常用命令adb devices列出所有连接的android设备.以下命令都是对单个devices而言,如果存在多个devices的话,下面的命令都需 ...
- adb shell 命令详解(转)
adb介绍 SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用.通过adb我们可以在Eclipse中方面 ...
- adb常用命令介绍
adb connect 命令格式:adb connect <host>[:<port>] 作用:connect to a device via TCP/IP,Port 5555 ...
- 【原创】Android开发之ADB及ADB SHELl命令的应用
adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具.adb的工作方式比 ...
随机推荐
- Redis in python, how do you close the connection?
down voteaccepted Just use redis.Redis. It uses a connection pool under the hood, so you don't have ...
- CF 809 D Hitchhiking in the Baltic States —— 思路+DP(LIS)+splay优化
题目:http://codeforces.com/contest/809/problem/D 看题解,抄标程...发现自己连 splay 都快不会写了... 首先,题目就是要得到一个 LIS: 但与一 ...
- bzoj4806 炮——DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4806 看到这题首先会想到状压什么乱七八糟的,然而很难做: 其实,因为求的是方案数,所以并不需 ...
- FluentData - 轻量级.NET ORM持久化技术解决方案
官方地址:http://fluentdata.codeplex.com/ 官方教程:http://fluentdata.codeplex.com/documentation FluentData入门 ...
- Ubuntu12.04中新的快捷键(转载)
转自:http://blog.51osos.com/linuxnews/ubuntu12-04%E4%B8%AD%E6%96%B0%E7%9A%84%E5%BF%AB%E6%8D%B7%E9%94%A ...
- oauth X-Frame-Options 跳转授权页面时,302重定向禁用iframe
因为oauth/authorize响应头包含X-Frame-Options: DENY解决方案:openresty nginx 移除该属性,经测试生效 more_clear_headers X-Fra ...
- 4 Java 如何判定是否存活或者死亡
在堆中存放着几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象之中哪些还活着,哪些对象已经死去. 判断对象是否已经死亡有以下几种算法: 引用计数法算法 定义 : 给对象中添加一 ...
- Codeforces Round #409(Div.2)
传送门 题意 A.询问最多改变一个字符的字符串"VK"子串数量 B.f(x,z)=y,给出x,y,求z For example, f("ab", "b ...
- P3162 [CQOI2012]组装
传送门 退火大法好 我并不会正解于是只好打退火了--其他没啥好讲--只要对每一种颜色开一个vector,存一下所有这个颜色的位置,判定的时候可以去所有的颜色里二分找到前缀和后缀,把和当前点距离小的加入 ...
- 【技巧】解决win10的1803版本下,无法收到1809推送、从而无法更新到1903版本的问题。
figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...