首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

hi3716c-android4.0.3SDK在开机动画片阶段停留很长时间并黑屏不进入launcher原因分析

2013-10-08 
hi3716c-android4.0.3SDK在开机动画阶段停留很长时间并黑屏不进入launcher原因分析最近基于海思3716c方案

hi3716c-android4.0.3SDK在开机动画阶段停留很长时间并黑屏不进入launcher原因分析

最近基于海思3716c方案的智能机顶盒批量出货了,但出现了意想不到的问题。有少数机顶盒在开机动画停留很长时间有5分钟之多,之后黑屏,不进入Launcher,就像死机了一样。此问题出现概率达到百分之二,概率很高。

根据此现象,联想到开发阶段出现的一个类似情形,机顶盒开机后一直进不了主界面。当时没有大规模出现,认为可能是某人的误操作。当时重新格式化了data分区后,机器就又正常运行了。现在回想起来,感觉开发人员神经太大条了,这么严重的问题都放过。开发阶段遇到的偶然问题,在真正用户使用阶段就可能大规模出现,成为致命问题。

将问题机顶盒连上串口,发现还能进入命令行,还能输入命令,敲logcat还能打印出日志,还算好办。日志的最后部分如下:



通过ddms很快看到堆栈地方,停在了readHistoryStatsFLOCK(),            while (eventType != XmlPullParser.START_TAG) 陷入了死循环,当usage-history.xml文件内容为空时,处理不对。从代码得知没有判断内容为空parser.next()返回的是XmlPullParser.END_DOCUMENT的情况。

修改为:

           //Slog.w(TAG,"windsome eventType=" + eventType + ", START_TAG="+XmlPullParser.START_TAG+", TEXT="+XmlPullParser.TEXT+", END_TAG="+XmlPullParser.END_TAG+", START_DOCUMENT="+XmlPullParser.START_DOCUMENT+", END_DOCUMENT="+XmlPullParser.END_DOCUMENT);            while ((eventType != XmlPullParser.START_TAG) && (eventType != XmlPullParser.END_DOCUMENT)) {                eventType = parser.next();                //Slog.w(TAG,"windsome eventType="+eventType);            }            //Slog.w(TAG,"windsome 2");

奇怪的是,手机上很少出现此问题,可能跟手机是用电池供电有关吧,很少遇到写usage-history.xml时断电的情况。
 

作者 QQ: 35327864

3楼newplumage4小时前
顶一个!
2楼fgwf1昨天 20:45
有人将这个fix给海思了!
1楼fgwf1昨天 20:44
是金网通?

热点排行
Bad Request.