運行亞行logcat在shell我看到這樣的事情嚴格模式違反列表
StrictMode policy violation; ~duration=337 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=23 violation=2
- 什麼政策= 23分的手段?
- 什麼是違規= 2?
我正在尋找此值的含義,但我找不到任何文檔 絲毫侵犯和政策清單,也許我在一個糟糕的方式解釋從我的搜索結果,但我會欣賞一些解釋關於這個
運行亞行logcat在shell我看到這樣的事情嚴格模式違反列表
StrictMode policy violation; ~duration=337 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=23 violation=2
我正在尋找此值的含義,但我找不到任何文檔 絲毫侵犯和政策清單,也許我在一個糟糕的方式解釋從我的搜索結果,但我會欣賞一些解釋關於這個
什麼政策= 23是什麼意思?
您可以配置StrictMode通知您的某些事情,你可以告訴它你想如何得到通知(簡單的日誌信息,異常,...)。請參閱啓用StrictMode部分this blog post以供參考。
策略是一種內部跟蹤該配置的位掩碼。由於它是一個掩碼,因此可以更直觀地用二進制來解釋它,即10111.然後,您可以查找BlockGuard.java
源文件中的相關位。下面是this site(不知道Android版本也就是,有可能在新版本中更多的東西,我沒有電流源在我的機器上現在)很短的副本:
public static final int DISALLOW_DISK_WRITE = 0x01;
public static final int DISALLOW_DISK_READ = 0x02;
public static final int DISALLOW_NETWORK = 0x04;
public static final int PASS_RESTRICTIONS_VIA_RPC = 0x08;
public static final int PENALTY_LOG = 0x10;
public static final int PENALTY_DIALOG = 0x20;
public static final int PENALTY_DEATH = 0x40;
隨着您可以知道您的StrictMode配置爲通過日誌消息通知您DISK_READ,DISK_WRITE和NETWORK違規。
什麼是違規= 2?
這只是作爲一些內部int常量的vialolation的類型。由於例外的名字已經給出了這個名稱,所以它並沒有多大幫助。作者剛剛定義了一個用於跨所有不同的子類StrictMode異常的方法getMessage()
。僅供參考,這些常數在StrictMode.java內定義。
對於今天的Android,策略列表位於'StrictMode.java' [源代碼](https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android /os/StrictMode.java)。目前,它們未在文檔中顯示。請注意,大多數常量名現在反映相應的方法名稱。 –