多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > 分享一個android手機開不了機的問題

分享一個android手機開不了機的問題

來源:程序員人生   發(fā)布時間:2015-05-27 08:28:41 閱讀次數(shù):4420次

          前段時間開發(fā)了1個小屏的功能(效果圖以下:),果了1段時間,測試的人員說我們的手機有時開機不了:1直停止在開機的界面.剛開始都不知道甚么緣由.查了各種代碼都沒有發(fā)現(xiàn)問題.到后來感覺問題愈來愈嚴(yán)重了.

        

        到后來感覺問題愈來愈嚴(yán)重了.重要的是這個時低幾率事件,很難復(fù)現(xiàn)1次,所以有點難.好不容易出現(xiàn),通過data/anr/traces.txt找到問題,下面來看看關(guān)鍵信息:

"WindowManag4 MONITOR | group="main" sCount=1 dsCount=0 obj=0x4275d4d8 self=0x57929cb0 | sysTid=732 nice=⑷ sched=0/0 cgrp=apps handle=1469227632 | schedstat=( 1563495873 1380427864 20236 ) - waiting to lock <0x427e72d8> (a Ljava/lang/Object; ) held by tid=1 (main) | [0]:<0006> Landroid/hardware/display/DisplayManagerGlobal;.getDisplayInfo(I)Landroid/view/DisplayInfo; (<span style="color:#FF0000;">DisplayManagerGlobal.java:108</span>) | [1]:<0008> Landroid/view/Display;.updateDisplayInfoLocked()V (Display.java:657) | [2]:<0002> Landroid/view/Display;.getMetrics(Landroid/util/DisplayMetrics;)V (Display.java:585) | [3]:<0104> Lcom/android/server/display/xunhuOverlayDisplayAdapter;.<init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Lan (<span style="color:#FF0000;">xunhuOverlayDisplayAdapter.java:104</span>) | [4]:<0030> Lcom/android/server/display/DisplayManagerService;.register_xunhuOverlayDisplayAdapterLocked()V (DisplayManagerService.java:994)

"main" prio=5 tid=1 MONITOR | group="main" sCount=1 dsCount=0 obj=0x422c6cf8 self=0x4182e500 | sysTid=715 nice=⑵ sched=0/0 cgrp=apps handle=1074631044 | schedstat=( 7254851604 2756007452 25767 ) - waiting to lock <0x4277acc8> (a Lcom/android/server/display/DisplayManagerService$SyncRoot; ) held by tid=14 (WindowManager) | [0]:<0020> Lcom/android/server/display/DisplayManagerService;.getDisplayInfo(I)Landroid/view/DisplayInfo; (<span style="color:#FF0000;">DisplayManagerService.java:449</span>) | [1]:<0012> Landroid/hardware/display/DisplayManagerGlobal;.getDisplayInfo(I)Landroid/view/DisplayInfo; (<span style="color:#FF0000;">DisplayManagerGlobal.java:117</span>) | [2]:<0000> Landroid/hardware/display/DisplayManagerGlobal;.getCompatibleDisplay(ILandroid/view/DisplayAdjustments;)Landroid/view/Display; (DisplayManagerGlobal.java:176)

上面兩段信息的關(guān)鍵是:waiting to lock 看來貌似是進入1個死鎖.兩個鎖等待都在這個文件出現(xiàn):DisplayManagerGlobal.java,所以看看DisplayManagerGlobal就會發(fā)現(xiàn)問題:

public DisplayInfo getDisplayInfo(int displayId) { try { synchronized (mLock) {<span style="color:#FF0000;">//108</span> DisplayInfo info; if (USE_CACHE) { info = mDisplayInfoCache.get(displayId); if (info != null) { return info; } } info = mDm.getDisplayInfo(displayId);<span style="color:#FF0000;">//117</span> if (info == null) { return null; }
        首先是這里mLock鎖競爭.在這個鎖里調(diào)用mDm.getDisplayInfo(displayId)的時候會回調(diào)到DisplayManagerService里面,以下代碼:

public DisplayInfo getDisplayInfo(int displayId) { final int callingUid = Binder.getCallingUid(); final long token = Binder.clearCallingIdentity(); try { synchronized (mSyncRoot) {<span style="color:#FF0000;">//449</span> /// M:[SmartBook]Ignore extra display devicee info if (FeatureOption.MTK_SMARTBOOK_SUPPORT) { if (displayId == mExtraDisplayId) { return null; } }
    很明顯,在獲得了 DisplayManagerGlobal里面的鎖:mLock,還需要DisplayManagerService里面的鎖mSyncRoot.

    而我開發(fā)的小屏功能在DisplayManagerService里面register小屏的DisplayAdapter的時候已獲得了mSyncRoot鎖,所以如果在這同時(register小屏的DisplayAdapter的時候)調(diào)用下面的代碼:

WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); wm.getDefaultDisplay().getMetrics(metric);
     就容易出現(xiàn)死鎖. 由于在調(diào)用getDefaultDisplay()的時候最后會調(diào)用DisplayManagerGlobal的getDisplayInfo這個方法.而在開機的時候有大量其他地方調(diào)用DisplayManagerGlobal的getDisplayInfo這個方法.

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 中文乱码35页在线观看 | freexxx性欧美hd | 午夜影院在线视频 | 波多野结衣中文一区二区免费 | a毛片在线播放 | 日本精品一区二区三区在线观看 | 免费观看在线视频 | 欧美jizzhd欧美巨大 | v天堂网| 老司机福利在线免费观看 | 又硬又大又湿又紧a视频 | 黄色专区 | 日韩成人免费视频播放 | aⅴ免费在线观看 | 动画毛片 | 琪琪五月天 | 在线免费观看一级毛片 | 亚洲国产精品综合一区在线 | 欧美一级精品高清在线观看 | 国产精品卡哇伊小可爱在线观看 | 亚洲 校园 欧美 动漫 制服 | 国产精品日韩欧美久久综合 | 国产亚洲欧洲国产综合一区 | 午夜影院h | 日本高清在线看 | 国产精品久久久久久久 | 99久久老司机免费精品免费 | 亚洲精品乱码久久久久久蜜桃欧美 | 亚洲第一免费视频 | 中文字幕在线看视频一区二区三区 | 欧美日韩性猛交xxxxx免费看 | 俄罗斯free嫩交hd | 一级毛片在线完整观看 | 在线人成精品免费视频 | 韩国春性xxxx猛交 | 国产成人一区二区三区 | 亚洲综合精品一区二区三区中文 | 国产91嫩草精品 | 欧美人与物videos另类一 | 日本欧美做爰全免费的视频 | 国产在线精品一区二区中文 |