国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

三種方式自動化控制APP

移動開發
自動化控制APP不管是在工作還是生活方面,都可以幫助我們高效地完成任務,節省時間和精力。本文主要介紹自動化控制APP的三種常用方式。

自動化控制APP不管是在工作還是生活方面,都可以幫助我們高效地完成任務,節省時間和精力。本文主要介紹自動化控制APP的3種常用方式。

一、Python + adb

這種方式需要對Android有一些基本的了解。adb是一種用于調試Android應用程序的工具。使用Python和adb可以輕松實現自動化控制移動端APP。

1.特點

這種方式最簡單,但是控制效果也最粗糙。不同的手機對應的元素x,y軸的位置不同,所以不適合操作不同尺寸的所有手機。這種方式也只適合于開發者,對于普通用戶使用成本過高。

2.使用步驟

(1) 安裝Android SDK

具體細節略過,自行google安裝。安裝完畢后,配置好ANDROID_HOME環境變量。

(2) 安裝Python

具體細節略過,自行google安裝。

(3) 打開手機的開發者模式

同時開啟USB調試和顯示指針位置。

(4) 此時操作手機

可以看到有2根軸,同時最上方會顯示頁面焦點元素的x,y軸位置。

(5) 使用Python代碼+adb簡單控制APP

import time
import subprocess

# 點擊某個位置
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input tap 564  1861")
time.sleep(2)
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input tap 188  980")
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input tap 869  1808")
time.sleep(4)
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input tap 320  965")
# 輸入數據
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input text 15850501595")
# 按返回鍵
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input keyevent KEYCODE_BACK")
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input tap 512  1120")
# 輸入數據
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input text 15850501595")
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input keyevent KEYCODE_BACK")
subprocess.getoutput(f"adb -s Y2J7N17C27000069 shell input tap 843  1824")

(6) adb常用命令

- 查看手機設備:adb devices
- 查看設備型號:adb shell getprop ro.product.model
- 查看電池信息:adb shell dumpsys battery
- 查看設備ID:adb shell settings get secure android_id
- 查看設備IMEI:adb shell dumpsys iphonesubinfo
- 查看Android版本:adb shell getprop ro.build.version.release
- 查看手機網絡信息:adb shell ifconfig
- 查看設備日志:adb logcat
- 重啟手機設備:adb reboot
- 安裝一個apk:adb install /path/demo.apk
- 卸載一個apk:adb uninstall <package>
- 查看系統運行進程:adb shell ps
- 查看系統磁盤情況:adb shell ls /path/
- 手機設備截屏:adb shell screencap -p /sdcard/aa.png
- 手機文件下載到電腦:adb pull /sdcard/aa.png ./
- 電腦文件上傳到手機:adb push aa.png /data/local/
- 手機設備錄像:adb shell screenrecord /sdcard/ab.mp4
- 手機屏幕分辨率:adb shell wm size
- 手機屏幕密度:adb shell wm density
- 手機屏幕點擊:adb -s xxxxxxxxxxxxxxxxxxxxxxxxx shell input tap xvalue yvalue
- 手機屏幕滑動:adb shell input swipe 1000 1500 200 200
- 手機屏幕帶時間滑動:adb shell input swipe 1000 1500 0 0 1000
- 手機文本輸入:adb shell input text xxxxx
- 手機鍵盤事件:adb shell input keyevent xxxx

二、Android無障礙

這種方式是使用Android無障礙功能實現自動控制APP的效果。需要開啟Android無障礙功能,然后編寫Android代碼來控制另外的APP應用。

1.特點

這種方式需要開發者對Android有一些開發經驗。優點是:可以用Android開發出獨立的apk安裝包,安裝到普通用戶手機里,方便用戶使用。

2.使用步驟

(1) 安裝Android SDK、安裝Android Studio

具體細節略過,自行google安裝。安裝完畢后,配置好ANDROID_HOME環境變量。

(2) 使用Android自帶的tool工具

Android在level-21和之前的低版本,安裝完畢后有一個tool工具包,但是高版本移除了此工具包。所以在安裝SDK時還需要加上level-21版本。

使用Android自帶的tool工具,主要是為了查看APP的頁面布局和元素。但是monitor已經不可用了,只能使用uiAutormatorViewer。

(3) 利用uiAutormatorViewer工具找到元素信息

用uiAutormatorViewer查看頁面元素所在的x,y軸的布局。然后編寫Android代碼控制點擊等效果。此工具顯示出來的界面如下:

(4) 代碼示例

在AndroidManifest.xml代碼里配置無障礙service,然后實現AccessibilityService類,實現onAccessibilityEvent方法。后續手機界面如果有變動,內部會自動觸發調用onAccessibilityEvent方法。

public class XXXXXAccessibilityService extends AccessibilityService {
    @Override
    public void onInterrupt() {

    }

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        Log.e("無障礙", "來了");
        
        // 創建線程去執行任務
        new Thread(new Runnable() {
            @Override
            public void run() {
                // 后續代碼
            }
        }).start();
    }
}

無障礙功能本身也提供了多種尋找頁面元素的方法,比如:

/**
 * 根據ID找元素
 */
private AccessibilityNodeInfo findNodeById(String id) {
    AccessibilityNodeInfo root = getRootInActiveWindow();
    if (root == null) {
        return null;
    }
    List<AccessibilityNodeInfo> nodeList = root.findAccessibilityNodeInfosByViewId(id);
    if (nodeList != null) {
        for (int i = 0; i < nodeList.size(); i++) {
            AccessibilityNodeInfo node = nodeList.get(i);
            if (node != null) {
                return node;
            }
        }
    }
    return null

三、Python + Appium

Python加Appium可以組合成為一種自動化測試工具,可以用于測試和自動化控制移動端APP。

1.特點

這種方式可以自動化操作APP,但是使用者基本是開發者,普通用戶很難完成這一系列的操作。但是也有個優點,有些頁面標記為不可點擊的元素,通過這種方式是可以點擊的。

Appium提供了更多的尋找頁面元素的方式,比如uiautomator、xpath、id等。

2.使用步驟

(1) 安裝Python

此處略過步驟,自行google。

(2) 安裝Appium

老版本的Appium直接包含了Appium server 和 Appium inspector,新版本的Appium安裝完畢后,需要在單獨安裝Appium inspector。通過Appium inspector可以查看手機當前頁面的xml布局。

# 安裝appium
npm i --location=global appium

# 安裝自動查看UI頁面的驅動
appium   uiautomator2driver

# 安裝inspector
下載安裝地址:https://github.com/appium/appium-inspector?tab=readme-ov-file

# 啟動server
appium server --use-driver=uiautomator2

# 安裝客戶端,代碼里會使用 appium-python-client 與server通信,
# 然后server在將指令下發到手機里的appium端
pip3 install appium-python-client

(3) 使用過程

安裝完畢后,就可以通過Python代碼控制App了。

  • 啟動Appium-server,appium uiautomator2driver。
  • 啟動Appium inspector,配置好手機,然后點擊start session,界面如下:

  • 通過Appium inspector查看頁面布局和元素,找出目標元素。

  • 編寫代碼:
device_app_info = AppiumOptions()
# 操作系統
device_app_info.set_capability('platformName', 'Android')
# 操作系統版本
# device_app_info.set_capability('platformVersion', '10')
device_app_info.set_capability('platformVersion', '9')
# 設備名稱
# device_app_info.set_capability('deviceName', '46F4C19402000952')
device_app_info.set_capability('deviceName', 'Y2J7N17C27000069')
# app package
device_app_info.set_capability('appPackage', 'cn.damai')
# app activity name
device_app_info.set_capability('appActivity', '.launcher.splash.SplashMainActivity')
# 使用uiautomator2驅動
device_app_info.set_capability('automationName', 'UiAutomator2')

# 連接appium server,server地址查看appium啟動信息
driver = webdriver.Remote('http://127.0.0.1:4723', options=device_app_info)

# 找到元素,控制元素
buy_btn = driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().resourceId("cn.damai:id/trade_project_detail_purchase_status_bar_container_fl")')
if buy_btn:
    buy_btn.click()

四、總結

以上3種方式都可以用于自動化控制移動端APP,但是又各有適用的場景。讀者需根據實際情況選擇其中的一種方式來實現自動化控制。

以上的方式也可以認為是一種爬蟲。還有一些自動化的方式是:先分析api請求,然后逆向分析js或者逆向分析apk包,破解其中的加密方式。然后直接調用api,這種方式后面單獨講解。

責任編輯:趙寧寧 來源: 不焦躁程序員
相關推薦

2022-04-08 10:21:35

IT自動化數字化轉型首席信息官

2009-07-20 15:08:41

Spring實例化Be

2015-10-21 14:23:08

反模式持續部署自動化運維

2012-07-17 09:16:16

SpringSSH

2024-07-08 09:03:31

2010-10-26 13:33:08

Oracle自動備份

2011-04-08 11:13:50

CISCO IOS令牌桶雙桶

2010-06-13 16:04:14

MySQL三種安裝方式

2020-11-01 17:10:46

異步事件開發前端

2010-03-12 17:52:35

Python輸入方式

2021-11-05 21:33:28

Redis數據高并發

2019-11-20 18:52:24

物聯網智能照明智能恒溫器

2009-07-03 18:32:18

JSP頁面跳轉

2014-07-30 17:10:38

LVS集群負載均衡

2021-06-24 08:52:19

單點登錄代碼前端

2014-12-31 17:42:47

LBSAndroid地圖

2023-05-16 07:26:17

2023-08-10 14:14:19

數字化轉型CIO

2018-01-08 16:58:31

營銷自動化

2023-10-18 11:12:01

增強現實VR
點贊
收藏

51CTO技術棧公眾號

av免费观看大全| 欧美草逼视频| 黄色电影免费在线看| av在线精品| 久久99久久久欧美国产| 狠狠色丁香久久婷婷综| 国产精品乱码久久久久久| 国产亚洲精久久久久久| 欧美草草影院在线视频| 成人伊人精品色xxxx视频| jizz性欧美23| www亚洲精品| 芒果视频成人app| 日韩美一区二区三区| av在线天堂| 精品1区2区3区| www视频在线观看免费| 日本高清不卡视频| 天堂中文在线资| 色一情一乱一乱一91av| 久久天堂电影| 欧美三级一区二区| 欧美精品电影| 日韩一级片网站| 男女在线视频| 亚洲大胆人体视频| 激情开心成人网| 久久精品99国产精品酒店日本| 精品国产三区在线| 久久久久久91| 国产传媒欧美日韩成人精品大片| 国产精品久久久久免费a∨| 我不卡神马影院| 麻豆亚洲一区| 韩国av一区二区三区在线观看| 欧美一级中文字幕| 91在线丨porny丨国产| 羞羞的视频网站| 亚洲图片欧美视频| 3p在线观看| 亚洲欧洲午夜一线一品| 欧美高清一级片| 国产极品精品在线观看| 国内精品久久久久久久影视简单| 亚洲最大av网| 另类小说欧美激情| 男人插女人下面免费视频| 欧美日韩精品中文字幕| 青青在线视频| 久久香蕉国产线看观看av| 成人三级视频| 亚洲美女搞黄| 日韩美女视频一区二区| 国产高清视频在线观看| 日韩精品在线视频观看| 欧美激情三级| 亚洲一区二区三区sesese| 激情久久久久久久久久久久久久久久| 91淫黄看大片| 欧美日韩中字一区| 人人精品久久| 国产免费一区视频观看免费| 看电视剧不卡顿的网站| 成人拍拍拍在线观看| 日韩一区二区三区在线视频| 伊人久久综合网另类网站| 亚洲xxxxx| 成人一区二区三区视频在线观看| 黄色污网站在线免费观看| 欧美精品一区二区三区很污很色的| 中文一区二区三区四区| 国产在线一区二| 国产拍欧美日韩视频二区 | 成久久久网站| 一区二区三区视频| 亚洲一区二区三区四区在线观看| 蜜臀久久精品| 91久久久久久久久久久久久| 国产乱码精品1区2区3区| 亚洲精品套图| 欧美日本高清视频| 免费在线看一区| 亚洲激情文学| 久久99久国产精品黄毛片入口| 亚洲主播在线| 羞羞在线视频| 国产亚洲精品久久久久久牛牛| 欧美激情1区| 99热在线免费观看| 亚洲美女www午夜| 在线国产日韩| 免费一级大片| 欧美xxxx14xxxxx性爽| 老鸭窝一区二区久久精品| 一级黄色在线| 国内精品一区二区三区四区| 国产经典欧美精品| 久久99精品久久| 国产日韩中文字幕| 亚洲视频在线观看一区| 欧美电影在线观看网站| 日韩欧美一区二区在线观看 | 亚洲国产日韩精品在线| 欧美成人亚洲| 全部孕妇毛片丰满孕妇孕| 久久艳片www.17c.com| 久久国产夜色精品鲁鲁99| 中文字幕日本在线| 成人福利网站在线观看11| 中文字幕日本不卡| 欧洲精品99毛片免费高清观看| 成年人深夜视频| 亚洲国产欧美一区| 三级欧美在线一区| 一区二区三区视频网站| 成人免费观看网站| 在线视频你懂得一区二区三区| 青青草国产免费一区二区下载| 国产精品v亚洲精品v日韩精品| 久草在线在线视频| 亚洲码在线观看| 欧美精品自拍| 成黄免费在线| 国产精品免费一区| 久久精品亚洲麻豆av一区二区 | 精品国产亚洲一区二区三区| 5g国产欧美日韩视频| 久久久久久黄| 91蝌蚪视频在线观看| 91九色porn在线资源| 午夜精品福利在线观看| 成r视频免费观看在线播放| 91国内在线视频| 国产精品毛片高清在线完整版| 国产精品视频首页| 中文字幕无码精品亚洲35| xxx成人少妇69| 久久久久久9999| av在线亚洲色图| 16—17女人毛片毛片| 日韩免费在线视频| 五月天激情综合| 你懂的网址国产 欧美| www 日韩| 婷婷五月色综合| 中文字幕国产亚洲2019| 久久婷婷国产综合精品青草| y111111国产精品久久久| 欧美高清xxxxxkkkkk| 97视频热人人精品| 欧美精品久久久久久久多人混战| 青椒成人免费视频| 欧美成人毛片| 日本桃色视频| 久久99精品久久久久久秒播放器| 欧美岛国在线观看| 高清成人在线观看| 国产亚洲精品美女久久| 一二三四社区在线视频6| 国产精品久久亚洲7777| 亚洲精品大尺度| 99re这里只有精品6| 国产精品一区二区av日韩在线 | 福利一区二区在线| 国产精品毛片av| 久久经典视频| 国产免费内射又粗又爽密桃视频| 欧美大片免费观看在线观看网站推荐| 亚洲国产一二三| 青青国产91久久久久久| 国产香蕉精品| 国产福利在线播放麻豆| 黑鬼大战白妞高潮喷白浆| 亚洲www在线观看| 亚洲欧美日韩中文在线制服| 国产精品久久久久久久久久久免费看| 自拍偷拍欧美| jizz亚洲女人高潮大叫| 中文在线有码| 日本道在线视频| 国产精品视频资源| 精品久久久三级丝袜| 日韩一区在线播放| 美国一区二区三区在线播放| 亚洲免费成人av在线| caopon在线免费视频| 亚洲天堂av线| 欧洲精品久久| 清纯唯美亚洲综合| 日韩精品在线观看视频| 亚洲成人精品一区二区| 激情综合久久| 国产伦精品一区二区三区视频青涩| 国产精品三级| 黄色日韩网站| 在线看片国产福利你懂的| 在线免费观看黄色| 男人用嘴添女人下身免费视频| 欧美连裤袜在线视频| 国产91精品最新在线播放|