真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android中的ANR異常及traces解析

ANR(Application Not Responding)定義

在Android上,如果你的應(yīng)用程序有一段時(shí)間響應(yīng)不夠靈敏,系統(tǒng)會(huì)向用戶顯示一個(gè)對(duì)話框,這個(gè)對(duì)話框稱作應(yīng)用程序無響應(yīng)(ANR:Application Not Responding)對(duì)話框。用戶可以選擇“等待”而讓程序繼續(xù)運(yùn)行,也可以選擇“強(qiáng)制關(guān)閉”。所以一個(gè)流暢的合理的應(yīng)用程序中不能出現(xiàn)anr,而讓用戶每次都要處理這個(gè)對(duì)話框。因此,在程序里對(duì)響應(yīng)性能的設(shè)計(jì)很重要,這樣系統(tǒng)不會(huì)顯示ANR給用戶。

出現(xiàn)ANR的原因

默認(rèn)情況下,在android中Activity的最長執(zhí)行時(shí)間是5秒,BroadcastReceiver的最長執(zhí)行時(shí)間則是10秒。超出就會(huì)提示應(yīng)用程序無響應(yīng)(ANR:Application Not Responding)對(duì)話框。

三種常見類型

1:KeyDispatchTimeout(5 seconds) --主要類型

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)梅州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

按鍵或觸摸事件在特定時(shí)間內(nèi)無響應(yīng)

2:BroadcastTimeout(10 seconds)

BroadcastReceiver在特定時(shí)間內(nèi)無法處理完成

3:ServiceTimeout(20 seconds) --小概率類型

Service在特定的時(shí)間內(nèi)無法處理完成

如何分析ANR生成的Traces

出現(xiàn)Application Not Responding的提示后,系統(tǒng)會(huì)將日志LOG寫到到data\anr\traces.txt文件
舉一個(gè)簡單的例子,下面給出一段日志LOG供參考
Android中的ANR異常及traces解析
DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0 hwl=0 hwll=0)
"main" prio=5 tid=1 NATIVE
  | group="main" sCount=1 dsCount=0 obj=0x40025340 self=0xd180
  | sysTid=1071 nice=0 sched=0/0 cgrp=default handle=-1344994080
  | schedstat=( 2355584448 1199910712 3410 )
  at java.net.InetAddress.getaddrinfo(Native Method)
  at java.net.InetAddress.lookupHostByName(InetAddress.java:540)
  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:333)
  at java.net.InetAddress.getAllByName(InetAddress.java:295)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.(HttpConnection.java:100)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.(HttpConnection.java:79)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:353)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:120)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:316)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:298)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:236)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:645)
  at com.rayray.cool.util.URLUtil.invokeURL(URLUtil.java:136)
  at com.rayray.cool.activity.WoDeJianYiActivity$1.onClick(WoDeJianYiActivity.java:173)
  at android.view.View.performClick(View.java:2535)
  at android.view.View$PerformClick.run(View.java:9129)
  at android.os.Handler.handleCallback(Handler.java:618)
  at android.os.Handler.dispatchMessage(Handler.java:123)
  at android.os.Looper.loop(SourceFile:351)
  at android.app.ActivityThread.main(ActivityThread.java:3821)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:538)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727)
  at dalvik.system.NativeStart.main(Native Method)
Android中的ANR異常及traces解析

出現(xiàn)ANR問題的原因就是上面紅色代碼中

at com.rayray.cool.activity.WoDeJianYiActivity$1.onClick(WoDeJianYiActivity.java:173) 是Android中Activity
at com.rayray.cool.util.URLUtil.invokeURL(URLUtil.java:136) 是一次耗時(shí)的聯(lián)網(wǎng)請(qǐng)求


Activity中的按鍵事件在特定事件內(nèi)未響應(yīng)造成。


如何解決ANR

(1)耗時(shí)的操作放入單獨(dú)的線程中處理,如(聯(lián)網(wǎng)、數(shù)據(jù)庫、IO)

(2)盡量避免和UI線程的操作


新聞名稱:Android中的ANR異常及traces解析
瀏覽路徑:http://weahome.cn/article/jijsis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部