|
看了论坛上这么多鲨粉出现诸如王者荣耀,和平精英等等游戏的闪退,黑屏卡死的问题,作为一个懂点程序的非专业技术型用户,建议黑鲨推动下
首先,我最开始出现问题的原因是使用微信的时候在看朋友圈和查看聊天记录的时候发生闪退的问题,后来找到规律发现朋友圈或者聊天记录里图片特别多的时候,容易发生这个问题,然后自己打开开发者选项,抓了下手机日志,里面有个特别扎眼的kernel日志
Line 117071: 03-22 19:02:56.962 root 0 0 E kgsl-3d0: |kgsl_get_unmapped_area| get_unmapped_area: pid 25968 addr 0 pgoff 341 len 10354688 failed error -12
Line 117073: 03-22 19:02:56.977 root 0 0 E kgsl-3d0: |kgsl_get_unmapped_area| get_unmapped_area: pid 25968 addr 0 pgoff 341 len 10354688 failed error -12
Line 117074: 03-22 19:02:56.982 root 0 0 E kgsl-3d0: |kgsl_get_unmapped_area| get_unmapped_area: pid 25968 addr 0 pgoff 342 len 10354688 failed error -12
Line 117076: 03-22 19:02:56.996 root 0 0 E kgsl-3d0: |kgsl_get_unmapped_area| get_unmapped_area: pid 25968 addr 0 pgoff 342 len 10354688 failed error -12
这个日志大家如果想明白细节的可以去androidxref.com看下逻辑,也就是说-12返回的原因是传入的len >= TASK_SIZE,而这个TASK_SIZE是与32位或者64位应用有关,所以我就自己去微信官网下载了个64位的微信(现在还有32位的大概是为了兼容16年之前的手机),之后这个问题就再也没发生过了,与黑鲨工程师聊过这块的细节,原因是32位的某些应用占用VM资源特别厉害,32位的应用寻址空间最多4G,而图片等加载需要连续的内存,当起始的内存地址已经在4G边缘,那么与传入的len相加就有可能会越过4G边界,出现问题,工程师说这块微信已经给了反馈,并且应用商店都已经换成64位的微信安装包(因为64位的寻址空间更大)。
有了微信问题的解决,我就想看看王者荣耀和和平精英我玩的最多两款游戏会出现问题是不是也是这种,结果发现一模一样的日志,然后去找64位的应用包,结果搜索了一圈也没有,所以这个问题可能与手机厂商关系可能不大,需要厂商去推动应用商来解决,目前来看更换64位应用是有效的,也希望黑鲨能把我们用户的反馈发给游戏方,让他们抓紧出个64位的应用包吧,在问题彻底解决前能给我们一个好的体验,我们普通用户可能推动起来比较麻烦,但是我们也会尽力的!
最后说一下,黑鲨的工程师还是很热情挺专业的,如果你想了解技术细节,他也会跟你进行探讨,大家都有点耐心,喷是解决不了问题的!
|
|