国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android性能優(yōu)化之游戲引擎初始化ANR

這篇具有很好參考價(jià)值的文章主要介紹了Android性能優(yōu)化之游戲引擎初始化ANR。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

近期,著手對(duì)bugly上的anr 處理,記錄下優(yōu)化的方向。

借用網(wǎng)上的一張圖:
Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎

這里的anr 問(wèn)題是屬于主線程的call 耗時(shí)操作。需要使用trace 來(lái)獲取發(fā)生anr前一些列的耗時(shí)方法調(diào)用時(shí)間,再次梳理業(yè)務(wù),才可能解決。

問(wèn)題1
java 調(diào)用棧:
Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎
從調(diào)用棧中發(fā)現(xiàn)onActivityResult()執(zhí)行對(duì)游戲側(cè)的初始化會(huì)造成anr。

因靠打印是不準(zhǔn)確,存在多線程搶占cpu的緣故,因此考慮通過(guò)獲取trace來(lái)記錄方法的真正執(zhí)行時(shí)間。

記錄oppo渠道包的冷啟動(dòng)到登錄頁(yè)面的sample trace文件,總覽trace中存在的耗時(shí)點(diǎn):這里查看主線程中執(zhí)行方法。
Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎
淡綠色是app中的代碼,長(zhǎng)方形占用面積越大,越耗時(shí)。

查看onActvityResult的邏輯執(zhí)行時(shí)間:
Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎
發(fā)現(xiàn)Show_GLView()執(zhí)行耗時(shí)最多,其中NativeInit()函數(shù)中調(diào)用若干方法,游戲C++層初始化了一大堆的邏輯。

問(wèn)題2

anr發(fā)生的調(diào)用棧
Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎
通過(guò)調(diào)用棧oppo渠道中發(fā)現(xiàn)onResume執(zhí)行對(duì)渠道初始化發(fā)生anr。

通過(guò)trace,來(lái)看下onResume中執(zhí)行時(shí)間:
Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎
發(fā)現(xiàn),onResume中初始化聚合渠道任務(wù)初始化,耗時(shí)100多毫秒。該任務(wù)可能并不是真正引起anr的真兇,可能是onActivityResult()耗時(shí)過(guò)多,間接導(dǎo)致onResume()過(guò)程中被系統(tǒng)判定anr。

方案優(yōu)化

耗時(shí)任務(wù)的解決有三種方式:

  • 將耗時(shí)任務(wù)放到異步線程中執(zhí)行
  • 將耗時(shí)任務(wù) lazy延后策略執(zhí)行或者 提前選擇空閑時(shí)間執(zhí)行。

當(dāng)界面1 跳轉(zhuǎn)其他界面2后,當(dāng)界面2調(diào)用finish()銷(xiāo)毀時(shí):

先執(zhí)行界面2的onStop()–>界面1的onActivityResult()->界面1的onResume()–>界面2的onstop()–>界面2的onDestroy()。

嘗試將nativeInit()和Show_GLView_Two() 放到onActvivityResult()和onResume()之后執(zhí)行。為了不阻塞onResume()執(zhí)行,利用hanlde的空閑機(jī)制:
Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎
在onActivityResult之后執(zhí)行空閑任務(wù):
Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎
Onresume 之后添加延遲任務(wù):
Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎
按照以上調(diào)整邏輯,再次編譯渠道包,來(lái)看下優(yōu)化效果

優(yōu)化效果

查看onActivityResult()中onResume()執(zhí)行時(shí)間:

Android性能優(yōu)化之游戲引擎初始化ANR,Android性能優(yōu)化,android,性能優(yōu)化,游戲引擎
同時(shí)也反饋給游戲側(cè)c++層的同事,初始化根據(jù)業(yè)務(wù),進(jìn)行延遲、異步等操作細(xì)分調(diào)用時(shí)間。

資料借鑒:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-611100.html

  • https://www.zhihu.com/tardis/bd/art/552305686?source_id=1001

到了這里,關(guān)于Android性能優(yōu)化之游戲引擎初始化ANR的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android 11屬性系統(tǒng)初始化流程

    Android 11屬性系統(tǒng)初始化流程

    在init進(jìn)程啟動(dòng)的第二階段,調(diào)用PropertyInit 對(duì)屬性系統(tǒng)進(jìn)行初始化 PropertyInit函數(shù)在systemcoreinitproperty_service.cpp 中實(shí)現(xiàn) 注釋1處在dev下創(chuàng)建__properties__文件夾。注釋2處會(huì)收集讀取各個(gè)分區(qū)下的property_contexts文件,將讀取到的信息系列化之后,寫(xiě)到/dev/ properties /property_info文件中。

    2024年04月09日
    瀏覽(20)
  • android系列-init 初始化日志

    1.FirstStageMain 2.InitKernelLogging? 3.KernelLogger? 4.OpenKmsg?

    2024年02月02日
    瀏覽(32)
  • Android OpenGL 教程——窗口初始化&繪制矩形

    Android OpenGL 教程——窗口初始化&繪制矩形

    上節(jié)介紹了?Native 工程初始化,但是我們的窗口什么都沒(méi)有,這節(jié)我們將 NativeActivity 創(chuàng)建的 window 綁定到 OpenGL 創(chuàng)建的 display 的 surface 上,并且繪制背景顏色和三角形,通過(guò)三角形繪制出一個(gè)矩形 初始化 繪制 ?只需要將三角形的索引改為6個(gè)即可 繪制 源碼:OpenGLDemo#triangle 你

    2024年02月16日
    瀏覽(28)
  • android 添加ro屬性字段并初始化

    硬件平臺(tái):QCS6125 軟件平臺(tái):Android11 需求:硬件需通過(guò)硬件電路區(qū)分為多款型號(hào),需要初始化到相應(yīng)的系統(tǒng)屬性字段展示。 ? 這種型號(hào)屬性適合做成ro類(lèi)型,類(lèi)似于原生系統(tǒng)的ro.product.model,由于android層面拿到這個(gè)具體的型號(hào)值是內(nèi)核通過(guò)傳遞cmdline而獲取的,內(nèi)核層面拿到硬

    2024年01月16日
    瀏覽(28)
  • Android OpenGL 教程——Native 工程初始化

    Android OpenGL 教程——Native 工程初始化

    NDK 的適用場(chǎng)景官方給出三點(diǎn): 平臺(tái)間的 App 移植 復(fù)用現(xiàn)有庫(kù) 對(duì)軟件性能要求較高的場(chǎng)合比如游戲等 有兩種方式可以實(shí)現(xiàn) native activity。 native_activity.h android_native_app_glue 由于第二種方法啟用另一個(gè)線程處理回調(diào)和輸入事件,NDK 的例子中就采用了這個(gè)實(shí)現(xiàn)方式。 ?? ?? NDK 工程

    2024年02月16日
    瀏覽(24)
  • Android12 P2P 初始化

    目錄 ?學(xué)習(xí)資料:Android Miracast 投屏 1. 開(kāi)機(jī)log 2.?WifiP2pService 啟動(dòng)

    2024年02月06日
    瀏覽(48)
  • UE4 初始化全局著色器庫(kù)所需的游戲文件缺失

    UE4 初始化全局著色器庫(kù)所需的游戲文件缺失

    ? 解決的方法是打包的主場(chǎng)景牽扯到的子場(chǎng)景放到同一個(gè)文件夾下 ? ? 如果移動(dòng)了場(chǎng)景,會(huì)出現(xiàn)一個(gè)同名的殼(node),如果還改名了即使在一個(gè)文件夾下也會(huì)導(dǎo)致這個(gè)問(wèn)題,解決辦法是移動(dòng)完之后右鍵Content點(diǎn)擊fix up···

    2024年02月11日
    瀏覽(302)
  • Android13音頻子系統(tǒng)分析(二)---初始化

    Android13音頻子系統(tǒng)分析(二)---初始化

    目錄 一、AudioPolicyService初始化 1.1 AudioPolicyService::onFirstRef()函數(shù) 1.2 AudioCommandThread線程 1.3 AudioPolicyManager初始化 1.3.1 解析audio_policy_configuration.xml配置文件 1.3.2 解析audio_policy_engine_configuration.xml配置文件 1.3.3 AudioPolicyManager::onNewAudioModulesAvailableInt()函數(shù) 1.3.4 AudioPolicyManager::updateDe

    2024年02月03日
    瀏覽(18)
  • android存儲(chǔ)3--初始化.unlock事件的處理

    android存儲(chǔ)3--初始化.unlock事件的處理

    android版本:android-11.0.0_r21 http://aospxref.com/android-11.0.0_r21 概述:SystemServiceManager收到unlock事件后,遍歷service鏈表,執(zhí)行各個(gè)service的onUserUnlocking。對(duì)于存儲(chǔ)service,執(zhí)行的是StorageManagerService$Lifecycle中的 onUserUnlocking,在這個(gè)方法中,存儲(chǔ)的 StorageSessionController、vold、storaged模塊進(jìn)行

    2024年02月10日
    瀏覽(42)
  • android存儲(chǔ)4--初始化.emulated設(shè)備的掛載

    android存儲(chǔ)4--初始化.emulated設(shè)備的掛載

    android版本:android-11.0.0_r21 http://aospxref.com/android-11.0.0_r21 android手機(jī)的掛載非常復(fù)雜。這篇文章針對(duì)emulated存儲(chǔ),介紹它的掛載過(guò)程。 android早期,手機(jī)內(nèi)部flash容量比較小,為了能讓手機(jī)存放更多的文件,需要通過(guò)外部存儲(chǔ)(如SD卡)來(lái)擴(kuò)展存儲(chǔ)容量。隨著技術(shù)的進(jìn)步,大容量

    2024年02月15日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包