首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
android
订阅
大森哥
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
从源码看 Android 事件分发
Android 事件分发是安卓中一个很精妙的地方,很多开发人员有些不解,为什么呢?因为不知道怎么去运用,其实这个地方理解起来比较简单,我写这么一篇文章就是为了串一串这个知识点。 事件分发是在最上层 View 一直往下层传递事件,并通过 onTouchEvent(MotionEv…
Handler原理分析
Handler的原理分析这个标题,很多文章都写过,最近认真将源码逐行一字一句研究,特此也简单总结一遍。 Looper轮询消息,Message出列,Handler处理消息。 首先,如何避免Handler的内存泄漏是一个非常常见的面试题,其实Handler的源码中已经将答案非常清晰…
Android 轻松解决内存泄漏
方法区(non-heap):编译时就分配好,在程序整个运行期间都存在。它主要存放静态数据和常量; 堆区(heap):通常用来存放 new 出来的对象。由 GC 负责回收。 强引用(Strong Reference):JVM 宁愿抛出 OOM,也不会让 GC 回收存在强引用的对象…
一个线程可以有几个Looper?几个Handler?从Looper.prepare()来看看关于Looper的一些问题
之前我有篇文章里面写到了Android的消息机制,Handler发送消息的一些原理。链接如下: 在构造方法里,初始化了MessageQueue和代表当前线程的属性mThread,关于MessageQueue可以看看文章开头的链接,里面有详细的代码解析,这里就不赘述了。 其实还是…
Android进程保活方案
经过多方面的验证,Android系统中在没有白名单的情况下做一个任何情况下都不被杀死的应用是基本不可能的,但是我们可以做到我们的应用基本不被杀死,如果杀死可以马上满血复活,原谅我讲的特别含蓄,毕竟现在的技术防不胜防啊,不死应用还是可能的。 有几个问题需要思考,系统为什么会杀掉进…
探一探,非常实用的GIF图圆角控件(3行代码)
现代人的崩溃是一种默不吭声的崩溃,看起来很正常,会说笑,会打闹,会社交,表面平静,实际上心里的糟心事已经积累到一定程度了。不会摔门砸东西,不会流眼泪或歇斯心底,但可能某一秒突然就积累到极致,也不说话,也不真的崩溃,也不太想活着。也不敢去死。 众所周知,Android 中主流的图…
彻底理解安卓应用无响应机制
不论从事安卓应用开发,还是安卓系统研发,应该都遇到应用无响应(ANR,Application Not Responding)问题,当应用程序一段时间无法及时响应,则会弹出ANR对话框,让用户选择继续等待,还是强制关闭。 绝大多数人对ANR的了解仅停留在主线程耗时或CPU繁忙会导…
LayoutInflater创建View源码阅读
控件名称只要不是requestFocus, tag,include,merge,就会在createViewFromTag方法中通过name和attrs创建这个控件。 如果设置过mFactory2,mFactory或者mPrivateFactory,就会被设置的Factory拦截…
你需要了解下Android View的更新requestLayout与重绘invalidate
从View的绘制机制可知,View从测量、布局、绘制的步骤中会对应执行该View#onMeasure()、View#onLayout()、View#onDraw()。那么我们今天讨论的View#invalidate()和View#requestLayout()呢?我们打印一下数…
Android开发随记
UI优化—UI层级过深,在进行测量和定位的时候将会占用更多的CPU资源,也会导致渲染周期加长,在Android的渲染机制中,每16ms将会发起一次垂直同步信号,进行渲染,如果在16ms以内还无法更新到surface,画面将会显示上一次的画面,这样看起来就会卡顿。解决措施: 尽量…