# 安卓

# 获取内存信息

给定进程的 PID,返回总内存、本地堆内存、dalvik 堆内存 并转换为 MB 单位

def getAndroidMem(self):
    """Get the Android memory ,unit:MB"""
    cmd = f'dumpsys meminfo {self.pid}'
    output = adb.shell(cmd=cmd, deviceId=self.deviceId)
    m_total = re.search(r'TOTAL\s*(\d+)', output)
    m_native = re.search(r'Native Heap\s*(\d+)', output)
    m_dalvik = re.search(r'Dalvik Heap\s*(\d+)', output)
    totalPass = round(float(float(m_total.group(1))) / 1024, 2)
    nativePass = round(float(float(m_native.group(1))) / 1024, 2)
    dalvikPass = round(float(float(m_dalvik.group(1))) / 1024, 2)
    return totalPass, nativePass, dalvikPass

# IOS

同样通过 instruments 协议获取;不过只能获取到总内存

def getiOSMem(self):
    """Get the iOS memory"""
    apm = iosAPM(self.pkgName)
    totalPass = round(float(apm.getPerformance(apm.memory)), 2)
    nativePass = 0
    dalvikPass = 0
    return totalPass, nativePass, dalvikPass