2015-02-11 110 views
2

大家。 我正在使用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。

回答

0

最後我創建了這個函數來保存列表包,你可以在那裏搜索。

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 
1

你可以做這樣的事情:

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

我還沒有嘗試過,但你可以用最後一行玩到得到你所需要的。

相關問題