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的工作方式比 ...
随机推荐
- [Usaco2009 Dec] 过路费
[题目链接] https://www.luogu.org/problemnew/show/P2966 [算法] SPFA最短路 时间复杂度 : O(N ^ 2) [代码] #include<bi ...
- Ruby: 获取IE的一些信息(其实应用AutoIt脚本本身,获取这些信息更加简单)
require'win32/registry' hkey_local_machine=Win32::Registry::HKEY_LOCAL_MACHINE defgetKeyValue(hive, ...
- ExtJS4 带清除功能的文本框 triggerfield
Ext.onReady(function () { Ext.create('Ext.form.FormPanel', { title: 'Form with TriggerField', bodyPa ...
- log4j没有作用,druid的日志信息还打印在控制台的解决办法
log4j没有实现类,需引入slf4j实现
- 利用插件(jQuery-ui.js)实现表格行的拖拽排序
template 模板(html) 首先要引入jQuery-ui.js的文件.import './../../scripts/base/jquery/jquery-ui.min.js';<tab ...
- C#中遍历ArrayList的三种方法(转)
using System; using System.Collections; using System.Linq; using System.Text; namespace ArrayListDem ...
- P3171 [CQOI2015]网络吞吐量
传送门 首先跑一遍最短路,如果一条边满足\(dis[v]=dis[u]+w[i]\),那么这条边就在最短路中,把它加进网络流的图里 然后点的流量限制的话拆点,把每个点拆成两个,中间连边来限制流量 最后 ...
- P3158 [CQOI2011]放棋子
传送门 题解(因为公式太多懒得自己抄写一遍了--) //minamoto #include<bits/stdc++.h> #define ll long long #define R re ...
- 洛谷P2787 语文1(chin1)- 理理思维(珂朵莉树)
传送门 一看到区间推倒……推平操作就想到珂朵莉树 区间推平直接assign,查询暴力,排序的话开一个桶统计,然后一个字母一个字母加就好了 开桶统计的时候忘了保存原来的左指针然后挂了233 //mina ...
- 51nod 1068 Bash游戏 V3
列出前几项可以发现是个规律题,不要被题目的文字所欺骗,字符串处理10^1000即可 #include <bits/stdc++.h> using namespace std; int ge ...