Python, MonkeyRunner. Как найти имя пакета во всех списках пакетов?

Все. Я использую python и monkeyrunner для тестовых приложений на AVD, я пишу скрипт, который может проверить, установлено приложение или нет.

У меня есть название пакета:

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"

У меня возникли проблемы с тем, как я могу сохранить этот список в массиве или список, в Python.

2 ответа

Решение

Наконец я создал эту функцию, чтобы сохранить список пакетов, и вы можете искать в этом.

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()

Я не пробовал, но вы можете играть с последней строчкой, чтобы получить то, что вам нужно.

Другие вопросы по тегам