Android的效能監控工具StrictMode
目前,StrictMode的能力與限制包括:
1.基於執行緒的對磁碟讀寫,網路操作,以及自定義耗時操作等的監控;
2.基於VM程式的對物件洩露(Activity物件,SQLite物件,未反註冊物件,未關閉物件)的監控;
3.可以檢測到跨程式的耗時操作(當然必須是同步操作);
4.當前不支援在jni中發生的網路與磁碟操作。
隨著Android的進化,StrictMode的功能也將越來越強大。當StrictMode檢測到指定的事件發生時,它以指定的方式通知你:崩潰,彈出對話方塊,閃屏,logcat,dropbox。
==========================
StrictMode是Gingerbread的一個新API,用來設定對一個thread的策略,你可以設定不允許在這個thread上執行的某些操作,並且設定對應的懲罰措施,如果出現不允許的操作的話。通過優雅的設計,這些策略可以通過一些整數很容易的指定。
目前有2種策略可用,第一個和執行緒相關,它主要針對主執行緒(或UI執行緒)。由於在主執行緒中讀寫磁碟和進行網路訪問都不是好的做法,Google已經在磁碟和網路程式碼中新增了嚴苛模式(StrictMode)鉤子(hook)。如果你對某個執行緒開啟嚴苛模式(StrictMode),當那個執行緒進行磁碟和網路訪問,你將獲得警告。你可以選擇警告方式。一些違例包含耗時函式,磁碟讀寫,網路訪問。你能選擇將警告寫入LogCat,顯示一個對話方塊,閃下螢幕,寫入DropBox日誌檔案,或讓應用崩潰。最通常的做法是寫入LogCat或讓應用崩潰。
penaltyLog()表示將警告輸出到LogCat,你也可以使用其他或增加新的懲罰(penalty)函式,例如使用penaltyDeath()的話,一旦StrictMode訊息被寫到LogCat後應用就會崩潰。
類似於執行緒策略(ThreadPolicy) StrictMode 有虛擬機器策略(VmPolicy)。虛擬機器策略(VmPolicy)能檢查記憶體洩漏,譬如,當關閉一個SQLite物件前的完結操作,或其他任何類似可關閉物件在關閉前的完結操作。虛擬機器策略(VmPolicy)由一個類似的Builder類建立,如列表2-10所示。和執行緒策略(ThreadPolicy)不同的是,虛擬機器策略(VmPolicy)不能通過一個對話方塊提供警告。
若需避免對某些違規的檢測,譬如,你需要在正在監視的執行緒中進行磁碟讀取。此時,你要麼不去呼叫detectDiskReads(),要麼在呼叫detectAll()之後跟一個permitDiskReads()。
執行緒策略監控的方面:
Disk Reads 磁碟讀
Disk Writes 磁碟寫
Network access 網路訪問
Custom Slow Code 自定義的執行速度慢的程式碼分析
VM 策略監控的方面:
記憶體洩露的Activity物件
記憶體洩露的SQLite物件
記憶體洩露的釋放的物件
相關文章
- 效能監控工具YourKit
- JVM 效能監控工具JVM
- CentOS效能監控工具CentOS
- Linux 效能監控工具Linux
- MySQL 效能監控工具--mysqlreportMySql
- 效能監控和分析工具--nmon
- Android之StrictModeAndroid
- Android網路效能監控方案Android
- Android 效能監控實現原理Android
- Flutter效能監控工具(3)--- Observatory使用Flutter
- Centos效能監控工具——netdata配置CentOS
- Java效能監控工具:VisualVMJavaLVM
- Flutter效能監控工具(2)— Performance OverlayFlutterORM
- ios 手機app效能監控工具iOSAPP
- ☕[JVM效能專題](1)效能監控-命令列工具JVM命令列
- Flutter效能監控工具(1)--- Observatory簡介Flutter
- 效能監控工具之Grafana+Prometheus+ExportersGrafanaPrometheusExport
- 深入理解JVM(七)——效能監控工具JVM
- OpManager--強大的網路效能監控工具
- 監控 Linux 效能的 18 個命令列工具Linux命令列
- 監控Linux效能的18個命令列工具Linux命令列
- Android 效能監控系列一(原理篇)Android
- Jmeter系列(38)- 詳解效能監控工具 nmonJMeter
- 效能測試監控工具--Jmeter + Grafana + InfluxDBJMeterGrafanaUX
- 深入理解JVM:效能分析與監控工具JVM
- Netflix效能監控工具Vector介紹
- 利用OSW工具監控作業系統效能作業系統
- linux效能監控工具——NAGIOS和OVOLinuxiOS
- Linux的IO效能監控工具iostat詳解LinuxiOS
- 前端效能監控前端
- php效能監控PHP
- 監控寶SQL Server效能監控的功能和配置SQLServer
- Java生產環境效能監控與調優—基於JDK命令列工具的監控JavaJDK命令列
- APM效能監控軟體的監控型別服務及監控流程型別
- Windows 2003自帶效能監控工具的使用Windows
- [轉載]監控 Linux 效能的 18 個命令列工具Linux命令列
- [zt] Linux中常用的監控CPU整體效能工具Linux
- 5分鐘打造一個前端效能監控工具前端