首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Re乄born
掘友等级
Android
|
技术酱
某厂高级搬砖师,参与过大模块架构设计,注重基础,深耕 Android 基础知识
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
42
文章 42
沸点 0
赞
42
返回
|
搜索文章
最新
热门
Android 控件 | EditView 常用套路
3. 文字变化监听 同样的问题:Android中Activity中某个EditText被clearFocus后其他控件(别的EditText),会自动获取到焦点,此时也可以用以下的方法解决。在布局的最外层,顶级父布局中,设置: 6. 限制输入的字符 7. 每N位数字插入空格 这…
Bug Fix | 自定义 View 引发的内存泄漏
若自定义View中,有复杂的Path,尽管每次的使用都是同一个对象,Path.reset(),这些绘制都会用到纹理的遮罩。每当你创建或者修改一个path,硬件渲染过程都会创建一个新的遮罩,这耗费的代价是相当大的。从内存快照上看,每一次的修改或者重新绘制或者重新开启动画,Nati…
Android 源码阅读 | ViewStub
1. 特性 ViewStub 是一个不可见,size为0的View,它通常用于在适当的时机去懒加载布局。 一旦 ViewStub 设置为 Visible 或者 调用了 inflate() 方法,ViewStub 的布局就会被加载。 ViewStub 的布局在加载后会直接替换它自…
Android 控件 | TextView 常用套路
1. TextView文字过长,显示省略号 必须要同时设置XML和JAVA,而且,java中设置文字必须是在最后。 2. TextView文字中间加横线 3. 设置Drawable,改变大小 4. 设置字体大小 SP和DP的差别,SP可以随系统设置的字体大小而改变。如果不想随系…
Android 源码阅读 | HandlerThread
HandlerThread是拥有Looper的一个线程类,它继承于Thread,当它调用 start() 方法后,通过getLooper()可以传递Looper给Handler,作为它初始化的参数,这样就完成了子线程的一个消息循环机制。 传入线程的名字,和线程的优先级。 从注释…
Android 源码阅读 | AsyncTask
AsyncTask 更加正确和方便地使用UI线程,它允许你执行后台的操作并且把结果反馈到UI线程上,而不需要操控线程和Handlers。 AsyncTask 设计来成为 Thread 和 Handler 的辅助类,并不是一个通用的线程框架。它适合用于一些短时间的操作,例如几秒钟…
Android 源码阅读 | Handler
Handler允许用户发送 Message 和 Runnable,并进行处理。 每一个Handler对象都关联着一个线程和线程中的消息队列。当你创建一个新的Handler的时候,它会去绑定线程和消息队列。 Handler创建后,它就开始工作,将 message 和 runnab…
Android 源码阅读 | Looper
Looper类通常用户为线程提供消息循环。 线程默认下不会有消息循环,为了创建它,在线程里面调用 Looper.prepare ,接着调用 Looper.loop ,进行处理消息,直到循环停止。 大多数与消息循环的交互都是通过 Handler 类进行的。 在prepare方法中…
Android 源码阅读 | MessageQueue
Message 不是直接添加到 MessageQueue 中,而是通过与Looper关联的 Handler 对象添加的。 省略了一些无关紧要的代码。在最开始,我们看到有一个变量:Message mMessages ,可以明确,这个就是队列的头。而在 Message 类的源码分析…
Android 源码阅读 | Message
Message是一个消息类,携带着描述和任意数据对象。Message包括两个额外的int字段和一个 extra object 字段。 虽然Message的构造方法是一个公共方法,但是最好通过 Message.obtainMessage() 的方法去获得一个Message对象,因…
下一页
个人成就
文章被点赞
299
文章被阅读
46,106
掘力值
1,506
关注了
13
关注者
40
收藏集
11
关注标签
6
加入于
2017-09-15