コード例 #1
0
 def __init__(self, strPackageName):
     self.DEFAULT_ADDRESS = ("localhost", 5037)
     self.adb = Adb(self.DEFAULT_ADDRESS)
     self.strPackageName = strPackageName
     self.strUID = self.__get_UID()
     self.listProcessInfo = self.__init_processInfo()
     self.deviceAPILevel = self.__get_androidAPILevel()
コード例 #2
0
def adb():
    # Restart ADB
    adb = Adb(DEFAULT_ADDRESS)
    adb.kill()

    proc = AdbProcess("adb", DEFAULT_ADDRESS)
    proc.start()
    return adb
コード例 #3
0
 def __init__(self):
     '''
     AndroidHandler构造函数
     '''
     self.__adb = Adb()
     self.__devices_list = self.__getConnection()
     if len(self.__devices_list) == 0:
         raise NoDeviceConnectionException
     self.__get_system_properties()
コード例 #4
0
ファイル: androidHelper.py プロジェクト: dcn01/MobileAppTest
 def __init__(self):
     '''
     AndroidHandler构造函数
     '''
     if self._adb == None:
         self._adb = Adb()
コード例 #5
0
ファイル: test_adb.py プロジェクト: bigbigzxl/PowerPerfGUI
def adb():
    adb = Adb(())
    adb.socket = MagicMock()
    return adb
コード例 #6
0
def num_devices():
    if adb_active():
        a = Adb(DEFAULT_ADDRESS)
        return len(a.devices())
コード例 #7
0
    def test_get_devices(self):
        ##############################
        # 1. 获取ABDpy实例
        #
        #1. 获取ADBpy实例
        __adbpy = Adb()

        #############################
        # 2. 获取PID_LIST
        #
        #2.1. 运行设备端命令: ps | grep taobao, 获取淘宝相关进程PID命令原始返回字符串
        __retval_1 = __adbpy.shell("ps | grep taobao")
        # print "Org_str: \t" + __retval_1
        #2.2 将命令返回原始字符串,按行拆分为PID数据记录
        __pid_list = __retval_1.split("\n")
        # print "PID List: %s : %s" % (type(__pid_list), __pid_list)
        #2.3 遍历pid列表,获取每一个PID记录中的PID值
        #2.4 定义一个列表容器,去存储获取的PID值
        __pids = []
        #2.5 遍历PID数据记录列表中的PID数据
        for __pid in __pid_list:
            #2.5.1 如果PID数据的长度<5个字符,则无效
            if len(__pid) < 5:
                pass
            #2.5.2 如果为有效数据,则按" "拆分,获取其中的第4个元素,即PID的值,存储至__pids容器里
            else:
                __pid = __pid.split(" ")[3]
                __pids.append(__pid)

        print("[INFO]PID_LIST= %s" % __pids)

        #############################
        # 3. 获取PID_PSS
        #
        # 获取PIDs容器中的每一个PID对应的PSS TOTAL值
        #3.1. 定义一个容器,用来存储 Tupple->(PID,PSS)
        __pid_pss_info = []
        #3.2. 遍历pid,获取每一个pid对应的PSS Tupple数据
        for __pid in __pids:
            # print "__pid = " + __pid
            #3.2.1 使用dumpsys meminfo ${pid}这个命令,获取原始的返回值
            __returnValue = __adbpy.shell("dumpsys meminfo %s" % __pid)
            #3.2.2 将原始的命令返回值,按行拆分成可以处理的信息
            __pid_mem_info = __returnValue.split('\n')
            # print "__pid info = %s" % __pid_mem_info
            #3.2.3 遍历每一信息,根据标记位获取PSS TOTAL值
            for i in range(len(__pid_mem_info)):
                #3.2.3.1 如果这行信息中还有,标记"Unkonwn",则他的下一行是目标行
                if __pid_mem_info[i].count("Unknown"):
                    # print "Total: %s" % __pid_mem_info[i+1]
                    #3.2.3.2 获取标记Unkonwn行的下一行
                    __pss_info = __pid_mem_info[i + 1]
                    #3.2.3.3 使用自定义的mem数据拆分方法进行pss info行数据的拆分,拆分后的第2个数值为PSS值
                    __pss = self.split_memRec(__pss_info)[1]
                    # print "PSS = %s" % __pss
                    #3.2.3.4 将当前PID与PSS值,组合成tuplle数据,存入__pid_pss_info数据结构中
                    __pid_pss_info.append((__pid, __pss))
        #完成类所有PID及其对应的PSS值的获取
        print('[INFO] PID_PSS = %s' % __pid_pss_info)

        #############################
        # 4. 计算AUT PSS总占用值
        #
        # 获取PIDs容器中的每一个PID对应的PSS TOTAL值
        #进行AUT 总PSS占用的计算
        #4.1. 先定义一个变量,记录总PSS值
        __total_pss = 0
        #4.2. 遍历PSS INFO列表中的每一个PID_PSS Tupple数据
        for __pss in __pid_pss_info:
            #2.1 获取Tuplle中的PSS值,下标为[1],进行累加
            __total_pss += int(__pss[1])
        #4.3. 获取类AUT 总PSS占用
        print("[INFO] AUT_PSS = %s" % __total_pss)