日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

android strictmode有什么作用,Android 性能优化 之 StrictMode

發(fā)布時間:2025/3/8 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android strictmode有什么作用,Android 性能优化 之 StrictMode 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

8種機械鍵盤軸體對比

本人程序員,要買一個寫代碼的鍵盤,請問紅軸和茶軸怎么選?

StrictMode概述

StrictMode 是用來檢測程序中違例情況的開發(fā)者工具。使用StrictMode,系統(tǒng)檢測出主線程違例的情況會做出相應的反應,如日志打印,彈出對話框亦或者崩潰等。換言之,嚴格模式會將應用的違例細節(jié)暴露給開發(fā)者方便優(yōu)化與改善。

StrictMode

嚴格模式主要檢測兩大問題,一個是線程策略,即TreadPolicy,另一個是VM策略,即VmPolicy。

ThreadPolicy

線程策略檢測的內容有自定義的耗時調用使用detectCustomSlowCalls()

開啟磁盤讀取操作使用detectDiskReads()

開啟磁盤寫入操作使用detectDiskWrites()

開啟網(wǎng)絡操作使用detectNetwork()

VmPolicy

虛擬機策略檢測的內容有

Activity泄露 使用detectActivityLeaks()

開啟未關閉的Closable對象泄露 使用detectLeakedClosableObjects()

開啟泄露的Sqlite對象 使用detectLeakedSqlLiteObjects()

開啟檢測實例數(shù)量 使用setClassInstanceLimit()開啟

StrictMode 應用

在Application 的onCreate()方法中添加如下代碼。1

2

3

4if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build());

StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build());

}

通過過濾StrictMode,查看檢測結果。1adb logcat | grep "StrictMode"

例子分析

文件沒有關閉1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17E/StrictMode( 2649): A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.

E/StrictMode( 2649): java.lang.Throwable: Explicit termination method 'end' not called

E/StrictMode( 2649): at dalvik.system.CloseGuard.open(CloseGuard.java:184)

E/StrictMode( 2649): at java.util.zip.Inflater.(Inflater.java:82)

E/StrictMode( 2649): at java.util.zip.GZIPInputStream.(GZIPInputStream.java:103)

E/StrictMode( 2649): at java.util.zip.GZIPInputStream.(GZIPInputStream.java:88)

E/StrictMode( 2649): at com.baidu.simeji.util.StringGzipCompressUtil.unCompress(StringGzipCompressUtil.java:59)

E/StrictMode( 2649): at com.baidu.simeji.prediction.ServerPrediction$1.onReceive(ServerPrediction.java:136)

E/StrictMode( 2649): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:978)

E/StrictMode( 2649): at android.os.Handler.handleCallback(Handler.java:739)

E/StrictMode( 2649): at android.os.Handler.dispatchMessage(Handler.java:95)

E/StrictMode( 2649): at android.os.Looper.loop(Looper.java:145)

E/StrictMode( 2649): at android.app.ActivityThread.main(ActivityThread.java:6922)

E/StrictMode( 2649): at java.lang.reflect.Method.invoke(Native Method)

E/StrictMode( 2649): at java.lang.reflect.Method.invoke(Method.java:372)

E/StrictMode( 2649): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)

E/StrictMode( 2649): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

內存泄漏1

2

3E/StrictMode( 7796): class com.baidu.simeji.sticker.store.StickerPackCloudPreviewActivity; instances=2; limit=1

E/StrictMode( 7796): android.os.StrictMode$InstanceCountViolation: class com.baidu.simeji.sticker.store.StickerPackCloudPreviewActivity; instances=2; limit=1

E/StrictMode( 7796): at android.os.StrictMode.setClassInstanceLimit(StrictMode.java:1)

StickerPackCloudPreviewActivity本應存在一個實例,現(xiàn)在有兩個。表明內存泄漏。

#Android 性能優(yōu)化#

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的android strictmode有什么作用,Android 性能优化 之 StrictMode的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。