联动效果现代化的 Android 开发一定对 CoordinatorLayout 不陌生,CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout + Toolbar 的全家桶更是信手拈来,无需一行代码光靠 xml 就能实现下面这种折叠导航栏的炫酷效果:这种搭配的教程已经非常多了,不是本文的重点。在使用 xml 时候肯定不少同学掉过...
联动效果现代化的 Android 开发一定对 CoordinatorLayout 不陌生,CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout + Toolbar 的全家桶更是信手拈来,无需一行代码光靠 xml 就能实现下面这种折叠导航栏的炫酷效果:这种搭配的教程已经非常多了,不是本文的重点。在使用 xml 时候肯定不少同学掉过...
事件类型Android 触摸事件有两大类:ACTION_* 与 ACTION_POINTER_*。前者代表「主要手指」的事件,后者是多点触控中其他手指的事件。对于 DOWN 事件,第一根按下的是主要手指;对于 UP 事件,最后一根抬起的是主要手指。MotionEvent.action 实际是包含两种数据,一个是事件类型,一个是手指序号。所以需要使用 MotionEvent.actionMas...
Android 7 开始系统有了一个非常安全(讨厌)的限制,所有应用默认情况下不再信任用户自行安装的证书,而仅信任系统预装的。因此,即便我们安装证书后也无法愉快地抓包了:confused:但是这一限制仅对 targetSdkVersion>=24 的应用生效。下面提供几种方案绕过这一限制。添加证书信任本方案需要修改 AndroidManifest,推荐用于自己的应用,其他应用需要重新...
如果还不清楚什么是依赖注入,那么请参考之前写的 Dagger2 in Android(一)通俗基础开头部分。如果你不了解 Dagger 倒也无妨,本文会进行一定的对比,但仅针对接触过 Dagger 的同学,否则大可以忽略。Dagger2 作为著名优秀的依赖注入框架广为流传,何况还是 Android 的亲爸爸 - Google 在维护,因此相信很多人会将其作为 Android 开发的首选 DI...
使用协程解决实际问题前两章重点研究了协程如何简化代码,在 Android 中提供主线程安全,以及如何避免协程泄露。在此基础上,协程是一个在 Android 中进行后台处理以及以及简化回调的优秀方案。到目前为止,我们主要关注的是什么是协程以及如何管理它们。在这篇文章中,我们将看看如何使用它们来完成实战任务。协程是一个通用的语言特性,与函数在同一个级别——你可以用它实现任何可以用函数或对象来实现...
本篇将开始整合协程与 Android,探索如何启动并跟踪协程,以便适配 UI 生命周期。为何跟踪协程在第一篇中,我们探索了协程能解决的问题。总结一下,协程是解决这两个问题的优秀方案:在主线程运行长时间任务导致阻塞。从主线程上安全地调用一切 suspend 函数。也即主线程安全(Main-safety)为了解决这些问题,协程通过给常规函数添加 suspend 与 resume 操作,使得协程被...
本系列文章主要关注 Kotlin Coroutine(协程) 是如何工作的,以及如何解决实际的 Android 问题。但是相对来说不会过于深入底层,更偏向于应用。协程解决了什么?Kotlin 协程提供了一个全新的,更加简单地方式来实现异步。协程在 Kotlin 1.3 中正式发布,API 已经稳定,可以用于生产环境。事实上,协程的概念始终存在,最早是 Simula 语言在1967年探索了协程...
在之前我们讨论过,Dagger 在 Android 上普遍的结构是:定义一个全局的 AppComponent,其他组件依赖或继承它。假设现在有 AppComponent 与 ActivityComponent 两个,他们可能是这样编写的:@Module(subcomponents = [ActivityComponent::class]) class AppModule(val contex...