日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

Android開發(fā)中StrictMode的妙用,幫助開發(fā)者檢測并改進(jìn)代碼的質(zhì)量和性能

來源: 責(zé)編: 時間:2024-05-21 09:04:18 141觀看
導(dǎo)讀StrictMode(嚴(yán)格模式)是一個在多種編程環(huán)境中都存在的概念,用于幫助開發(fā)者檢測和改進(jìn)代碼的質(zhì)量和性能。在Android開發(fā)中,StrictMode 可以識別并報告應(yīng)用程序中的線程和虛擬機(VM)策略違規(guī)。線程策略(Thread Policy)線程策略

StrictMode(嚴(yán)格模式)是一個在多種編程環(huán)境中都存在的概念,用于幫助開發(fā)者檢測和改進(jìn)代碼的質(zhì)量和性能。在Android開發(fā)中,StrictMode 可以識別并報告應(yīng)用程序中的線程和虛擬機(VM)策略違規(guī)。I3e28資訊網(wǎng)——每日最新資訊28at.com

線程策略(Thread Policy)

線程策略主要關(guān)注應(yīng)用程序的主線程(UI線程)的行為。任何阻塞主線程的操作都可能導(dǎo)致應(yīng)用程序變得無響應(yīng)(ANR)。線程策略可以檢測以下類型的違規(guī):I3e28資訊網(wǎng)——每日最新資訊28at.com

  • 「磁盤讀寫」:在主線程上執(zhí)行磁盤讀寫操作可能會導(dǎo)致應(yīng)用程序變得緩慢或無響應(yīng)。
  • 「網(wǎng)絡(luò)訪問」:在主線程上執(zhí)行網(wǎng)絡(luò)操作也可能導(dǎo)致性能問題。
  • 「自定義檢測」:開發(fā)者還可以定義自己的檢測邏輯來識別其他類型的線程違規(guī)。

虛擬機策略(VM Policy)

虛擬機策略關(guān)注虛擬機級別的違規(guī),如內(nèi)存泄漏和不必要的對象創(chuàng)建。虛擬機策略可以檢測以下問題:I3e28資訊網(wǎng)——每日最新資訊28at.com

  • 「內(nèi)存泄漏」:當(dāng)對象不再需要時仍然被引用,則會導(dǎo)致內(nèi)存泄漏。虛擬機策略可以報告這些潛在的泄漏。
  • 「不必要的對象創(chuàng)建」:在頻繁調(diào)用的方法或循環(huán)中創(chuàng)建不必要的對象可能導(dǎo)致性能下降和額外的垃圾收集開銷。虛擬機策略可以檢測這種情況。

啟用StrictMode

在Android應(yīng)用程序中啟用StrictMode通常在應(yīng)用程序的入口點(Application類或主Activity的onCreate方法)中調(diào)用StrictMode的靜態(tài)方法。I3e28資訊網(wǎng)——每日最新資訊28at.com

if (BuildConfig.DEBUG) {    //開啟Thread策略模式    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()        .detectNetwork()//監(jiān)測主線程使用網(wǎng)絡(luò)io        .detectCustomSlowCalls()//監(jiān)測自定義運行緩慢函數(shù)        .detectDiskReads() // 檢測在UI線程讀磁盤操作        .detectDiskWrites() // 檢測在UI線程寫磁盤操作        .penaltyLog() //寫入日志        .penaltyDialog()//監(jiān)測到上述狀況時彈出對話框        .build());    //開啟VM策略模式    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()        .detectLeakedSqlLiteObjects()//監(jiān)測sqlite泄露        .detectLeakedClosableObjects()//監(jiān)測沒有關(guān)閉IO對象        .setClassInstanceLimit(MainActivity.class, 1) // 設(shè)置某個類的同時處于內(nèi)存中的實例上限,可以協(xié)助檢查內(nèi)存泄露        .detectActivityLeaks()        .penaltyLog()//寫入日志        .penaltyDeath()//出現(xiàn)上述情況異常終止        .build());}

注意事項

  • 啟用StrictMode可能會增加應(yīng)用程序的CPU和內(nèi)存使用,在生產(chǎn)環(huán)境中應(yīng)該禁用。
  • StrictMode只是一個工具,用于幫助開發(fā)者識別潛在問題。不應(yīng)該用來替代良好的編程實踐和性能測試。
  • 某些違規(guī)(如磁盤讀寫和網(wǎng)絡(luò)訪問)在特定情況下可能是必要的,在使用StrictMode時應(yīng)該仔細(xì)考慮其配置和處罰措施。

I3e28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-89550-0.htmlAndroid開發(fā)中StrictMode的妙用,幫助開發(fā)者檢測并改進(jìn)代碼的質(zhì)量和性能

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 首個能發(fā)布實況照片的安卓機!OPPO Reno12 系列實現(xiàn)行業(yè)突破

下一篇: 在 ASP.NET Core 中優(yōu)雅地處理多接口實現(xiàn)

標(biāo)簽:
  • 熱門焦點
  • K60 Pro官方停產(chǎn) 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經(jīng)透露了,Redmi K60 Pro已經(jīng)停產(chǎn)且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產(chǎn)之后
  • 中興AX5400Pro+上手體驗:再升級 雙2.5G網(wǎng)口+USB 3.0這次全都有

    2021年11月的時候,中興先后發(fā)布了兩款路由器產(chǎn)品,中興AX5400和中興AX5400 Pro,從產(chǎn)品命名上就不難看出這是隸屬于同一系列的,但在外觀設(shè)計上這兩款產(chǎn)品可以說是完全沒一點關(guān)系
  • 容量越大越不壞?24萬塊硬盤故障率報告公布 這些產(chǎn)品零故障

    8月5日消息,云存儲服務(wù)商Backblaze發(fā)布了最新的硬盤故障率報告,年故障率有所上升。Backblaze發(fā)布的硬盤季度統(tǒng)計數(shù)據(jù),其中包括故障率等重要方面。這些結(jié)
  • K6:面向開發(fā)人員的現(xiàn)代負(fù)載測試工具

    K6 是一個開源負(fù)載測試工具,可以輕松編寫、運行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設(shè)計為功能強大、可擴展且易于使用。k6 可用于測試各種應(yīng)用程序,包括 Web
  • 在線圖片編輯器,支持PSD解析、AI摳圖等

    自從我上次分享一個人開發(fā)仿造稿定設(shè)計的圖片編輯器到現(xiàn)在,不知不覺已過去一年時間了,期間我經(jīng)歷了裁員失業(yè)、面試找工作碰壁,寒冬下一直沒有很好地履行計劃.....這些就放在日
  • 只需五步,使用start.spring.io快速入門Spring編程

    步驟1打開https://start.spring.io/,按照屏幕截圖中的內(nèi)容創(chuàng)建項目,添加 Spring Web 依賴項,并單擊“生成”按鈕下載 .zip 文件,為下一步做準(zhǔn)備。請在進(jìn)入步驟2之前進(jìn)行解壓。圖
  • 一文搞定Java NIO,以及各種奇葩流

    大家好,我是哪吒。很多朋友問我,如何才能學(xué)好IO流,對各種流的概念,云里霧里的,不求甚解。用到的時候,現(xiàn)百度,功能雖然實現(xiàn)了,但是為什么用這個?不知道。更別說效率問題了~下次再遇到,
  • 重估百度丨大模型,能撐起百度的“今天”嗎?

    自象限原創(chuàng) 作者|程心 羅輯2023年之前,對于自己的“今天”,百度也很迷茫。“新業(yè)務(wù)到 2022 年底還是 0,希望 2023 年出來一個 1。”這是2022年底,李彥宏
  • 到手價3099元起!iQOO Neo8 Pro今日首銷:安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發(fā)布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標(biāo)準(zhǔn)版搭載高通驍龍8+,而Pro版更
Top 主站蜘蛛池模板: 通化市| 开鲁县| 镇江市| 灵石县| 修文县| 石楼县| 伊金霍洛旗| 化州市| 黎川县| 广安市| 无为县| 乌拉特后旗| 广西| 宝兴县| 吴旗县| 临安市| 剑河县| 和硕县| 乌兰浩特市| 衡水市| 巨野县| 息烽县| 天气| 芦溪县| 保靖县| 武鸣县| 靖远县| 五台县| 临汾市| 喀什市| 新竹县| 奇台县| 江油市| 犍为县| 绥芬河市| 汝南县| 山阴县| 阿勒泰市| 泸州市| 邵东县| 昌黎县|