日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python调用adb shell命令_Python之使用adb shell命令启动应用的方法详解

發(fā)布時(shí)間:2023/12/10 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python调用adb shell命令_Python之使用adb shell命令启动应用的方法详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python之使用adb shell命令啟動(dòng)應(yīng)用的方法詳解

一直有一個(gè)心愿希望可以用Python做安卓自動(dòng)化功能測試,在一步步摸索中,之前是用monkeyrunner,但是發(fā)現(xiàn)對于控件ID的使用非常具有局限性,尤其是ID的內(nèi)容不便于區(qū)分

具有重復(fù)性時(shí),后面又發(fā)現(xiàn)Uiautomator可以對resorceId、text、packageName等元素進(jìn)行定位,也找到了xiaochong這位大神關(guān)于uiautomator的封裝包,鏈接如下:

https://github.com/xiaocong/uiautomator

做為一個(gè)小白,這一切都需要摸索,在克服了安裝uiautormator封裝包的問題后,又卡在啟動(dòng)應(yīng)用這個(gè)問題上,之前使用monkeyrunner時(shí)啟動(dòng)應(yīng)用使用的是如下代碼:

from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage

package = 'com.android.settings'

activity = '/.Settings'

runcomponent = package + activity

device.startActivity(component = runcomponent)

也是我無知,嘗試了很久,終于找到了adb shell am start 包名/Activity啟動(dòng),以設(shè)置應(yīng)用為例,代碼如下

import os

os.system(“adb shell am start -n com.android.settings/.Settings”)

運(yùn)行結(jié)果如下:

Starting: Intent { cmp=com.android.settings/.Settings }

0

成功進(jìn)入設(shè)置應(yīng)用界面,接下來可以嘗試其它你想做的操作了

當(dāng)然這只是解決了我在PC上運(yùn)行的問題,在查找問題時(shí)有留意到uiautomator最終是要編譯成jar文件是要放到android里面的虛擬環(huán)境去執(zhí)行命令,但是android內(nèi)部并沒有adb

環(huán)境,所以adb命令會(huì)失敗,必須得找到能夠在android也可以運(yùn)行的方法

以此做個(gè)備忘,希望自己可以在這條路上走得越來越遠(yuǎn)。

以上這篇Python之使用adb shell命令啟動(dòng)應(yīng)用的方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持我們。

時(shí)間: 2019-01-05

expect是用來實(shí)現(xiàn)自動(dòng)交互功能的工具之一,使用expect-send來實(shí)現(xiàn)交互過程. 注意: 1.腳本的執(zhí)行方法與bash shell不一樣,比如:expect example.sh 2.向一個(gè)腳本傳遞參數(shù)時(shí),bash shell是使用$1,$2...來接收參數(shù)的:而expect則將腳本的執(zhí)行參數(shù)保存在數(shù)組$argv中,在腳本中一般將其賦值給變量:set 變量名 [lindex $argv 參數(shù)] #!/usr/bin/expect set ip [lindex $argv 0] set p

經(jīng)常有同事問,刪除文件/目錄時(shí)報(bào)Operation not permitted錯(cuò)誤,這個(gè)要如何處理?! 這個(gè)一般是權(quán)限的問題,比如: 1. 普通用戶且有足夠的權(quán)限的話,一般文件夾可能是別的服務(wù)/進(jìn)程掉用該文件夾 lsof +D? /Dir/Your/Want/To/Delete/ 先執(zhí)行上面的命令,查詢到調(diào)用該文件夾的進(jìn)程IDs,然后再kill掉,這個(gè)時(shí)候應(yīng)該就可以刪了! 2. 普通用戶且缺乏權(quán)限的話,如果要?jiǎng)h除該文件夾則要借助su或者sudo命令來刪除 3. 如果是root用戶,依然報(bào)上面的錯(cuò)

經(jīng)常碰到的場景,需要去除字符串中的前后的空格.在Shell中不像其他語言有strip()來處理,不過也是可以使用諸如awk等命令來處理. 下面是一個(gè)簡單示例: [root@localhost ~]# echo ' A B C ' | awk '{gsub(/^\s+|\s+$/, "");print}' ^\s+? ? ? ? ? ? 匹配行首一個(gè)或多個(gè)空格 \s+$? ? ? ? ? ? 匹配行末一個(gè)或多個(gè)空格 ^\s+|\s+$? ? 同時(shí)匹配行首或者行末的空格 如果不用awk命令

當(dāng)前目錄下多個(gè)文件合并為一個(gè)文件 1.將多個(gè)文件合并為一個(gè)文件沒有添加換行符 find ./ -name "iptv_authenticate_201801*" | xargs cat > iptv_authenticate.txt 2.設(shè)置換行符^J find ./ -name "iptv_authenticate_201801*" | xargs sed 'a\^J' > iptv_authenticate.txt 3.默認(rèn)換行符 find ./ -

1.問題 我們一般很多時(shí)候會(huì)需要在ubuntu終端上打印當(dāng)前運(yùn)行app的日志,我們一般常見的做法是 1).獲取包名 打開當(dāng)前運(yùn)行的app,然后輸入如下命令,然后在第一行TASK后面的就可以看到包名 adb shell dumpsys activity top 2).我們的終端安裝了pidcat.py腳本,然后執(zhí)行如下的命令就可以打印當(dāng)前運(yùn)行app的全日志, pidcat.py packageName 3).思考,為什么每次都需要這樣重復(fù)的操作呢?一說到重復(fù),我們應(yīng)該立馬想到是否可以用腳本解決重復(fù)

由于一些不可抗拒的原因,項(xiàng)目部署后需要定時(shí)檢測項(xiàng)目是否正常運(yùn)行,否則將執(zhí)行重啟命令. 在具體實(shí)施過程中發(fā)現(xiàn),定時(shí)器執(zhí)行無誤,但是重啟命令無法正常啟動(dòng).多方查找發(fā)現(xiàn)Shell腳本中的Java命令需要引入環(huán)境變量方可正常執(zhí)行.因此做了一下修改,腳本如下(僅供參考): 1.crontab執(zhí)行配置 * * * * * cd /項(xiàng)目目錄 && ./auto_start.sh >> /log/auto.out 2.Shell腳本 #!/bin/bash #導(dǎo)入環(huán)境變量 export LAN

要合并以下兩個(gè)文件,一起合并在一起,合并到1.txt中 # 1.txt Jerry 20 Alice 30 David 40 # 2.txt Jerry man Alice woman David 40 合并的后的1.txt Jerry 20 man Alice 30 woman David 40 上面的文件特點(diǎn)是有相同的,則合并,第二列缺少內(nèi)容的.這個(gè)時(shí)候使用join -a1 1.txt 2.txt就可以很好的達(dá)到目的. [root@host ~]# join -a1 1.txt 2.txt

在進(jìn)行l(wèi)inux測試時(shí)編寫腳本是必不可少的.最近經(jīng)常使用Linux,感覺太頻繁地敲擊鍵盤有些累了,于是想到了Shell腳本.可以把太多的命令寫成一個(gè)腳本,這樣每次執(zhí)行一遍? shell文件,就可以省去了敲擊鍵盤的時(shí)間.于是在網(wǎng)上搜了一些有關(guān)Linux下腳本編程的內(nèi)容. Shell不僅僅是命令的收集,而且是一門非常棒的編程語言.您可以通過使用shell使大量的任務(wù)自動(dòng)化,shell特別擅長系統(tǒng)管理任務(wù),尤其適合那些易用性.可維護(hù)性和便攜性比效率更重要的任務(wù). 用戶可以使用任何文本編輯器編輯shel

在linux shell環(huán)境下直接調(diào)用就可以,根據(jù)官網(wǎng)所述:在訪問Zabbix中的任何數(shù)據(jù)之前,你需要登錄并獲取身份驗(yàn)證令牌.這可以使用該 user.login 方法完成. [root@localhost ~]# curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"user.login","params

需求:根據(jù)MAC獲取,MAC對應(yīng)的硬件版本和軟件版本.在根據(jù)硬件版本統(tǒng)計(jì)MAC的數(shù)量 $ head test_1.txt 00:07:67,EC2108,HWV010537P0000 00:07:63,Z83,ZNV861010P1225 00:07:67,EC6108V9U_ca_sccdx,HWV218012P0000 00:07:63,SBox8900hisi3716V3,ZGV865012P0001 00:07:67,EC6108V9U_ca_sccdx,HWV218012P0000 0

用Python寫運(yùn)維腳本時(shí),經(jīng)常需要執(zhí)行l(wèi)inux shell的命令,Python中的commands模塊專門用于調(diào)用Linux shell命令,并返回狀態(tài)和結(jié)果,下面是commands模塊的3個(gè)主要函數(shù): 1. commands.getoutput('shell command') 執(zhí)行shell命令,返回結(jié)果(string類型) 復(fù)制代碼 代碼如下: >>> commands.getoutput('pwd') '/home/oracle' 2. commands.getstatus(

分享一個(gè)統(tǒng)計(jì)代碼行的shell命令: find . "(" -name ".java" -or -name ".html" -or -name ".js" -or -name ".css" ")" -print | xargs wc -l 根據(jù)不同的項(xiàng)目類型,不同的目錄,自行修改. 如果內(nèi)容多,可以: find . "(" -name ".java&quot

前言 linux shell命令通常可以通過-h或--help來打印幫助說明,或者通過man命令來查看幫助,有時(shí)候我們也會(huì)給自己的程序?qū)懞唵蔚膸椭f明,其實(shí)幫助說明格式是有規(guī)律可循的 幫助示例 下面是git reset命令的幫助說明,通過man git-reset可以查看 git reset [-q] [] [--] ... git reset (--patch | -p) [] [--] [

問題描述:在linux shell中如何處理tail -n 10 access.log這樣的命令行選項(xiàng)?在bash中,可以用以下三種方式來處理命令行參數(shù),每種方式都有自己的應(yīng)用場景.1,直接處理,依次對$1,$2,...,$n進(jìn)行解析,分別手工處理:2,getopts來處理,單個(gè)字符選項(xiàng)的情況(如:-n 10 -f file.txt等選項(xiàng)):3,getopt,可以處理單個(gè)字符選項(xiàng),也可以處理長選項(xiàng)long-option(如:--prefix=/home等).總結(jié):小腳本手工處理即可,getopt

本文實(shí)例講述了Python統(tǒng)計(jì)文件中去重后uuid個(gè)數(shù)的方法.分享給大家供大家參考.具體如下: 利用正則表達(dá)式按行獲取日志文件中的的uuid,并且統(tǒng)計(jì)這些uuid的去重個(gè)數(shù)(去重利用set) import re pattern=re.compile(r'&uuid=.*&') uuidset=set() with open('request.log.2015-05-26','rt') as f: for line in f: all=pattern.findall(line) if len

前言 大家都知道,通過使用 shell 命令可以很方便地對日志進(jìn)行統(tǒng)計(jì)和分析,當(dāng)服務(wù)有異常的時(shí)候,需要去排查日志,那么掌握一種統(tǒng)計(jì)日志的技巧就是必不可少的了. 假設(shè)有一個(gè)包含下面內(nèi)容的日志文件 access.log.我們以統(tǒng)計(jì)這個(gè)文件的日志為例. date=2017-09-23 13:32:50 | ip=40.80.31.153 | method=GET | url=/api/foo/bar?params=something | status=200 | time=9.703 | bytes=

習(xí)慣使用linux命令行來管理linux系統(tǒng),例如: 復(fù)制代碼 代碼如下: $ date 二 11 23 01:34:58 CST 1999? $ 用戶登錄時(shí),實(shí)際進(jìn)入了shell,它遵循一定的語法將輸入的命令加以解釋并傳給系統(tǒng).命令行中輸入的第一個(gè)字必須是一個(gè)命令的名字,第二個(gè)字是命令的選項(xiàng)或參數(shù),命令行中的每個(gè)字必須由空格或TAB隔開,格式如下:? 復(fù)制代碼 代碼如下: $ Command Option Arguments 一,選項(xiàng)和參數(shù) 選項(xiàng)是包括一個(gè)或多個(gè)字母的代碼,它前面有一個(gè)減號(減

最近都需要在 Linux 系統(tǒng)下開發(fā),所以經(jīng)常需要在終端中進(jìn)行操作.Linux 有很多 shell 命令可以幫助我們完成任務(wù),但不常使用的話就會(huì)忘記掉. 本篇作為命令備忘錄,我會(huì)將實(shí)際工作當(dāng)中用到的命令記錄下來,并長期保持更新. 1.which which 用于查找一個(gè)文件,并返回絕對路徑,查找的目錄范圍由系統(tǒng)的 PATH 指定. 由于 Linux 中一切皆文件,所以 which 指定更多的是查找系統(tǒng)中有沒有這個(gè)命令. 比如,查找 ls 命令,我們可知它的可執(zhí)行文件的位置 which ls /b

在Ruby中,執(zhí)行shell命令是一件不奇怪的事情,Ruby提供了大概6種方法供開發(fā)者進(jìn)行實(shí)現(xiàn).這些方法都很簡單,本文將具體介紹一下如何在Ruby腳本中進(jìn)行調(diào)用終端命令. exec exec會(huì)將指定的命令替換掉當(dāng)前進(jìn)程中的操作,指定命令結(jié)束后,進(jìn)程結(jié)束. 復(fù)制代碼 代碼如下: exec 'echo "hello world"' print 'abc' 執(zhí)行上述的命令,結(jié)果如下,我們可以看到?jīng)]有abc的輸出,可以看出來,在執(zhí)行echo "hello world"命令后

總結(jié)

以上是生活随笔為你收集整理的python调用adb shell命令_Python之使用adb shell命令启动应用的方法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。