爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
楼主: chenyan5486
收起左侧

[原创] 关于5757奶牛图事件最后分析已经完成(最终结果见33楼)感谢提供原图

[复制链接]
发表于 2006-3-23 13:05:55 | 显示全部楼层
支持继续探讨
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-23 14:42:42 | 显示全部楼层
原帖由 豆豆鸟 于 2006-3-23 12:55 发表



我觉得以下几点有待商榷:
1、关于CPU使用率,我播放第二、三个图片也是3帧,CPU一直在30-40%之间。
2、关于循环次数,GIF文件的循环次数是指这些帧连续播放多少次后停止,并不是同时播放多少次,不信大家 ...



GIF文件的循环次数是指这些帧连续播放多少次后停止,对没错,但是你没考虑这个就是:当手机在载入以后,是瞬间对图片进行初始化再展示给大家看,意思就是说西机在把动画播放之前,已经驻留内存并且同时分配内存处理这个“事件”(事件也就是打开GIF动画加载并初始)那为什么西机在把它装进动态内存的时候并没出现死机,是因为并没有加载这个动画到后台的内存里面,当时停留在第一针,预览对CPU和内存的要求不大,不过是个表面的读取过程而已。在播放给大家看之前,西机已经做好了准备工作,已经加载完成一旦点确认的同时,加载的过程启动,GIF动画驻留在内存中,开始运行,激活那30000个播放循环,这个时候还没等调用来给用户看的时候手机已经被强大的30000次播放循环丢翻了。为什么没设定成开机的后果就没这个严重,启动下就没事了,就是因为从起以后内存初始化,不再加载。如果设定成开机画面,机器一启动又是一个加载过程循环永远无法开机,这个已经很说明原因了。我可以做一张随便什么图就算是白的一样可以造成我们的小西死掉。问题就在这个环节,图片根本没带任何恶意的代码,因为我们的西机根本没有从GIF中读任何代码的能力,所以不可能出现这个可能。可以用西门子SX1来测试一下看看会不会出现问题。如果我的理论正确的话,在SX1上就不会出现,因为SX1的CPU比较65来说强多了,所以可以完成整个加载过程
回复 支持 反对

使用道具 举报

发表于 2006-3-23 14:49:44 | 显示全部楼层
强人啊都是
回复 支持 反对

使用道具 举报

发表于 2006-3-23 14:55:21 | 显示全部楼层
原帖由 chenyan5486 于 2006-3-23 14:42 发表



GIF文件的循环次数是指这些帧连续播放多少次后停止,对没错,但是你没考虑这个就是:当手机在载入以后,是瞬间对图片进行初始化再展示给大家看,意思就是说西机在把动画播放之前,已经驻留内存并且同时分配 ...


可以用这个理论做一张母鸡图,在cx65上和别的手机上测试,来证实
不过要先想好怎么恢复啊,呵呵
回复 支持 反对

使用道具 举报

发表于 2006-3-23 16:11:37 | 显示全部楼层
百家争鸣,鼓掌,太精彩了分析得很精辟,让我大开眼界
回复 支持 反对

使用道具 举报

发表于 2006-3-23 17:03:32 | 显示全部楼层
这个太恐怖了
回复 支持 反对

使用道具 举报

发表于 2006-3-23 17:04:12 | 显示全部楼层
学到不少东西啊
回复 支持 反对

使用道具 举报

发表于 2006-3-23 17:46:06 | 显示全部楼层
关于为什么设定成开机画面会死机的问题,大家都知道,因为图片不正常,而待机是要播放动画的,所以设置成待机是必死无疑的。
按我的理解,播放gif动画的原理是一帧一帧接着向下放,循环100次,那就是一帧一帧向下放100次;至于载入内存的问题,我认为既然是重复100次,那么不会设计成一下子分配100*3个大小的内存来使用,一定是分配3个大小的内存(或者多一点),然后重复使用。
如果用电脑来举例子,并不是说电影10M电脑不会死机,那么1000000M的电影打开就死机了,因为不是直接分配那么多的内存;就算是10M的电影,播放程序还是有可能非法操作或者发生错误,因为这10M电影本身可能包含错误,并不是恶意代码,就是错误数据而以,当出现错误数据的时候播放程序处理不了自然就会出错,当然电脑现有的操作系统还是比较健壮的,尤其是XP,各个程序的内存是独立的,所以就算播放器出了问题,依然可以使用其他功能(虽然看着看着电影电脑就重起的事情还是会发生的),而手机的系统可能在这方面有所欠缺,所以程序发生错误后一般是D的一声关机。
这个gif图片的问题,我始终认为不是循环次数太多的问题,我觉得就是因为包含了一些对于西机读取gif文件的程序来说,属于错误数据的数据,所以才会打开后就关机。
至于能不能作出这样的GIF文件,我觉得只有分析出原因之后才能下定论,lz说可以做出来,不妨做出来,然后我再测试,死机我是不怕的:)
回复 支持 反对

使用道具 举报

发表于 2006-3-23 17:55:17 | 显示全部楼层
原帖由 豆豆鸟 于 2006-3-23 17:46 发表
至于载入内存的问题,我认为既然是重复100次,那么不会设计成一下子分配100*3个大小的内存来使用,一定是分配3个大小的内存(或者多一点),然后重复使用。...


无论是电脑还是手机都应该是这样的,赞同这种观点。
继续旁听高手讨论.....
回复 支持 反对

使用道具 举报

发表于 2006-3-23 17:56:04 | 显示全部楼层
变相病毒哦
回复 支持 反对

使用道具 举报

发表于 2006-3-23 19:04:38 | 显示全部楼层
哈哈,貌似有个结果出来了终于~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-23 19:09:42 | 显示全部楼层
既然有人提出了异议,那我们都一起研究吧,反正是给西友们造福,大家一起来想,我也继续努力
回复 支持 反对

使用道具 举报

发表于 2006-3-23 19:18:25 | 显示全部楼层
给想尝试后果的机油提一个解决的办法:设成待机后如无法开机,尝试恢复eep
回复 支持 反对

使用道具 举报

发表于 2006-3-23 20:05:00 | 显示全部楼层
33楼的分析相当具有说服力!!
回复 支持 反对

使用道具 举报

发表于 2006-3-23 20:09:37 | 显示全部楼层
太精彩了分析得很精辟
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-23 22:24:52 | 显示全部楼层
已经没多少争议了,但是我还是要做个这样的循环出来用自己的 M65 打开来看看
回复 支持 反对

使用道具 举报

发表于 2006-3-23 22:55:59 | 显示全部楼层
有道理,分析得很在理
回复 支持 反对

使用道具 举报

发表于 2006-3-23 23:22:24 | 显示全部楼层
原帖由 豆豆鸟 于 2006-3-23 17:46 发表
关于为什么设定成开机画面会死机的问题,大家都知道,因为图片不正常,而待机是要播放动画的,所以设置成待机是必死无疑的。
按我的理解,播放gif动画的原理是一帧一帧接着向下放,循环100次,那就是一帧一帧向下 ...

我赞成这种说法,原来有朋友用索爱的T628拍了彩信给我发送过来,只要一打开彩信就100%的死机,但是把图片单独保存后再打开就不不会死机。当时为了做测试,我让朋友连续发送不同的图片发给我,都是死机。但是过好几天后再次发送过来的彩信就没有死机过。发送的都是手机拍的普通图片,难道也会循环吗?肯定是西机对图片的读取哪块有问题。顺便说一句,移动公司发给我的彩信我从来都没有正常打开过,其包含的图片也只是静止的JIF图片。
回复 支持 反对

使用道具 举报

发表于 2006-3-23 23:33:40 | 显示全部楼层
虽然不大懂,但明白意思,西机好象在读大场景时,的确容易死机,我的小m就经常出现这种情况,不止是读.gif,玩游戏时也会出现死机,甚至会关机.
回复 支持 反对

使用道具 举报

发表于 2006-3-23 23:36:38 | 显示全部楼层
愈来愈感觉到自己的无知啊,埋头苦读去
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2025-7-27 20:11

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表