怎么样才能做到类似苹果原生的 photo app 那样的秒开加流畅?

2014-07-30 15:51:15 +08:00
 satanwoo
有两个方面的疑问:

1.是如何合理的存储照片数据,因为要在本地秒开,不能只能照片的url吧,如果直接按照data存,那么高清大图片怎么做到秒开啊?

2.是如何加载那么多照片滚动那么流畅的。大家可以看下微信,随便发送一幅图,然后点一下,进入图片浏览模式下,右下角有个查看所有照片的按钮,点进去加载所有照片,第一就不是秒加载,第二滚动会卡。

求助啦,麻烦大家~
3053 次点击
所在节点    iDev
10 条回复
newtonisaac
2014-07-31 08:52:16 +08:00
Wwdc
satanwoo
2014-07-31 10:01:43 +08:00
@newtonisaac 感觉大致都能理解。但是还是弄不出photo原生那样的秒速。。。
Hysteria
2014-07-31 10:48:53 +08:00
我一直认为原生的Photo有自己的持久化缓存,但是没道理苹果不提供给我开发者用。大量图片滚动不卡我觉得可以试试path开源的FastImageCache,拿空间换时间,缓存解压后的图片数据来提高加载时候的速度。
satanwoo
2014-07-31 11:33:14 +08:00
@Hysteria 事实上即使你全部preload 到内存里,如果采用类似于collectionview那种样式的设计,滚动大量图片也会卡,这还是不在和网络交互的情况下。

我现在比较关注的是,我就是一个本地的应用,存储了大量的高清图片,咋整的和photo原生那么秒速,我是拿4s这种性能已经相对落后的机器测试的。
wezzard
2014-08-01 12:01:19 +08:00
首先UI卡应该检查是不是前景任务和背景任务是否分开了。

然后性能是一点点榨榨出来的,没有银弹。充分优化的 CoreData 远比没有优化过的 SQLite 快。

另外,楼主都不贴 Instrument 的图,怎么让别人分析呢。优化中一个大忌就是仅凭猜测去判断问题在哪。
wezzard
2014-08-01 12:05:38 +08:00
@Hysteria 我记得看过新闻有说苹果的iPhotos的持久化变成了SQLite。很多年前看到的。
yarshure
2014-08-01 22:24:22 +08:00
人家都用缩略图的,你看看iPhoto的lib就知道了
不信你在Mac上import 10G数据看看,慢死
satanwoo
2014-08-02 00:09:28 +08:00
@yarshure 就算是缩略图,苹果原生的也秒杀了一堆应用。
satanwoo
2014-08-04 21:38:22 +08:00
@Hysteria FastImageCache确实牛b,整合了下神秒杀。
Hysteria
2014-08-05 03:10:57 +08:00
@satanwoo = - =。我就说嘛,当时我就用FastImageCache,而且在CollectionView里面用缩略图,性能确实很IMBA撒。现在恭喜了撒,哈哈。期待你的APP。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/125285

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX