Android R DP3更新內(nèi)容概述

Android R DP3于北京時(shí)間4月24日凌晨發(fā)布,此次更新新增了一系列特性,主要有:

新增APP退出原因說(shuō)明:
Android R推出了一個(gè)新的API,來(lái)幫助開(kāi)發(fā)人員收集APP可能退出的原因,不管APP是自身崩潰、或是系統(tǒng)崩潰、再或者是用戶(hù)采取了行動(dòng)(例如點(diǎn)擊了退出按鈕,殺掉后臺(tái)等),此API都可以幫助開(kāi)發(fā)者了解APP退出的原因和當(dāng)時(shí)的狀態(tài)。

使用方式:
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ApplicationExitInfo> list = am.getHistoricalProcessExitReasons(getPackageName(), Process.myPid(),1);
String description = list.get(0).getDescription(); //list中的ApplicationExitInfo對(duì)象包含了應(yīng)用退出時(shí)的主要信息

總結(jié):此API可以幫助開(kāi)發(fā)者排查APP異常退出的原因,到底是自身APP中存在的問(wèn)題,還是引用的SDK存在問(wèn)題、或者系統(tǒng)問(wèn)題。

新增GWP-ASan堆分析工具:
Android R版本用了很多工具來(lái)強(qiáng)化那些對(duì)安全性至關(guān)重要的組件,DP3里再次新增一個(gè)名為“GWP-ASan”的采樣分析工具來(lái)幫助開(kāi)發(fā)者發(fā)現(xiàn)和修復(fù)內(nèi)存安全問(wèn)題?!癎WP-ASan”可以用相當(dāng)小的運(yùn)行內(nèi)存開(kāi)銷(xiāo)(大約70KB,相比于HWASan更?。┗蛘邔?duì)手機(jī)性能的影響來(lái)檢測(cè)堆內(nèi)存錯(cuò)誤。R版本中,GWP-ASan會(huì)在平臺(tái)二進(jìn)制文件和系統(tǒng)應(yīng)用程序里默認(rèn)啟用。如果第三方APP想使用此工具,需要在APP的工程清單文件里單獨(dú)設(shè)置。

使用方式:
<manifest...>
<application...
android:gwpAsanMode="always">
</application>
</manifest>

總結(jié):在排查堆內(nèi)存錯(cuò)誤時(shí),可以利用此工具來(lái)跟蹤錯(cuò)誤信息的異常發(fā)生點(diǎn),異常信息將會(huì)在Logcat的StackTrace中打印。

新增ADB增量安裝:
Android R上加速了對(duì)大型APK文件(2GB及以上)在開(kāi)發(fā)者電腦上的安裝速度,大致原理是:在安裝這類(lèi)APK時(shí),通過(guò)安裝APK中足以用來(lái)啟動(dòng)應(yīng)用的部分,同時(shí)在后臺(tái)流式傳輸剩余數(shù)據(jù),來(lái)加速這一過(guò)程。

使用方式:adb install --incremetal

需要注意的是,APK必須使用Android R中新增的V4簽名打包,這項(xiàng)功能才能正常發(fā)揮作用。

ADB無(wú)線(xiàn)調(diào)試:
Android R DP3版本中改進(jìn)了通過(guò)Wi-Fi連接ADB使用進(jìn)行APK調(diào)試的體驗(yàn),Android R上的無(wú)線(xiàn)調(diào)試比較智能,可以記住一段時(shí)間內(nèi)的連接,并且可以利用最新的Wi-Fi標(biāo)準(zhǔn)(Wi-Fi 6)來(lái)全速運(yùn)行。Google計(jì)劃在未來(lái)的版本中將帶二維碼掃描的無(wú)線(xiàn)調(diào)試集成到Android Studio。
PS:國(guó)內(nèi)的微信小程序開(kāi)發(fā)早已支持。

新增數(shù)據(jù)訪(fǎng)問(wèn)審核更新:
為了更好的監(jiān)測(cè)哪些應(yīng)用或者其依賴(lài)項(xiàng)訪(fǎng)問(wèn)了用戶(hù)隱私數(shù)據(jù),Android R引入了數(shù)據(jù)訪(fǎng)問(wèn)審核流程。運(yùn)行在此版本的應(yīng)用可以注冊(cè)AppOpsManager.AppOpsCollector來(lái)監(jiān)聽(tīng)?wèi)?yīng)用或者其依賴(lài)項(xiàng)訪(fǎng)問(wèn)用戶(hù)隱私數(shù)據(jù)的過(guò)程。此API會(huì)在每次發(fā)生下列任一事件時(shí)執(zhí)行相應(yīng)操作:
·應(yīng)用的代碼訪(fǎng)問(wèn)隱私數(shù)據(jù);
·依賴(lài)庫(kù)或者SDK中的代碼訪(fǎng)問(wèn)隱私數(shù)據(jù)。

總結(jié):AppOpsCollector對(duì)象可以通過(guò)查看應(yīng)用的當(dāng)前狀態(tài)(例如當(dāng)前線(xiàn)程的堆棧軌跡)來(lái)判斷調(diào)用時(shí)來(lái)自自身應(yīng)用還是來(lái)自SDK。

Android R將會(huì)在5月份發(fā)布Beta Releases版本,并在第三季度推出Android R正式版。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容