首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Android UI
订阅
没错我就是赵大胆
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
RecyclerView 面试题 | 哪些情况下表项会被回收到缓存池?
缓存是 RecyclerView 时间性能优越的重要原因。缓存池是所有缓存中速度最慢的。这一篇从源码出发,探究哪些情况下表项会被缓存到缓存池。
Handler真的懂了吗?
对于Handler可谓是虐我千百遍,待她如初恋,为啥呢,因为我并不是真的理解她,所以只能任她虐。 简单的说每个线程引用的ThreadLocal副本值都是保存在当前Thread对象里面的。存储结构为ThreadLocalMap类型,ThreadLocalMap保存的类型为Thre…
Android | 说说从 android:text 到 TextView 的过程(主题&样式)
在 Android 开发中,经常需要用到属性,例如使用android:text设置文本框的文案,使用android:src设置图片。那么,android:text是如何设置到TextView的呢
面试官:如何监测应用的 FPS ?
即使你不知道 FPS,但你一定听说过这么一句话,在 Android 中,每一帧的绘制时间不要超过 16.67ms。那么,这个 16.67ms 是怎么来的呢?就是由 FPS 决定的。 FPS,Frame Per Second,每秒显示的帧数,也叫 帧率。Android 设备的 F…
主流技术之网易云换肤方案
上一篇说到了View的加载过程,并且对TextView进行了拦截,让页面上所有的TextView内容都变成了我们想要的helloworld,这次我们一起来研究一下网易云音乐的动态换肤技术。说到换肤,有
Message 引发的 DialogFragment 内存泄漏分析与解决方案
某一个 HandlerThread 的 Looper#loop 方法,一直等待 queue#next 方法返回,但是它的 msg 局部变量还引用着上一个循环中已经被放到 Message Pool 中 Message,我们称之为 MessageA。 Dialog#setOnCan…
Android VSYNC (Choreographer)与UI刷新原理分析
从UI控件内容更改到被重新绘制到屏幕上,这中间到底经历了什么?另外,连续两次setTextView到底会触发几次UI重绘呢?为什么Android APP的帧率最高是60FPS呢,这就是本文要讨论的内容。 以电影为例,动画至少要达到24FPS,才能保证画面的流畅性,低于这个值,肉…
Gradle Transform + ASM 探索
使用 Gradle Transform + ASM 实现代码插桩的使用已经非常普遍。本文试图探索如何更加快速简洁的利用 Transform 实现代码插桩,并尝试实现 ...... 简单来说就是利用 AGP 提供的 Transform 接口,在应用打包的流程中,对 java/ko…
App流畅度优化:利用字节码插桩实现一个快速排查高耗时方法的工具
我们产线的主流程页面中有几个比较复杂的页面在版本迭代中流畅度频繁出现反复,经常由于开发的不注意导致变卡,主要是对流畅度缺少必要的监控和可持续的优化手段,这个系列是对上半年实践App流畅度监控、优化过程中的一点总结,希望可以给需要的同学一点小参考。 平常我们用来排查Android…
Android 无缝换肤深入了解与使用
通过自定义View配合setTheme后立即刷新资源。 skinPkgPath是apk的全路径,添加路径的方法是AssetManager里一个隐藏的方法通过反射可以设置。 此时还可以用assetManager来访问apk里assets目录的资源。 想想如果更换的资源是放在ass…