python写安卓界面_Python写一个Windows下的android设备截图工具

界面版

利用python的wx库写个ui界面,用来把android设备的截图输出到电脑屏幕,前提需要安装adb,涉及到的python库也要安装。代码如下:

importwx,subprocess,os,platformclassAutyFrame(wx.Frame):def __init__(self):

wx.Frame.__init__(self, None, -1, 'Android Auty', size=(350, 300))

self.panel= wx.Panel(self, -1)#Android devices combox.

combox_list =[]

r= execute_shell("adb devices")for i in range(1,len(r)-1):if r[i].startswith("*") and r[i].endswith("*"):pass

else:

combox_list.append(r[i].split("\t")[0])

wx.StaticText(self.panel,-1, "Select devices:", (15, 15))

self.devices_combobox= wx.ComboBox(self.panel, -1, r[1].split("\t")[0], (15, 35), wx.DefaultSize, combox_list, wx.CB_DROPDOWN)#Capture button.

self.capture_button = wx.Button(self.panel, -1, "capture", pos=(188, 35), size=(66,25))

self.reload_button= wx.Button(self.panel, -1, "reload", pos=(258, 35), size=(66,25))

self.Bind(wx.EVT_BUTTON, self.captureClick, self.capture_button)

self.Bind(wx.EVT_BUTTON, self.reloadClick, self.reload_button)

self.capture_button.SetDefault()

self.reload_button.SetDefault()defcaptureClick(self, event):

capture_android(self.devices_combobox.GetValue())if("Windows" inplatform.platform()):

os.startfile("d:\\screenshot.png")defreloadClick(self, event):

self.devices_combobox.Clear()

k= execute_shell("adb devices")for i in range(1,len(k)-1):

self.devices_combobox.Append(k[i].split("\t")[0])

self.devices_combobox.SetValue(k[1].split("\t")[0])defexecute_shell(shell):

p= subprocess.Popen(shell,shell=True,stdout=subprocess.PIPE)

out=p.stdout.readlines()returnoutdefcapture_android(device_id):

sh1= "adb -s"+device_id+"shell /system/bin/screencap -p /sdcard/screenshot.png"sh2= "adb -s"+device_id+"pull /sdcard/screenshot.png d:/screenshot.png"execute_shell(sh1)

execute_shell(sh2)if __name__ == '__main__':

app=wx.PySimpleApp()

AutyFrame().Show()

app.MainLoop()

运行截图:

优点:

1. 比uiautomatorviewer运行速度快,比monitor更快;

2. 可以针对多个设备,选择性进行截屏;

3. 截屏以后截图(保存在D盘根目录下“screenshot.png”文件)会自动打开;

4. 插拔设备后可以reload重新加载设备列表。

命令行版

如果不想安装wx库,提供一个命令行版的安卓截屏python脚本(capture_android.py):

importsys,os,platformfrom execute_shell importexecute_shelldefcapture_android(device_id):

sh1= "adb -s"+device_id+"shell /system/bin/screencap -p /sdcard/screenshot.png"sh2= "adb -s"+device_id+"pull /sdcard/screenshot.png d:/screenshot.png"execute_shell(sh1)

execute_shell(sh2)if __name__ == '__main__':if len(sys.argv) == 2:

device_id= sys.argv[1]

capture_android(sys.argv[1])if("Windows" inplatform.platform()):

os.startfile("d:\\screenshot.png")

引用的execute_shell.py内容如下(把引用的文件放在同级目录下就行):

importsubprocessdefexecute_shell(shell):

p= subprocess.Popen(shell,shell=True,stdout=subprocess.PIPE)

out=p.stdout.readlines()return out

使用方法(python 脚本路径 device_id参数):

截屏后图片会自动打开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值