2012-12-03 55 views
2

對於每個android設備,dumpsys輸出的格式是否完全相同?因爲在應用程序中讀取轉儲服務的輸出並執行精確的字符串匹配來解析返回的數據是安全的嗎?dumpsys輸出格式

回答

4

不要指望格式是100%相同。不同的Android版本之間有輕微的變化。還有一些服務取決於所使用的特定硬件組件(無線電/芯片組/外圍設備/傳感器/等) - 因此實際的服務代碼可能來自不同的OEM,而不是來自Google。

但98%可能就足夠您的應用程序。

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