首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
caz
掘友等级
Androider
尝试写点东西
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
13
文章 13
沸点 0
赞
13
返回
|
搜索文章
最新
热门
Android系统服务是如何获取的
在实际开发中,当我们需要编写提供某一业务流程处理的Manager,通常会实现为单例。那么上面那行代码背后发生了什么,为什么Android不使用单例模式呢?下面我们观察Android是如何设计获取系统服务的,它如何从应用侧到达系统侧。 可以思考一下,不在每个服务中单独使用单例的原…
[译] 为什么Kotlin协程的异常处理这么难?到底要如何掌握它?
本文通过代码示例,得到了6个协程异常处理相关的要点。需要指出的是,其中的异常处理中多次出现了单词"re-thrown",表示的是函数中出现了异常,通过调用栈向上抛出,即我们在不使用协程时Kotlin异常的传播方式。区别于Kotlin协程的结构化并发中沿着Job层次结构向上传播异…
LeakCanary检测内存泄露原理
以LeakCanary2.6源码分析LeakCanary检测内存泄露原理,为减少篇幅长度,突出关键点,不粘贴大量源码,阅读时需搭配源码食用。 LeakCanary只需引入依赖,不需要初始化代码,就能执行内存泄漏检测了,它是通过ContentProvider获取应用的contex…
为什么Fragment中要使用viewLifecycleOwner代替this
从类型上说,Fragment与viewLifecycleOwner的类型FragmentViewLifecycleOwner二者都继承了LifecycleOwner,向之前那样直接使用this,大部分情况下运行也是完全正常的。那么这里的Lint提醒是为什么呢? 可见这是有意为之…
尝试自己实现Android View布局流程
Android View的布局以ViewRootImpl为起点,开启整个View树的布局过程,而布局过程本身分为测量(measure)和布局(layout)两个部分,以View树本身的层次结构递归布局,确定View在界面中的位置。 下面尝试通过最少的代码,自己实现这套机制,注意…
从应用侧分析Activity启动流程与生命周期
我们知道,ActivityManagerService是Activity的管理者,处于系统进程中,以Binder机制与应用侧通信。可是为什么要有这个Manager呢?这是因为对于Android系统来说,APP中界面的直接体现者Activity,在整个APP的构成中,Activi…
实现Android消息机制
Android 开发中,Handler机制或者称为消息机制从APP层面主要用于线程间切换(尤其是切换到主线程)以及逻辑的延时执行,实际上,上述两种功能已经可以使用Kotlin协程代替。但是,Handler机制依旧是Android系统层面的消息循环机制的实现,且不会改变,深入理解…
尝试自己实现Android View Touch事件分发流程
Android Touch事件分发是Android UI中的重要内容,Touch事件从驱动层向上,经过InputManagerService,WindowManagerService,ViewRootImpl,Window,到达DecorView,经View树分发,最终被消费。…
Kotlin协程中的线程池
协程这个概念本身是在很多编程语言都存在的,与线程相比,协程强调的是不同协程的切换因不需要操作系统调度而开销更低,以更实现更高效的异步编程。其实这样说也并不准确,因为协程的实现是依赖与语言与平台的,首先并不是所有的协程的切换都不需要操作系统的调度;其次对于JVM来说,一个Thre…
Java线程池是如何运行的
异步编程工具在Android开发中目前最被推荐的就是Kotlin协程,在引入Kotlin协程机制前,除了响应式扩展(RxJava)兼任异步编程工具外,Java API中线程与线程池就是最重要异步编程手段。而对于Android平台的Kotlin协程实现来说,依然使用的是线程池来作…
下一页
个人成就
文章被点赞
112
文章被阅读
37,504
掘力值
893
关注了
13
关注者
21
收藏集
2
关注标签
1
加入于
2019-09-10