コード例 #1
0
class AndroidHandler():
    '''android系统及设备相关功能实现'''
    def __init__(self):
        '''
        AndroidHandler构造函数
        '''
        self.__adb = Adb()
        self.__devices_list = self.__getConnection()
        if len(self.__devices_list) == 0:
            raise NoDeviceConnectionException
        self.__get_system_properties()

    def __getConnection(self):
        '''
        获取设备连接状态
        :return: 连接的设备列表
        '''
        __ret_device_list = []
        try:
            __devices_list = self.__adb.devices()
        except Exception, e:
            print str(e)
            raise ADBServerException
        if len(__devices_list) == 0:
            pass
        else:
            for __dev in __devices_list:
                if not __dev[1] == 'device':
                    raise DeviceStatuException
                __ret_device_list.append(__dev)
        return __ret_device_list
コード例 #2
0
ファイル: android_helper.py プロジェクト: zenist/ZLib
class AndroidHandler():
    '''android系统及设备相关功能实现'''

    def __init__(self):
        '''
        AndroidHandler构造函数
        '''
        self.__adb = Adb()
        self.__devices_list = self.__getConnection()
        if len(self.__devices_list) == 0:
            raise NoDeviceConnectionException
        self.__get_system_properties()

    def __getConnection(self):
        '''
        获取设备连接状态
        :return: 连接的设备列表
        '''
        __ret_device_list = []
        try:
            __devices_list = self.__adb.devices()
        except Exception, e:
            print str(e)
            raise ADBServerException
        if len(__devices_list) == 0:
            pass
        else:
            for __dev in __devices_list:
                if not __dev[1] == 'device':
                    raise DeviceStatuException
                __ret_device_list.append(__dev)
        return __ret_device_list
コード例 #3
0
ファイル: androidHelper.py プロジェクト: dcn01/MobileAppTest
class AndroidHandler():
    '''android系统及设备相关功能实现'''

    DISPLAY_SIZE = (480, 600)
    _adb = None

    def __init__(self):
        '''
        AndroidHandler构造函数
        '''
        if self._adb == None:
            self._adb = Adb()

    def getConnection(self):
        '''
        获取设备连接状态
        :return: 连接的设备列表
        '''
        __ret_device_list = []
        __devices_list = self._adb.devices()
        if len(__devices_list) == 0:
            pass
        else:
            for _dev in __devices_list:
                __ret_device_list.append(_dev[0])

        return __ret_device_list

    def shell(self, cmd, serial=None, timeout=None):
        '''
        运行设备端命令
        :param shell_cmd: 命令
        :param timeout: 超时时间,默认无
        :return: 命令运行返回值
        '''
        if serial == None:
            _cmd = str(cmd)
            _retVal = self._adb.shell(cmd, timeout=timeout)
        else:
            _retVal = self._adb.shell(cmd, serial, timeout=timeout)
            # with self._adb.socket.Connect():
            #     print self._adb.socket.address
            #     # _cmd = host_command(serial, cmd)
            #     # _cmd = 'host:get-serialno'
            #     # _cmd = 'host:devices'
            #     # _cmd = 'host: -s 4d0088254b015125 shell ls'
            #     _cmd = 'host-serial:4d0088254b015125: uninstall com.gfth.coouj'
            #     print _cmd
            #     _retVal = self._adb._command(_cmd)
        return _retVal

    def getDevicesInfo(self):
        '''
        获取设备信息
        :return: 设备信息字典
        '''
        __device_info_dic = {}
        __device_info = self.shell('getprop').replace('\n', '').split('\r')
        # __device_info = self.shell('getprop')
        print __device_info
        for __prop in __device_info:
            if __prop.count(':') > 0:
                try:
                    # print("split prop: %s" % __prop)
                    __prop_key = str(__prop).split(u'[')[1].split(u']')[0]
                    __prop_value = str(__prop).split(u'[')[2][0:-1]
                    # __prop_value = str(__prop).split(u':')[1]
                except:
                    print "split prop %s exception" % str(__prop)
            else:
                continue

            if __prop_key == 'dalvik.vm.heapsize':
                print __prop
                __device_info_dic[DEV_INFO.DEVICES_HEAPSIZE] = __prop_value
                Logger.d("Get DEVICES_HEAPSIZE = " +
                         __device_info_dic[DEV_INFO.DEVICES_HEAPSIZE])

            if __prop_key == 'ro.build.version.release':
                __device_info_dic[DEV_INFO.DEVICES_AND_VERSION] = __prop_value
                Logger.d("Get DEVICES_AND _VERSION = " +
                         __device_info_dic[DEV_INFO.DEVICES_AND_VERSION])

            if __prop_key == 'ro.build.version.sdk':
                __device_info_dic[DEV_INFO.DEVICES_SDK_VERSION] = __prop_value
                Logger.d("Get DEVICES_SDK_VERSION = " +
                         __device_info_dic[DEV_INFO.DEVICES_SDK_VERSION])

            if __prop_key == 'ro.product.cpu.abi':
                __device_info_dic[DEV_INFO.DEVICES_CPU_TYPE] = __prop_value
                Logger.d("Get DEVICES_CPU_TYPE = " +
                         __device_info_dic[DEV_INFO.DEVICES_CPU_TYPE])

            if __prop_key == 'ro.product.manufacturer':
                devices_n1 = __prop_value
            if __prop_key == 'ro.product.model':
                devices_n2 = __prop_value

        try:
            __dev_name = str(devices_n1 + '-' + devices_n2).replace(' ', '-')
            __device_info_dic[DEV_INFO.DEVICES_NAME] = __dev_name
            Logger.d("Get DEVICES_NAME = " +
                     __device_info_dic[DEV_INFO.DEVICES_NAME])
        except Exception, e:
            print "Get device name error"

        #获取显示信息
        try:
            __device_info_dic[DEV_INFO.DEVICES_DISP_SIZE] = self.getDisSize()
        except Exception, e:
            print "Get device display  error"
コード例 #4
0
ファイル: androidHelper.py プロジェクト: nnmgy/MobileAppTest
class AndroidHandler():
    '''android系统及设备相关功能实现'''

    DISPLAY_SIZE = (480, 600)
    _adb = None

    def __init__(self):
        '''
        AndroidHandler构造函数
        '''
        if self._adb == None:
            self._adb = Adb()

    def getConnection(self):
        '''
        获取设备连接状态
        :return: 连接的设备列表
        '''
        __ret_device_list = []
        __devices_list = self._adb.devices()
        if len(__devices_list) == 0:
            pass
        else:
            for _dev in __devices_list:
                __ret_device_list.append(_dev[0])

        return __ret_device_list

    def shell(self, cmd, serial=None, timeout=None):
        '''
        运行设备端命令
        :param shell_cmd: 命令
        :param timeout: 超时时间,默认无
        :return: 命令运行返回值
        '''
        if serial == None:
            _cmd = str(cmd)
            _retVal = self._adb.shell(cmd, timeout=timeout)
        else:
            _retVal = self._adb.shell(cmd, serial, timeout=timeout)
            # with self._adb.socket.Connect():
            #     print self._adb.socket.address
            #     # _cmd = host_command(serial, cmd)
            #     # _cmd = 'host:get-serialno'
            #     # _cmd = 'host:devices'
            #     # _cmd = 'host: -s 4d0088254b015125 shell ls'
            #     _cmd = 'host-serial:4d0088254b015125: uninstall com.gfth.coouj'
            #     print _cmd
            #     _retVal = self._adb._command(_cmd)
        return _retVal

    def getDevicesInfo(self):
        '''
        获取设备信息
        :return: 设备信息字典
        '''
        __device_info_dic = {}
        __device_info = self.shell('getprop').replace('\n','').split('\r')
        # __device_info = self.shell('getprop')
        print __device_info
        for __prop in __device_info:
            if __prop.count(':') > 0:
                try:
                    # print("split prop: %s" % __prop)
                    __prop_key = str(__prop).split(u'[')[1].split(u']')[0]
                    __prop_value = str(__prop).split(u'[')[2][0:-1]
                    # __prop_value = str(__prop).split(u':')[1]
                except:
                    print "split prop %s exception" % str(__prop)
            else:
                continue

            if __prop_key == 'dalvik.vm.heapsize':
                print __prop
                __device_info_dic[DEV_INFO.DEVICES_HEAPSIZE] = __prop_value
                Logger.d("Get DEVICES_HEAPSIZE = " + __device_info_dic[DEV_INFO.DEVICES_HEAPSIZE])

            if __prop_key == 'ro.build.version.release':
                __device_info_dic[DEV_INFO.DEVICES_AND_VERSION] = __prop_value
                Logger.d("Get DEVICES_AND _VERSION = " + __device_info_dic[DEV_INFO.DEVICES_AND_VERSION])

            if __prop_key == 'ro.build.version.sdk':
                __device_info_dic[DEV_INFO.DEVICES_SDK_VERSION] = __prop_value
                Logger.d("Get DEVICES_SDK_VERSION = " + __device_info_dic[DEV_INFO.DEVICES_SDK_VERSION])

            if __prop_key == 'ro.product.cpu.abi':
                __device_info_dic[DEV_INFO.DEVICES_CPU_TYPE] = __prop_value
                Logger.d("Get DEVICES_CPU_TYPE = " + __device_info_dic[DEV_INFO.DEVICES_CPU_TYPE])

            if __prop_key == 'ro.product.manufacturer':
                devices_n1 = __prop_value
            if __prop_key == 'ro.product.model':
                devices_n2 = __prop_value

        try:
            __dev_name = str(devices_n1 + '-' + devices_n2).replace(' ','-')
            __device_info_dic[DEV_INFO.DEVICES_NAME] = __dev_name
            Logger.d("Get DEVICES_NAME = " + __device_info_dic[DEV_INFO.DEVICES_NAME])
        except Exception, e:
            print "Get device name error"

        #获取显示信息
        try:
            __device_info_dic[DEV_INFO.DEVICES_DISP_SIZE] = self.getDisSize()
        except Exception, e:
            print  "Get device display  error"
コード例 #5
0
def num_devices():
    if adb_active():
        a = Adb(DEFAULT_ADDRESS)
        return len(a.devices())
コード例 #6
0
def num_devices():
    if adb_active():
        a = Adb(DEFAULT_ADDRESS)
        return len(a.devices())