2

每个 android 设备的 dumpsys 输出格式是否完全相同?如在应用程序中读取转储服务的输出并执行精确的字符串匹配以解析返回的数据是否安全?

4

2 回答 2

4

不要期望格式 100% 相同。不同的Android版本之间有细微的变化。此外,某些服务依赖于使用的特定硬件组件(无线电/芯片组/外围设备/传感器/等) - 因此实际服务代码可能来自不同的 OEM,而不是来自 Google。

但是 98% 可能对您的应用程序来说已经足够了。

于 2012-12-04T05:18:21.480 回答
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
于 2013-04-04T20:12:27.807 回答