每个Android设备的dumpsys输出格式是否完全相同?因为在应用程序中读取转储服务的输出并执行精确的字符串匹配以解析返回的数据是否安全?
答案 0 :(得分:4)
不要指望格式是100%相同。不同的Android版本之间略有不同。此外,一些服务依赖于所使用的特定硬件组件(无线电/芯片组/外围设备/传感器/等) - 因此实际的服务代码可能来自不同的OEM而非谷歌。
但98%可能只适合您的申请。
答案 1 :(得分:0)
不,据我所知,您应该始终从运行相同操作系统的同一设备获得相同的输出。
根据我的经验,输出格式并不多。在我用monkeyrunner测试编写的几十个设备中,我只遇到了2个。我用一个简单的尝试,除了阅读我遇到的两种格式。如果它们都失败了,那么我打印错误并停止我的脚本。
memList = memFull.split()
try:
dalvikIndex = memList.index('dalvik')
heapSize = memList [dalvikIndex + 5]
memAllocated = memList [dalvikIndex + 10]
memFree = memList [dalvikIndex + 15]
except ValueError:
try:
dalvikIndex = memList.index('Dalvik')
heapSize = memList [dalvikIndex + 4]
memAllocated = memList [dalvikIndex + 5]
memFree = memList [dalvikIndex + 6]
except ValueError:
print 'Unsupported output format detected. MemoryMonitor script will need to be updated to support this format'
break