当前位置: 首页 > 科技观察

盘点Python编程的简易版自动化工具——ADB史上全操作

时间:2023-03-18 23:38:23 科技观察

盘点用于Python编程的自动化工具的简单版本-ADB历史上的完整操作),并提供对Unixshell的访问,可用于在设备上运行各种命令。它是一个客户端-服务器程序,包括以下三个组件:客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出ADB命令从命令行终端调用客户端。守护进程:在设备上运行命令。守护进程在每个设备上作为后台进程运行。服务器:管理客户端和守护进程之间的通信。服务器在开发机器上作为后台进程运行。通过这个命令行工具,我们可以使用它来操作手机上的资源,我们可以在不使用AndroidSDK的情况下轻松控制手机中的应用程序。一、工作原理当你启动一个ADB客户端时,客户端会先检查是否有ADB服务器进程在运行。如果没有,它将启动服务器进程。服务器在启动时绑定到本地TCP端口5037并侦听来自ADB客户端的命令-所有ADB客户端都通过端口5037与ADB服务器通信。然后服务器与所有正在运行的设备建立连接。它通过扫描5555和5585(前16个模拟器使用的范围)之间的奇数端口来找到模拟器。一旦服务器发现ADB守护进程(ADBD),它就会与相应的端口建立连接。请注意,每个模拟器使用一对顺序端口-一个用于控制台连接的偶数端口和一个用于ADB连接的奇数端口。2.下载亚行。小编在这里为大家准备好了。下载地址:https://u062.com/file/7715018-452566390。如果要在任意文件目录下使用ADB,必须将ADB安装目录添加到环境变量中,然后我们就可以使用ADB接口工具,可以直观方便的执行ADB命令并显示结果。这个工具就是APKInstaller,下载地址:https://u062.com/file/7715018-452566398,如图:三、基本操作1、设备的开机和关机操作这里我选择连接到模拟器看看连接之间有什么区别。1).连接设备adbconnect127.0.0.1:62001#Connectanemulator2).启动服务adbstart-server#启动服务3).查看设备adbdevices#查看设备信息adbversion#设备版本adbhelp#帮助文档adbget-state#查看设备状态device(连接正常),offline(连接异常),unknown(无连接)adbget-serialno#获取序列号adbget-devpath#获取设备路径adbshel??lcat/system/build.prop#获取设备名称4).许多操作adb-a监听所有网络接口,而不仅仅是本地主机  -d使用USB设备(如果多个设备连接不正确)  -e使用TCP/IP设备(如果有多个TCP/IP设备可用False)  -s具有给定的序列号(覆盖ANDROID_SERIAL)  -t具有给定的设备ID  -hadb服务器主机名(默认=本地主机)  -padb服务器的端口(默认=5037)  -l从socket(default=tcp:localhost:5037)监听adbserver  例如:adb-s127.0.0.1:62001shell这样我们就进入了模拟器的shell界面了。5).关闭服务adbkill-server6)。设置端口adbtcpip55557以监控TCP/IP)。断开adbdisconnect127.0.0.1:620018)。关机重启adbreboot#Devicerestartadbshutdown#Deviceshutdown9).root权限adbroot#正常输出:restartingadbdasrootadbunroot#取消root权限10).刷机模式adbrebootbootloader#重启到bootloader,即刷机模式adbrebotrecovery#重启到recovery,即recovery模式adbsideload#Updatesystem11).命令转载adbwait-for-device#转载连接模拟器/设备之前adb命令中的command2.设备应用操作1).查看应用使用adbshel??lpmlistpackages|findstrbluetooth#过滤应用管道字符进行搜索,Linux下使用grep2)。查看应用程序的Activity信息adbshel??ldumpsyspackagecom.android.bluetooth#查看系统应用程序Bluetooth的包名信息查看当前正在重启的是哪个包adbshel??ldumpsysactivitytop|findstractivity#找到设备活动程序的父窗口3).清除应用程序数据和缓存adbshel??lpmclear3、安装和卸载电脑上安装的应用程序adbinstallD:/aa.apk#Apkadbinstall-rD:/aa。apk#overwriteinstallation保留数据和缓存文件-ggrantallruntimepermissionsadbshel??lpminstall/scard/picture#apkadbuninstall-k手机安装的包名在模拟器或真机中需要使用-s指定4.logadblogcat#查看日志adblogcat-vtime#打印详细日志,会记录当前所有的操作行为和结果。默认持续监控,按Ctrl+c结束adblogcat-vtime>D:\log.txt#保存日志到电脑adblogcat-f/sdcard/1.txt#保存日志到手机adblogcat|findstrcom。android.bluetooth#保存指定包名的日志adblogcat-c#清除之前的日志输出adblogcat|findstrActivityManager#查看当前运行的Activityadblogcat|findstrDisplayed#查看当前运行的Activityadbbugreport#查看bug报告adblogcat-bradio#无线通信日志adbshel??ldmesg#内核日志5.设备文件操作#将电脑上的文件转移到手机存储卡上adbpushC:\Users\Administrator\Desktop\1.gif/sdcard/#将手机内存卡中的文件转移到电脑上adbpull/sdcard/1.gifC:\Users\Administrator\Desktop\6.截屏、录屏adbshel??lscreencap/sdcard/1.png#保存当前窗口截图到手机adbshel??l/system/bin/screencap-p/sdcard/2.pngadbexec-outscreencap-p>1.png#保存截图到电脑adbshel??lscreenrecord>1.mp4#Screen录制,Ctrl+c停止录制--size#Videosize--bit-rate#Bitrate--time-limit#Duration--verbose#命令行显示日志信息注意:模拟器和Android4.4以下版本不支持屏幕录制7.ShellShell有很多下面简单列出命令:命令功能cat显示文件内容cd切换目录chmod更改文件的访问方式/访问权限df查看磁盘空间使用情况grep过滤输出kill杀死指定PID的进程ls列出目录内容mount查看和管理挂载的目录mv移动或重命名文件ps查看正在运行的进程rm删除文件top查看进程的资源使用情况1).进入退出adbshel??l#进入shell并返回$,没有root权限#有root权限exit#退出shell2)。设备相关信息adbshel??lgetpro.build.version.release#Android系统版本adbshel??lgetpropro.product.model#查看设备型号adbshel??lcat/sys/class/net/wlan0/address#查看MAC地址adbshel??lwmsize#设备屏幕分辨率adbshel??lwmsize400X654#设置屏幕分辨率adbshel??lwmsizereset#恢复原屏幕分辨率adbshel??lwmdensity#设备屏幕密度adbshel??lwmdensity100#修改屏幕密度为100dpiadbshel??lwmdensityreset#恢复原屏幕密度adbshel??lwmoverscan10,20,30,100#显示区域adbshel??lwmoverscanreset#恢复原显示区域adbshel??ldumpsyswindowdisplays#显示参数adbshel??lservicelist#查看后台服务信息adbshel??lsettingsputglobaladb_enabled0#关闭USB调试模式adbshel??luiautomatordump#获取当前界面的控制信息adbshel??limelist-s#设备上的输入法3).Processadbshel??lps#查看手机正在运行的进程adbshel??lps|findstrbluetoothadbshel??lps-xpid#查看指定pid的进程状态信息adbshel??lkillpid#根据进程号杀死进程adbshel??lprocrank#杀死进程adbshel??lstartadbd#启动守护进程adbshel??lstopadbd#关闭守护进程4).性能分析adbshel??lcat/proc/cpuinfo#获取CPU序列号adbshel??lcat/proc/meminfo#查看当前内存使用情况adbshel??lcat/proc/iomem#查看IO内存分区adbremount#重新挂载系统分区为可读写分区adbshel??ldumpsysmeminfobluetooth#查看内存蓝牙占用adbshel??ldumpsyscpuinfo|findstrbluetooth#获取CPUadbshel??ltop#查看实时资源使用情况adbshel??ltop-n1|findstrbluetooth#刷新一次内存信息,然后返回蓝牙内存使用情况adbshel??ltop#查看设备cpu和内存使用情况adbshel??ltop-m6#查看top6appadbshel??ldumpsysgfxinfobluetooth#获取流畅度相关adbshel??lnetcfg#检查设备的网络连接adbshel??lifconfigwlan0#获取wlan0IP地址和子网掩码5).文件操作adbshel??lls#列出目录下的文件和文件夹adbshel??lcdsys#切换当前目录到sysadbshel??lrenameoldfilenamenewfilename#重命名文件名adbshel??lrm/sys/1.apk#delete指定目录下的文件adbshel??lrm-r#删除文件夹和其子目录在指定目录下adbshel??lmv旧文件名新文件名#Movefileadbshellchmod7771.jpg#Setfilepermissionsadbshellmkdirfoldername#Newfolderadbshellcatfile#Viewfilecontentadbshellcat/data/misc/wifi/*.conf#ViewWiFipassword6).Pressadbshellinputkeyevent3#HOMEkeyadbshellinputkeyevent4#Returnkeyadbshellinputkeyevent5#拨号adbshellinputkeyevent6#挂断adbshellinputkeyevent24#音量+adbshellinputkeyevent25#音量-adbshellinputkeyevent26#电源键adbshellinputkeyevent27#拍照adbshellinputkeyevent64#打开浏览器adbshellinputkeyevent82#菜单键adbshellinputkeyevent85#播放/暂停adbshellinputkeyevent86#停止播放adbshellinputkeyevent87#播放下一首adbshellinputkeyevent88#播放上一首adbshellinputkeyevent122#移动光标到行首或列表顶部adbshellinputkeyevent123#移动光标到行尾或列表底部adbshellinputkeyevent126#恢复播放adbshellinputkeyevent127#暂停播放adbshellinputkeyevent164#静音adbshellinputkeyevent176#打开系统设置adbshellinputkeyevent187#切换应用adbshellinputkeyevent207#打开联系人adbshellinputkeyevent208#打开日历adbshellinputkeyevent209#Openmusicadbshellinputkeyevent210#Opencalculatoradbshellinputkeyevent220#Reducescreenbrightnessadbshellinputkeyevent221#Increasescreenbrightnessadbshellinputkeyevent223#Sleepadbshellinputkeyevent224#Lightupscreenadbshellinputkeyevent231#打开语音助手adbshellinputkeyevent276#如果没有wakelock则让系统休眠7).点击,滑动屏幕adbshellinputtap100300#在(100,300)处点击adbshellinputswipe1001200100200#上滑adbshellinputswipe1002001001200#下滑8).输入adbshellinputtexthello#输入hello9).电池adbshelldumpsysbattery10).DeviceIDadbshellsettingsgetsecureandroid_id11).ThewirelessnetworkmustobtainRootpermissionbeforeoperatingadbshel??lsvcwifienable#开启WiFiadbshel??lsvcwifidisable#关闭WiFi8.端口转发adbforwardtcp:60tcp:70#将60端口转为70端口adbforwardtcp:60local:logd#将60端口转为local:logd转发9.活动管理器adbshel??lamstart-nactivitypath#启动某个活动adbshel??lamstart-aandroid.intent.action.VIEW-dwww.baidu.com#启动默认浏览器打开网页adbshel??lamstart-ncom.android.camera/.Camera#启动摄像头adbshel??lamstart-aandroid.intent.action.CALL-dtel:10086#开始拨号10086adbshel??lamstartservice-nservice#Openserviceadbshel??lamstopserviceservice#停止服务adbshel??lamforce-stopbluetooth#杀死蓝牙进程adbshel??lamkill进程号#杀死进程adbshel??lambroadcast-aandroid.intent.action.BOOT_COMPLETED#向所有组件广播设备启动10.调用包管理器adbshel??lpmlistpermissions#查看权限adbshel??lpmlistpermission-groups#输出所有已知权限组adbshel??lpmlistpermissions-d-g-f#查看系统危险权限,按组输出所有信息adbshel??lpmlistinstrumentation#列出所有测试包,-f列出测试包APK文件adbshel??lpmpathcom.android.bluetooth#查看软件安装路径adbshel??lpmlistfeatures#输出系统所有特性adbshel??lpmlistlibraries#输出当前设备支持的所有库adbshel??lpmlistusers#输出系统所有用户adbshel??lpmenable**#启用给定的包或组件(写成“package/class”)adbshel??lpmdisable**#Disableagivenpackageorcomponent(writtenas"package/class")adbshel??lpmget-max-users#输出设备支持的最大用户数11.backupadbbackup-all#备份所有数据12.PressureTestMonkey格式:adbshel??lmonkey-v-pyour.package.name500adbshel??lmonkey-v-pcom.tencent.weishi5004.总结以上就是adb的全部内容。通过对ADB的了解,相信大家应该可以通过Python编程,做出简单版的自动化工具,不再依赖Airtest,转载本文请联系IT分享之家公众号。