android工程师
文章平均质量分 85
移动开发技术栈
Android开发者
展开
-
一文认知并发安全的几种解决方案与性能对比
优化完成之后我们可以看到并发锁的效率 synchronized(线程同步锁) > AtomicInteger(原子操作) >SingleThreadExecutor(单线程) > ReentrantLock(可重入锁) > Semaphore(协程信号量限制) > Mutex(协程互斥锁)> actor通信并发同步模型有同学可能会说,都协程了还用 synchronized?喽不喽啊。。。好吧,其实谷歌自己都用,Flow是运行在协程上的,Flow的源码中几乎都是用 synchronized 来加锁的。原创 2023-03-08 16:20:04 · 562 阅读 · 0 评论 -
Android Vsync原理简析
我们看到,在第一帧里面,GPU墨迹了半天没搞完,以至于在第二帧里面,Display(屏幕)显示的还是第一帧的A数据,此时就产生了Jank(卡顿),并且在一个vsync信号过来后,cpu什么都没做,因为gpu占着后缓冲(那个绿色的长B块),所以cpu只能再等下一个vsync,在下一个vsync里面,cpu终于拿到了后缓冲的使用权,但是cpu计算时间比较长,导致了gpu时间不够用,数据又没算完,再次发生了卡顿,可以说,这次卡顿直接受到了第一次卡顿的影响,,所以,控制数据是否交换应该由屏幕来决定,但是!原创 2023-03-08 15:23:50 · 943 阅读 · 2 评论 -
面试官直言:有没有 Framework 的项目经验?
特别是有许多的面试官一上来就问我:**有没有Framework相关的项目经验?**当时我就知道这些面试指定是挂了;所以就感觉到自己的技术掌握实在是太差了;其实像上述这位同学的遭遇其实大多数的人都遇到过,但是行业是处于一个进步的状态的;所以现如今;也因此Framework也逐渐成为了衡量Android程序员能力的一个标杆那么想要学习好Framework,就一定对Framework的底层源码要有丰富的了解。...原创 2022-08-14 22:09:00 · 361 阅读 · 0 评论 -
备战金九银十:Android 高级架构师的学习路线及面试题分享
如果大家有觉得自己学习效率低,缺乏正确的指导的,可以参考下面我收集整理的。原创 2022-07-26 19:27:28 · 371 阅读 · 0 评论 -
《2022年 Android 中高级面试题汇总》及答案整理(备战金九银十)
消息机制中有四个关键类,Handler、Message、Looper、MessageQueueLooper的存放使用ThreadLocal实现,ThreadLocal用于创建一个线程的共享变量,当在一个已有Looper的线程中再次创建Looper,会拿到相同的LooperJava有自动回收机制,即GC(Garbage Collection),当jvm判断一个对象已经“无用”了,就会释放其内存;是否“无用”jvm依靠一种引用链的机制判断(弱引用除外,弱引用无论如何都会被回收)只要这个对象在GC Root的引用原创 2022-07-06 21:02:28 · 4212 阅读 · 8 评论