目錄前言
popen **
結果
aapt即android asset packaging tool,在sdk的build-tools目錄下。該工具可以檢視,建立, 更新zip格式的文件附件(zip, jar, apk),也可將資源檔案編譯成二進位制檔案。aapt 命令可應用於檢視apk包名、主activity、版本等很多資訊。
popen()可以執行shell命令,並讀取此命令的返回值;當我們需要呼叫系統的命令的時候,最先考慮的os模組。用os.system()和os.popen()來進行操作。但是這兩個命令過於簡單,不能完成一些複雜的操作,如給執行的命令提供輸入或者讀取命令的輸出,判斷該命令的執行狀態,管理多個命令的並行等等。這時subprocess中的popen命令就能有效的完成我們需要的操作。
popen它的建構函式如下:
subprocess.popen(args, bufsize=0, executable=none, stdin=none, stdout=none, stderr=none, preexec_fn=none, close_fds=false, shell=false, cwd=none, env=none, universal_newlines=false, startupinfo=none, creationflags=0)
# coding=utf-8
__author__ = "enoch"
""""""
from math import floor
import os
import subprocess
class apkinfo:
# 待測試應用路徑
apkpath = "f:\\kaoyan.apk"
def __init__(self):
self.aapt = "d:\\programfiles\\android-sdk-windows\\build-tools\\28.0.3\\aapt dump badging "
def get_apk_size(self):
size = floor(os.path.getsize(self.apkpath)/(1024*1000))
return str(size) + "m"
def get_apk_version(self):
cmd = self.aapt + self.apkpath
result = ""
p = subprocess.popen(cmd, stdout=subprocess.pipe,
stderr=subprocess.pipe,
stdin=subprocess.pipe, shell=true)
(output, err) = p.communicate()
if output != "":
result = output.split()[3].decode()[12:]
result = result.split("'")[1]
return result
def get_apk_name(self):
result = ""
p = subprocess.popen(cmd, stdout=subprocess.pipe,
stderr=subprocess.pipe,
stdin=subprocess.pipe, shell=true)
(output, err) = p.communicate()
output = str(output, encoding='utf8')
if output != "":
result = output.split("'")[1]
return result
def get_apk_package(self):
cmd = self.aapt + self.apkpath + " | findstr package:"
result = ""
p = subprocess.popen(cmd, stdout=subprocess.pipe,
stderr=subprocess.pipe,
stdin=subprocess.pipe, shell=true)
(output, err) = p.communicate()
output = str(output, encoding='utf8')
if output != "":
result = output.split()[1][6:-1]
return result
# 得到啟動類
def get_apk_activity(self):
cmd = self.aapt + self.apkpath + " | findstr launchable-activity:"
result = ""
p = subprocess.popen(cmd, stdout=subprocess.pipe,
stderr=subprocess.pipe,
stdin=subprocess.pipe, shell=true)
(output, err) = p.communicate()
if output != "":
result = output.split()[1].decode()[6:-1]
return result
if __name__ == '__main__':
apkinfo = apkinfo()
print("應用名稱:", apkinfo.get_apk_name())
呼叫其他python指令碼(指令碼目錄獲取)
目錄 1.問題描述 2.解決方法 2.1 獲取呼叫的指令碼路徑 2.2執行python指令碼 3.總結 python版本 python3.7 os平台 windows7 python 指令碼執行的時候去呼叫執行其他指令碼,使用getcwd 獲取指令碼路徑不對。指令碼timerexec.py 呼叫指令...
python 獲取執行python指令碼所在目錄
今天按照libsvm官方指導手冊 使用libsvm 軟體包。本來應該按照指導,進入tools目錄,然後執行命令python easy.py svmguide1 svmguide1.t,可是我的訓練檔案和測試檔案svmguide1和svmguide1.t都不在tools那個目錄下。懶得切換工作目錄,於...
Jmeter錄製APP指令碼
一 新增執行緒組 1 啟動jmeter,開啟主介面 2 選中 測試計畫 單擊右鍵 新增 threads users 執行緒組 用於儲存錄製的指令碼 二 新增http 1 選中 工作台 單擊右鍵 新增 非測試元件 http 伺服器 2 配置http 伺服器,埠可以使用預設8080 也可以設定其他埠號 ...