标签:方式 ss 换种 app npackage aweme 手机 android com
adb
uiautomator2
设备管理
查询已连接设备/模拟器
$ adb devices
List of devices attached
cf264b8f device
emulator-5554 device
10.129.164.6:5555 device
查看设备信息
d.info
{'currentPackageName': 'com.ss.android.ugc.aweme', 'displayHeight': 1280, 'displayRotation': 0, 'displaySizeDpX': 411, 'displaySizeDpY': 731, 'displayWidth': 720, 'productName': 'cancro', 'screenOn': True, 'sdkInt': 23, 'naturalOrientation': True}
查看WLAN ip
d.wlan_ip
10.0.2.15
查看设备详细信息
{'udid': 'ZX1G42CPJD-08:00:27:81:24:f1-MIX_2', 'version': '6.0.1', 'serial': 'ZX1G42CPJD', 'brand': 'Xiaomi', 'model': 'MIX 2', 'hwaddr': '08:00:27:81:24:f1', 'port': 7912, 'sdk': 23, 'agentVersion': '0.9.5', 'display': {'width': 720, 'height': 1280}, 'battery': {'acPowered': True, 'usbPowered': False, 'wirelessPowered': False, 'status': 2, 'health': 2, 'present': True, 'level': 47, 'scale': 100, 'voltage': 3836, 'temperature': 251, 'technology': 'Li-poly'}, 'memory': {'total': 3628052, 'around': '3 GB'}, 'arch': '', 'owner': None, 'presenceChangedAt': '0001-01-01T00:00:00Z', 'usingBeganAt': '0001-01-01T00:00:00Z', 'product': None, 'provider': None}
将文件推送到设备
d.push("foo.txt", "/sdcard/")
从设备中拉出文件
d.pull("/sdcard/tmp.txt", "tmp.txt")
在设备中执行命令
output, exit_code = d.shell("pm list packages", timeout=60) # timeout 60s (Default)
{"error":null,"exitCode":0,"output":"package:com.github.uiautomator\npackage:com.hpbr.bosszhipin\npackage:com.android.providers.telephony\npackage:io.appium.settings\npackage:com.android.providers.calendar\npackage:com.android.providers.media\npackage:com.sohu.inputmethod.sogou\npackage:com.android.wallpapercropper\npackage:com.minhui.networkcapture\npackage:com.android.documentsui\npackage:com.android.galaxy4\npackage:com.android.externalstorage\npackage:com.android.htmlviewer\npackage:cn.com.open.mooc\npackage:com.android.quicksearchbox\npackage:com.android.mms.service\npackage:com.android.providers.downloads\npackage:com.github.uiautomator.test\npackage:com.android.browser\npackage:com.tal.kaoyan\npackage:io.appium.uiautomator2.server\npackage:com.android.defcontainer\npackage:de.robv.android.xposed.installer\npackage:com.droider.crackme0201\npackage:com.android.providers.downloads.ui\npackage:com.android.pacprocessor\npackage:com.xingin.xhs\npackage:com.tencent.mm\npackage:com.android.certinstaller\npackage:com.cxdosx.gowifisetting\npackage:com.cubic.choosecar\npackage:android\npackage:com.tencent.android.qqdownloader\npackage:com.android.camera2\npackage:com.baidu.searchbox\npackage:com.android.backupconfirm\npackage:com.yoho\npackage:com.android.provision\npackage:com.android.statementservice\npackage:bin.mt.plus\npackage:com.android.wallpaper.holospiral\npackage:com.android.phasebeam\npackage:com.android.providers.settings\npackage:just.trust.me\npackage:com.android.sharedstoragebackup\npackage:com.android.printspooler\npackage:com.tencent.qqlite\npackage:com.android.webview\npackage:com.android.inputdevices\npackage:com.xunmeng.pinduoduo\npackage:com.google.android.apps.maps\npackage:com.android.server.telecom\npackage:com.android.keychain\npackage:com.android.chrome\npackage:com.buscode.whatsinput\npackage:com.android.gallery3d\npackage:com.ss.android.ugc.aweme\npackage:com.android.calllogbackup\npackage:com.tencent.mobileqq\npackage:com.android.packageinstaller\npackage:com.android.proxyhandler\npackage:com.cyanogenmod.filemanager\npackage:io.dcloud.H5EA954BB\npackage:app.greyshirts.sslcapture\npackage:io.appium.uiautomator2.server.test\npackage:com.android.wallpaper.livepicker\npackage:com.zhuanzhuan.check\npackage:jackpal.androidterm\npackage:com.android.settings\npackage:com.nice.main\npackage:com.android.wallpaper\npackage:com.android.vpndialogs\npackage:com.sina.weibo\npackage:com.android.phone\npackage:com.android.shell\npackage:com.android.providers.userdictionary\npackage:com.hupan.app\npackage:com.android.location.fused\npackage:com.android.systemui\npackage:com.android.bluetoothmidiservice\npackage:io.kkzs\npackage:tv.danmaku.bili\npackage:com.android.captiveportallogin\npackage:org.geekbang.geekTime\n"}
APP管理
安装apk
-
push apk 文件到 /data/local/tmp。
-
调用 pm install 安装。
-
删除 /data/local/tmp 下的对应 apk 文件。
卸载apk
adb uninstall com.ss.android.ugc.aweme
启动app
d.app_start("com.ss.android.ugc.aweme")
停止app
d.app_stop("com.ss.android.ugc.aweme")
清除app数据
d.app_clear('com.ss.android.ugc.aweme')
获取当前的应用信息
d.app_current()
{'package': 'com.ss.android.ugc.aweme', 'activity': 'com.ss.android.ugc.aweme.splash.SplashActivity'}
停止所有的app
d.app_stop_all()
获得app信息
d.app_info("com.examples.demo")
{"data":{"packageName":"com.ss.android.ugc.aweme","mainActivity":"com.ss.android.ugc.aweme.main.MainActivity","label":"抖音短视频","versionName":"10.6.0","versionCode":100601,"size":82302370},"success":true}
获得所有正在运行的app
d.app_list_running()
['com.android.gallery3d', 'com.android.defcontainer', 'com.android.keychain', 'com.android.statementservice', 'com.android.shell', 'com.android.documentsui', 'com.ss.android.ugc.aweme', 'com.android.externalstorage', 'com.android.phone', 'com.tencent.mm', 'com.android.systemui']
查看应用列表
d.app_list()
支持的参数
支持的过滤参数如下:
参数 | 显示列表 |
---|---|
无 | 所有应用 |
-f | 显示应用关联的 apk 文件 |
-d | 只显示 disabled 的应用 |
-e | 只显示 enabled 的应用 |
-s | 只显示系统应用 |
-3 | 只显示第三方应用 |
-i | 显示应用的 installer |
-u | 包含已卸载应用 |
<FILTER> | 包名包含 <FILTER> 字符串 |
与APP的交互
手势交互
按压
d.press("back")
滑动
d.swipe(sx, sy, ex, ey)
点击
d.click(x, y)
对元素进行监控
注册监控
d.watcher("ANR").when(xpath="ANR").when("Force Close").click()
开启监控
d.watcher.start(2.0) # 默认监控间隔2.0s
停止监控
d.watcher.stop()
截图
im = d(text="Settings").screenshot()
im.save("settings.jpg")
视频录制
d.screenrecord('output.mp4')
time.sleep(10)
# or do something else
d.screenrecord.stop() # 停止录制后,output.mp4文件才能打开
图像匹配
imdata = "target.png" # 也可以是URL, PIL.Image或OpenCV打开的图像
d.image.match(imdata)
# 匹配待查找的图片,立刻返回一个结果
# 返回一个dict, eg: {"similarity": 0.9, "point": [200, 300]}
d.image.click(imdata, timeout=20.0)
# 在20s的时间内调用match轮询查找图片,当similarity>0.9时,执行点击操作
标签:方式,ss,换种,app,npackage,aweme,手机,android,com 来源: https://blog.csdn.net/longjuanfengzc/article/details/109922438
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。