@TOCmonkey壓測問題
最近有一個需求是使用monkey 壓力測試批量的安卓apk,獲取apk運行時產生的流量。然而,常常沒跑幾個,monkey就把wifi關了。。。我也是醉醉噠
設備:一臺沒有裝sim卡的華爲手機
adb shell settings put global policy_control immersive.full=*
這個方法失敗了,我猜是因爲只是隱藏了狀態欄,但是monkey依然會將其觸發(點擊)出來,然後(不小心)關閉我的wifi。
adb shell svc wifi disable adb shell svc wifi enable
這個方法我直接放棄了,root手機太麻煩了,先試試別的。
借鑑了裏面的代碼和命令
1.使用android studio編寫上述鏈接中的apk——wifi_on.apk,安裝在華爲手機上。
2.檢測wlan0是否正常(wifi是否成功連上)
def check_wifi(): cmd = 'adb shell ifconfig wlan0' r = os.popen(cmd) text = r.read() if 'RUNNING' in text: return True else: return False
def check_if_apk_run(): cmd_if_run = ' adb shell ps | findstr *** ' # ***是wifi_on.apk的包名 r = os.popen(cmd_if_run) text = r.read() if len(text)> 0 : return True else: cmd_start = 'adb shell am start -W ***/.MainActivity' #命令行啓動wifi_on,-W等待啓動成功 r = os.popen(cmd_start) text = r.read() if 'Complete' in text: return True else: return False
4.當wifi沒有連接,並且wifi_on正在運行,使用下述命令向wifi_on傳遞intent com.example.wifiON 來開啓wifi
adb shell am broadcast -a com.example.wifiON -n ***/.WifiControllerReceiver
到這裏基本就算完成了。
你以爲成功了嗎?並沒有,至少對於我來說並沒有。華爲在獲取權限時出現了下述提示:
。。。
查了一圈解決方案,好像還是需要root,用svc wifi命令實現方可繞過華爲的這個檢測。
我是誰我在哪兒我要做什麼,噢我要root手機,噢不,我選擇人工允許。
經過測試,華爲、三星均出現了上述問題,vivo未出現。
2019年3月11日補充:
三星經過下述調試可解決需手動授權的問題。