首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Android
不近视的猫
创建于2021-05-12
订阅专栏
Android技术。
等 17 人订阅
共44篇文章
创建于2021-05-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
我们为什么要用 flow
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情 前言 首先,我们得明确 flow 的适用场景,那便是类似播报机情况,每隔一段时间就播报一段相似的内容。由此
flow 操作符全解析
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情 简易使用 声明 flow: 监听获取数据: 日志输出: 好了,正文开始。 flowOn 更改流发射的上下文
重拾 Kotlin 协程——异常剖析(4)
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,[点击查看活动详情](https://juejin.cn/post/7099702781094674468 "https:/
重拾线程——子线程异常,为什么 App 会崩溃(3)
前言 在 JDK 中,若子线程发生异常崩溃,并不会阻碍主线程的运行。 运行结果: 但是,在 Android 中,假如是子线程异常崩溃了,会导致整个 App 的退出。 运行结果: 这...这是为什么??
重拾 Kotlin 协程——获取返回值(3)
前言 当我们在同步代码块中执行代码时,获取返回值是一件十分轻松的事情,直接运算结果进行返回即可。但是,协程是一种异步的概念,所以需要一些特别的操作才能获取协程的返回值。经研究,一般使用以下三种: as
重拾线程——FutureTask 是如何吃掉异常(2)
前言 首先,我们先写个示例代码来运行 FutureTask: 运行结果: 很明显,没有抛出异常。但是假如调用了 get() : 运行结果: 下面,我们就来分析下,FutureTask 是如何吃掉异常,
重拾线程——异常处理(1)
关于线程的异常,我们可以先看一个小栗子🌰: 执行结果: 可以初步得出以下结论: 线程发生异常后,后续代码不会执行 一个线程发生异常,不会影响到其它线程的执行 无法简单的通过 try catch 线程来
重拾 Kotlin 协程——结构化并发(2)
取消协程 我们都知道,通过以下代码就可以启动一个协程进行运行: 但是,这个跟我们启动线程一样,具有一个很大的问题,就是不可控性,我们知道它什么时候启动,却不知道什么时候销毁,就像我们跳转在一个页面进行
重拾 Kotlin 协程——调度器(1)
调度器不仅只有 `Dispatchers.Main` 这种,还有: - **Dispatchers.Main** - **Dispatchers.Unconfined** - **Dispatche
自动更改 versionCode
前言 在我们每次发布新包的时候,总是需要更改 versionName 和 versionCode,versionName 是展示给用户看的版本名字,所以,每次发布都需要更改,这个可以理解,但是 ver
sleep()为什么要 try catch
前言 当我们在 Java 中使用 sleep() 让线程休眠的时候,总是需要使用 try catch 去包含它: 但是,我们却很少在 catch 中执行其它代码,仿佛这个 try catch 是理所当
面试官:Java 和 Kotlin 混用会出现什么问题
前言 这其实是上年面试时遇到的问题,后续去搜索,都没找到合适的答案,直至在工作中真的写到这 bug 后,才知道,Java 和 Kotlin 的混用,还是真的有坑的,真是血与泪的教训! 原由 我们都知道
同步屏障与异步消息,从入门到放弃 | 创作者训练营第二期
首先,我们得了解下,什么是同步屏障,它跟异步消息又有什么关系?这里的同步和异步又是什么?这里涉及到了 Handler机制。本文带你深入讲解。
给Bugly增加自定义处理异常功能 | 创作者训练营第二期
有没有什么方式既能使用到它的异常捕获机制,但是最终的异常信息由我们自己处理,而不是简简单单的调用系统默认的崩溃处理,例如,我们想新增自动重启功能。
面试官:如何提高Message的优先级 | 创作者训练营第二期
首先,我们先分析下,这个 Message 是由 Handler 进行发送,然后添加到 MessageQueue 中,Looper 遍历 MessageQueue 获取 Message 出来执行。
动态代理说明以及模拟 Retrofit 实践 | 创作者训练营第二期
什么是动态代理 动态代理的核心为代理模式,代理模式在实践的过程分为静态代理和动态代理。 关于代理模式的说明,百度百科是这样说的: 使用代码的话语去说明,其实就是定义一个接口,后续的对象 A、B 可以实
写给还不会在项目中使用RxJava的讲解
或许会有人疑问,都什么年代了,还不会 RxJava?em...还真有,这并不关乎能力,很大原因在于环境。特别是一些公司技术要求会比较保守,或者技术负责人没有使用这种技术,那刚出来工作的同学就自然而然地不懂怎么使用了。 由此,对于一些了解 RxJava,却一直不会在项目开发使用的…
制作一个永远不会崩溃的App
最近想给 App 加上一个崩溃后自动重启的功能,便去查找了下资料,毕竟有很长一段时间没弄过。 不搜不知道,一搜吓一跳,居然看到这库的实现思路,居然能够让 App 产生异常后,不会崩溃。 好了,废话不多说,赶紧进正文。 其有两个版本,两个版本的思路是不一样的,但是能够实现同样的功…
自定义Gradle Plugin+字节码插桩
原本是想写一篇介绍字节码插桩的文章,但无奈的是使用字节码插桩之前需要使用到自定义 Gradle Plugin,似乎暗示着这篇文章并不会短。 在了解字节码插桩之前,我们先了解编译插桩。 相信大家都使用过 ButterKnife,了解过它原理的都知道,它是在编译期间生成相应的 ja…
字节码结构分析
使用 java 的人很多,使用 kotlin 的也不少,不过,对于它们编译后的文件,也就是 class 文件,却很多人望而却步,一是它晦涩难懂,二是它对于实际上的业务开发的帮助没那么常用。但是,它并不是没有用处的,只是你不懂而已。 开始正文。 然后使用 javac 进行编译。 …
下一页