Disqus 无法加载。如果您是管理员,请参阅故障排除指南

keymath • 9 年之前

赞!文章写的很清晰

Carey • 9 年之前

今年看过最好的文章,很赞,很受益。

HuKai • 9 年之前

谢谢!共勉!

Ghost • 9 年之前

好文章,感谢博主辛苦总结,已收藏。

johngao • 9 年之前

好文

付强 • 9 年之前

写的真好, 受益匪浅

HuKai • 9 年之前

谢谢支持

咕咚 • 8 年之前

关于图像渲染的双缓冲技术 看到有一篇文章写的也不错,http://djt.qq.com/article/v...
只是排版有点不好看!

咕咚 • 8 年之前

看完果断打赏一元,好文要支持,金额不多心意在!

HuKai • 8 年之前

收到,已经记录!谢谢!

大猫 • 8 年之前

写得太tm好了

Zihuatanejo • 8 年之前

好文!!!

juyujuyu • 8 年之前

比较言简意赅,相信是作者看完视频之后自己的理解,所以里面有一些点没有说到(可能博主已经很熟了),如果大家看不惯英文,还是建议大家多找几篇这样的笔记看一看。

Shangzhi • 8 年之前

流弊,有时间了来看其他文。

lidajun • 9 年之前

多谢博主分享,给我们带来了如此精彩的文章!性能优化任务艰巨着呢

• 9 年之前

非常感谢

by • 9 年之前

看过最透彻的分析

constgu • 9 年之前

请教楼主一个问题,关于Android采用了分代的GC机制,有没有任何官方或非官方文献可供参考。

多谢 :)

TracyZhang • 9 年之前

jvm值得深入研究

yy • 9 年之前

其它的我没留意过,但是如果没有记错的话,wakelock和cell data这两段至少半年前就在官方文档里了吧

流云 • 9 年之前

可以,来个,自愿捐钱的链接。O(∩_∩)O哈哈~

fuzhuo • 9 年之前

好文,关于图形处理部分很精彩,但关于GC部分不太准确,kitkat及以前版本因为底层使用dlmalloc内存分配器,对象是不可移动的…只是为了共享预加载库类分为了共享的永久区和当前应用自身的可回收的堆区,简单标记清扫算法,木有分代…

HuKai • 8 年之前

你说的很赞,关于这个分代的机制从什么时候开始,以及一些更详细的信息,请问可以一起共享下吗?我也想再深入学习一下!

fuzhuo • 8 年之前

抱歉我说得也不够准确,从L art虚拟机后google重写了gc和替换了dlmalloc引入了真正的分代,但也只在应用后台回收时采用,前台还是并行mark sweep。老罗的博客关于这个写得不错。

HuKai • 8 年之前

谢谢!

August • 9 年之前

Resterization栅格化 -- 有笔误?

Mingting • 9 年之前

嘿嘿,还真是。估计是这个才对。rasterization

方法 • 9 年之前

从Android 5.0开始发布了Battery History Tool,它可以查看程序被唤醒的频率,又谁唤醒的,持续了多长的时间,这些信息都可以获取到。应该是由谁唤醒~!

方法 • 9 年之前

好文章,赞赞赞,不过有错别字哦~~!

woyaowenzi • 9 年之前

写得真好,面面俱到,顺便查看下博主的其它内容,感慨真是人和人就是不一样啊。哈哈。

Auiebant Zhan • 9 年之前

性能这方面确实值得关注,感谢博主详细的文章

不败 • 9 年之前

看起来很高深,但是感觉在实际中考虑起来就很少了,一般的APP应用不嵌套复杂化用户完全感知不到的。。mark下,等有能力了再仔细钻研下

wv1124 • 9 年之前

android都是让我们这些java程序员写坏了,不懂原优化

ZackFair • 9 年之前

感谢分享,总结的太好了~

z • 9 年之前

百度下“阀值”,据说是“阈值 ”的误写。

asce1885 • 9 年之前

多谢总结分享

HuKai • 9 年之前

谢谢!

小肖 • 9 年之前

谢谢分享!

HuKai • 9 年之前

多谢支持!

lk • 9 年之前

非常感激作者Kesen Hoo的辛勤付出,感谢您的无私分享

HuKai • 9 年之前

分享才有价值嘛,谢谢支持!

daimajia • 9 年之前

点赞~ 总结的不错~

HuKai • 9 年之前

谢谢支持!

baron89 • 9 年之前

收藏

yanyuetian • 9 年之前

好文

HuKai • 9 年之前

Thanks!

HJWAJ • 9 年之前

写的很赞!跟着你这篇文章,我为公司的app做了优化,效果很好,感谢!

发现一个问题:“除了速度差异之外,执行GC操作的时候,所有线程的任何操作都会需要暂停,等待GC操作完成之后,其他操作才能够继续运行。”这个说法是不对的,在Java虚拟机和GingerBread以前的Dalvik虚拟机里是这样的,但是GingerBread以后的Dalvik虚拟机不是这样的,它相当于是开了一个独立的线程来GC,大多数情况下GC不影响其他线程。GC会导致卡顿,只是因为GC比较吃资源。而不是像Java虚拟机那样霸道的hold住了包括UI线程的所有的线程。