Python,MonkeyRunner。如何在所有列表软件包中找到软件包名称?
问题描述:
大家。 我正在使用python和monkeyrunner在AVD上测试应用程序,我正在编写一个脚本,可以测试应用程序是否安装。Python,MonkeyRunner。如何在所有列表软件包中找到软件包名称?
我有这样一个包名:
package_name = "package:me.abc.app"
而且我有安装在AVD用这个命令包的列表:
C:\test>adb shell pm list packages
package:com.example.android.notepad
package:com.android.smoketest
package:com.example.android.softkeyb
package:me.abc.app
package:com.android.smoketest.tests
我想编写一个脚本,在那里我可以节省该列表中的数组/列表,并做这样的事情:
If package_name is in list_of_packages
print "App is installed"
else
print "App is not installed"
我有问题怎么样ld我将这个列表保存在一个数组或列表中,使用Python。
答
最后我创建了这个函数来保存列表包,你可以在那里搜索。
def search_package_in_avd(device):
command = device.shell("pm list packages -3")
splitedline=re.split(':|\r|\n',command)
if not splitedline:
return ""
else:
return splitedline
答
你可以做这样的事情:
import subprocess
apps_proc = subprocess.Popen(["adb", "shell", "pm", "list", "packages"], shell=False, stdout=subprocess.PIPE)
list_of_packages = apps_proc.communicate()[0].decode.strip()
我还没有尝试过,但你可以用最后一行玩到得到你所需要的。