天天看點

《Android應用開發攻略》——3.11 用StrictMode保持應用程式靈活性

adrian cowham

3.11.1 問題

你希望盡可能確定應用程式gui的靈活性。

3.11.2 解決方案

android有一個strictmode工具,該工具在gingerbread版本中引入,能夠檢測所有“應用程式未響應”(anr)錯誤發生的情況。例如,它能夠檢測發生在主線程(gui線程)的資料庫讀寫,并記錄到logcat。

3.11.3 讨論

我真希望在以前進行java swing桌面開發的時候能夠使用像strictmode這樣的工具。確定java swing應用程式的靈活性始終是個挑戰——不管是新手還是熟練的工程師都會在ui線程上執行資料庫操作,進而導緻應用程式出現停頓。我們發現,這些停頓通常發生在qa人員(或者客戶)用比工程師測試時更大的資料集運作應用的時候。讓qa人員發現這些小缺陷是無法接受的,而且最終會浪費所有人的時間(以及公司的金錢)。我們最終在同行審查上投入了更多人力物力,才解決了這個問題,但是,擁有strictmode這樣的工具相對就會更加經濟。

下面的示例代碼說明了,在應用程式中啟用strictmode有多麼簡單:

請注意,我有意地忽略了isdebug()的實作,因為這在開發人員中做法不一。我建議僅在應用程式處于調試模式時啟用strictmode;将帶有strictmode的應用程式投放到android market是不明智的,strictmode在背景運作,并且毫無必要地消耗資源。

strictmode是高度可配置的,允許定制查找什麼問題。

3.11.4 參閱

strictmode可配置程度很高,你可以自定義所要查找的問題。