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物件
記憶體洩露的釋放的物件
相關文章
- Linux 效能監控工具Linux
- Android之StrictModeAndroid
- Android網路效能監控方案Android
- Centos效能監控工具——netdata配置CentOS
- Flutter效能監控工具(3)--- Observatory使用Flutter
- ios 手機app效能監控工具iOSAPP
- Windows 2003自帶效能監控工具的使用Windows
- Android 效能監控系列一(原理篇)Android
- ☕[JVM效能專題](1)效能監控-命令列工具JVM命令列
- Flutter效能監控工具(1)--- Observatory簡介Flutter
- 效能監控工具之Grafana+Prometheus+ExportersGrafanaPrometheusExport
- 效能測試監控工具--Jmeter + Grafana + InfluxDBJMeterGrafanaUX
- OpManager--強大的網路效能監控工具
- Jmeter系列(38)- 詳解效能監控工具 nmonJMeter
- 深入理解JVM:效能分析與監控工具JVM
- 前端效能監控前端
- php效能監控PHP
- Java生產環境效能監控與調優—基於JDK命令列工具的監控JavaJDK命令列
- APM效能監控軟體的監控型別服務及監控流程型別
- 5 分鐘擼一個前端效能監控工具前端
- redis效能監控工具redis-stat安裝初探Redis
- 5分鐘打造一個前端效能監控工具前端
- 最強效能監控工具之Grafana+Prometheus+ExportersGrafanaPrometheusExport
- 前端是如何監控效能的?前端
- 磁碟IO效能監控
- Performance --- 前端效能監控ORM前端
- MySQL sys效能監控MySql
- 效能監控調優
- MySQL監控工具MySql
- 手把手教你安裝Linux效能監控工具——pydashLinux
- 效能測試之資料庫監控分析工具PMM資料庫
- 虛擬機器效能監控和故障處理工具虛擬機
- 【JVM進階之路】八:效能監控工具-命令列篇JVM命令列
- 網站監控工具有哪些,8款好用的監控工具推薦網站
- 一種對雲主機進行效能監控的監控系統及其監控方法
- 011.MongoDB效能監控MongoDB
- mysql效能監控相關MySql
- iOS網路效能監控iOS
- Sentry Web 效能監控 - MetricsWeb