色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>通訊/手機編程>

微信ANR原理解析與解決方案

大小:0.3 MB 人氣:0 2017-09-26 需要積分:1

  原理解析

  CSDN 博客專家@三精-大精wing 對于導致微信 ANR 的根本原因進行了解析(以下為授權發布):

  本文目的在于學習研究Android技術,若有侵犯,聯系作者將及時刪除。

  首先,微信發生ANR以后,會生成traces.txt文件。通過adb 導出

  adb pull /data/anr/traces.txt ~/

  其中有這么一段:

  native: #05 pc 0043a419 /data/dalvik-cache/arm/system@framework@boot.oat (Java_java_util_regex_Matcher_setInputImpl__JLjava_lang_String_2II+132)

  at java.util.regex.Matcher.setInputImpl(Native method)

  at java.util.regex.Matcher.resetForInput(Matcher.java:252)

  - locked 《0x0ecefa84》 (a java.util.regex.Matcher)

  at java.util.regex.Matcher.reset(Matcher.java:208)

  at java.util.regex.Matcher.reset(Matcher.java:177)

  at java.util.regex.Matcher.《init》(Matcher.java:90)

  at java.util.regex.Pattern.matcher(Pattern.java:297)

  at com.tencent.mm.ui.widget.celltextview.g.a.o(SourceFile:95)

  at com.tencent.mm.ui.widget.celltextview.g.a.dc(SourceFile:55)

  at com.tencent.mm.ui.widget.celltextview.f.b.a(SourceFile:76)

  at com.tencent.mm.ui.widget.celltextview.d.a.Cw(SourceFile:466)

  at com.tencent.mm.ui.widget.celltextview.d.a.Cp(SourceFile:92)

  at com.tencent.mm.ui.widget.celltextview.CellTextView.onMeasure(SourceFile:102)

  at android.view.View.measure(View.java:18794)

  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)

  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)

  at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)

  at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)

  at android.view.View.measure(View.java:18794)

  發現是cellTextView鎖在了celltextView正則的時候。

  于是乎debug celltextview包的a類的o方法,

  發現一段超級復雜的正則(部分位置打碼),所以初步斷定為可能是正則時間太長導致。于是寫了一個單元測試,來測試該正則是否有問題。

  微信ANR原理解析與解決方案

  實驗發現,這個正則根本不會導致耗時過長,平均耗時0-1ms。

  那也就是說明,其實不是這里的原因。

  于是將斷點打靠上層,到 com.tencent.mm.ui.widget.celltextview.f.b.a() 方法上

  點擊放過按鈕發現程序無限次落到這個斷點上,由此可知,是造成了死循環,無限調用a()方法導致的。

  繼續深究,為什么會導致死循環。

  線索1:

  發現a()方法上面有一個判斷,會導致跳到cond_6最終會繼續跳到goto_4調用a()方法。

  這里有個

  add-int/lit8 v4, v4, -0x1

  其實他相當于

  i-1

  線索2

  觀察a()方法后面,有wwk,width等屬性調用。

  微信ANR原理解析與解決方案

  結合線索

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      ?
      主站蜘蛛池模板: china男士同性视频tv | 欧美日韩亚洲一区二区三区在线观看 | 最新黄yyid | 国产亚洲精品久久久无码狼牙套 | 在线天天看片视频免费观看 | 被滋润的艳妇疯狂呻吟白洁老七 | 国精产品999一区二区三区有限 | 欧美午夜精品A片一区二区HD | 欧美激情视频在线观看一区二区三区 | 交换娇妻呻吟声不停中文字幕 | 战狼4在线观看完免费完整版 | 啦啦啦视频在线观看WWW | 亚洲精品一区二区在线看片 | 久久久久久久久久毛片精品美女 | xiah俊秀| 久久九九亚洲精品 | 国产免费福利在线视频 | 在线观看免费毛片 | chinesetoilet美女沟 | 国产一区二区精品视频 | 97久久久久 | 免费一级特黄欧美大片久久网 | 无码99久热只有精品视频在线 | YELLOW日本免费观看播放 | 美女张开让男生桶 | 用快播看黄的网站 | 长篇高h肉爽文丝袜 | 欧美成 人 网 站 免费 | 纯肉腐文高H总受男男 | bbbbbxxxxx肥胖| 九九热在线视频观看这里只有精品 | 色偷偷成人网免费视频男人的天堂 | 一本大道无码AV天堂欧美 | 色吧电影院 | 新版孕妇bbwbbwbbw| sao虎影院桃红视频在线观看 | 亚洲精品无码国产爽快A片百度 | 灌饱娇嫩H将军公主最新章节 | 妺妺窝人体色WWW偷窥女厕 | 国产AV午夜精品一区二区入口 | 国产精品日本一区二区在线播放 |