成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

AndroidP新增檢測項問題怎么修復

這篇文章主要講解了“Android P新增檢測項問題怎么修復”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Android P新增檢測項問題怎么修復”吧!

韶關(guān)網(wǎng)站建設公司成都創(chuàng)新互聯(lián),韶關(guān)網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為韶關(guān)上千余家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的韶關(guān)做網(wǎng)站的公司定做!

問題原因:

Android P新增檢測項問題怎么修復

commit 7c947996ca9426a8ae3abf9feb110f166d8f11daAuthor: Vladimir Marko <vmarko@google.com>Date:   Thu Apr 26 09:18:10 2018 +0100

    AOT inlined method lookup should stay within dex file.
    
    Rewrite the AOT inlined method lookup and guard against
    crossing dex file boundary. The compiler does not currently
    support inlining across dex files, so this is an indication
    of multiple dex files defining the same class and the AOT
    code having used a definition which is not used at runtime.    
    Test: m test-art-host-gtest    Test: testrunner.py --host --optimizing --jit    Test: Pixel 2 XL boots.    Test: testrunner.py --target --optimizing --jit    Bug: 74410240
    
    (cherry picked from commit 63a9f3e9e1b9fb8d98d8ca9abe626f3aa11e5692)
    
    Change-Id: Ibe9792f952d0c963b8560f10d57a951e227b24aa

從提交的日志可以看出,內(nèi)斂inline應該存放在一個dex文件中,不允許跨dex文件

關(guān)于art/runtime/entrypoints/entrypoint_utils-inl.h的日志:


Android P新增檢測項問題怎么修復


1、問題場景

由于國內(nèi)大多數(shù)應用基本上都集成了熱修復功能,所以 Android P的這個特性對國內(nèi)應用影響較大。(不太理解熱修復的童鞋可以參考:阿里的Android熱修復技術(shù)原理.pdf)

目前發(fā)現(xiàn)主要有兩種情況:

  • 場景一

應用原始apk中的dex A和從應用服務端下載的熱修復dex B存在重復類,觸發(fā)熱修復且系統(tǒng)后臺優(yōu)化inline編譯后,便會出現(xiàn)此問題。

  • 場景二

由 classloader A 加載的 class1 調(diào)用一個由 classloader B 加載的 class2里的某個 inline 方法,將導致應用閃退。

2、應用如何自檢?

  • 1.首先建議應用在Android P中測試驗證是否有該問題:

adb shell cmd package compile –m speed –f 應用包名 (inline編譯)。
啟動應用,構(gòu)造熱修復場景,在應用側(cè)觸發(fā)熱修復。
熱修復完成之后,重啟應用,檢測有無閃退和無響應問題。

  • 2.通過關(guān)鍵日志分析確認問題:

如果問題日志中有這個關(guān)鍵日志:This must be due to duplicate classes or playing wrongly with class loaders,可以確定就是該問題。

如下圖:

06-20 19:07:24.597 30376 30376 F m.taobao.taoba:entrypoint_utils-inl.h:94]
Inlined method resolution crossed dex file boundary: 
from void com.ali.mobisecenhance.Init.doInstallCodeCoverage
(android.app.Application, android.content.Context) in/data/app/com.taobao.taobao-YPDeV7WbuyZckOfy-5AuKw==/base.apk!classes3.dex/0xece238f0to void com.ali.mobisecenhance.code.CodeCoverageEntry.CoverageInit
(android.app.Application, android.content.Context) in/data/user/0/com.taobao.taobao/files/storage/com.taobao.maindex
/dexpatch/1111/com_taobao_maindex.zip!classes4.dex/0xebda4320. 
This must be due to duplicate classes or playing wrongly with class loaders
  • 3、修復建議

    • 1.不要將ROM中預置的jar包打包至apk。

    • 2.不要使用相同的class loader加載重復類。

    • 3.如果必須要有重復類的話,避免內(nèi)聯(lián)現(xiàn)象(比如,在不期望被inline的函數(shù)里面加try catch,這樣compiler就不會將此函數(shù)inline)。

感謝各位的閱讀,以上就是“Android P新增檢測項問題怎么修復”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Android P新增檢測項問題怎么修復這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

名稱欄目:AndroidP新增檢測項問題怎么修復
分享地址:http://jinyejixie.com/article22/jjesjc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、網(wǎng)站收錄域名注冊、云服務器商城網(wǎng)站、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
淳化县| 嘉黎县| 庄河市| 中方县| 密云县| 吴江市| 东山县| 荔浦县| 山东省| 高淳县| 共和县| 蓝田县| 金坛市| 吉木萨尔县| 慈溪市| 灵寿县| 资溪县| 喀什市| 江西省| 枣阳市| 腾冲县| 东乡族自治县| 和田县| 乌拉特前旗| 清水县| 长治县| 宁阳县| 烟台市| 靖安县| 永嘉县| 抚宁县| 阳城县| 收藏| 秀山| 潮州市| 南漳县| 通辽市| 徐闻县| 岱山县| 渭南市| 平阳县|