
获得徽章 14
- 这篇文章正如其题目所说,一文看懂Android的屏幕刷新机制,很详细很全面,基本上也涵盖了屏幕刷新机制这块的面试问题,干货文章评论点赞
- 这篇文章介绍了怎么流畅地拉取和提交代码到github上,还有加速访问github的方法,很实用,经常性上不了github的朋友可以马住评论点赞
- 这篇文章从源码上对Jetpack组件ViewModel展开了详细的分析,包括ViewModel的创建过程,activity和fragment不同的作用域,activity在屏幕旋转重建后ViewModel恢复的原理等等,可以说是全方位对ViewModel进行了详细的解析,很推荐评论点赞
- 这篇文章描述了开启Kotlin协程的一个详细流程,协程是怎么挂起和恢复的,为什么可以用协程通过同步代码的写法去做异步的事,讲得很详细,通俗易懂评论点赞
- 这篇文章主要讲解了基于LiveData+ViewModel的MVVM架构在某些场景下的痛点,同时也介绍了怎么通过Flow来解决那些瓶颈,另外还介绍了基于Flow的MVI架构,对了解和学习Flow的具体应用以及Flow的好处很有帮助。评论点赞
- 针对虚拟内存不足的几个优化方面:
1.将Native线程栈空间减半。大部分情况下线程内执行的逻辑不需要1M的空间(Native线程默认的栈空间大小),减半可以减少pthread_create OOM崩溃。
2.系统预分配区域中其中[anon:libwebview reservation]区域占用130M,可以尝试释放WebView预分配的内存,减少一部分虚拟内存。
3.虚拟机堆空间减半。对Java/Kotlin创建的对象进行GC时会将,可用内存划分为大小相同的两片区域(跟GC的分代收集算法有关,对于新生代一般使用复制算法去GC),分别是dalvik-main space和dalvik-main space 1,减少其中一个main space所占用的内存。
4.快手针对垃圾回收器jemalloc的优化,释放的是anon:libc_malloc所占用的虚拟内存。展开评论点赞 - lterable和Sequence的区别:
lterable执行操作符的顺序是横向的,会对集合中的每一个元素都先执行完同一个操作符然后再到下一个操作符,一遇到操作符会立马执行。
Sequence执行操作符的顺序是纵向的,会对集合中的第一个元素先进行全部操作,然后再到下一个元素,而且只有在遇到终端操作符的时候才会工作。展开评论点赞