首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Android补给站
午后一小憩
创建于2021-05-17
订阅专栏
公众号:Android补给站,Android干货集中地;帮助你更好的进阶。
等 162 人订阅
共139篇文章
创建于2021-05-17
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
算法之旅:复杂度分析
作为一个合格的技术人员,算法是必备知识。可以这么说,虽然不懂算法的人并不会失业,但如果你想快速晋升摆脱业务工程师CRUD的命运就一定离不开算法。同时不管是对于工作还是面试都是非常有用的。 由于这是算法第一篇,所以我们先从简单的复杂度说起。 任何算法都离不开复杂度分析,衡量一个算…
Android Startup最新进展
今天介绍一个有关启动优化的开源库android-startup。这个开源库主要是做什么的呢? android-startup提供一种在应用启动时能够更加简单、高效的方式来初始化组件。开发人员可以使用它来简化启动序列,并显式地设置初始化顺序与组件之间的依赖关系。 与此同时andr…
Kotlin协程实现原理:挂起与恢复
今天我们来聊聊Kotlin的协程Coroutine。 如果你已经接触过协程,但对协程的原理存在疑惑,那么在阅读本篇文章之前推荐你先阅读下面的文章,这样能让你更全面更顺畅的理解这篇文章。 ... 接下来的一些文章试着来分析一下这些疑问,也欢迎大家一起加入来讨论。 协程是使用非阻塞…
Kotlin协程实现原理:ContinuationInterceptor&CoroutineDispatcher
今天我们来聊聊Kotlin的协程Coroutine。 如果你已经接触过协程,但对协程的原理存在疑惑,那么在阅读本篇文章之前推荐你先阅读下面的文章,这样能让你更全面更顺畅的理解这篇文章。 ... 接下来的一些文章试着来分析一下这些疑问,也欢迎大家一起加入来讨论。 看到Interc…
Kotlin协程实现原理:CoroutineScope&Job
今天我们来聊聊Kotlin的协程Coroutine。 如果你已经接触过协程,但对协程的原理存在疑惑,那么在阅读本篇文章之前推荐你先阅读下面的文章,这样能让你更全面更顺畅的理解这篇文章。 ... 接下来的一些文章试着来分析一下这些疑问,也欢迎大家一起加入来讨论。 Coroutin…
动态代理分析与仿Retrofit实践
我们一直都在使用Retroift,都知道它的核心是动态代理。例如在之前的文章重温Retrofit源码,笑看协程实现中也简单提及到动态代理(来填之前挖的坑...)。 咳咳,大家不要关注起因,还是要回归当前的内容。 这次主要是来分析一下动态代理的作用与实现原理。既然都已经分析了原理…
重温Retrofit源码,笑看协程实现
最近回归看了一下Retrofit的源码,主要是因为项目接入了协程,所以想研究一下Retorift是如何支持协程的。Retrofit是在Version 2.6.0开始支持协程的,所以本篇文章有关Retrofit的源码都是基于2.6.0的。 相信老鸟都应该很清楚,Retrofit核…
Android Startup实现分析
Android Startup提供一种在应用启动时能够更加简单、高效的方式来初始化组件。开发人员可以使用Android Startup来简化启动序列,并显式地设置初始化顺序与组件之间的依赖关系。 与此同时,Android Startup支持同步与异步等待、手动控制依赖执行时机,…
我为何弃用Jetpack的App Startup?
最近Jetpack又添加了新成员App Startup,官方声明这是一个在Android应用启动时,针对初始化组件进行优化的依赖库。本人第一次听到后非常高兴,因为自己负责的项目在启动时需要初始化的东西实在是太多,而且有点杂乱无章,都耦合在一起了。对于可以异步初始化的组件也没有进…
Android Hilt实战初体验: Dagger替换成Hilt
在组件化AwesomeGithub项目中使用了Dagger来减少手动依赖注入代码。虽然它能自动化帮我们管理依赖项,但是写过之后的应该都会体会到它还是有点繁琐的。项目中到处充斥着Component,这让我想起了传统MVP模式的接口定义。 简单来说就是费劲,有许多大量的类似定义。可…
从零开始的Flutter之旅: MethodChannel
在flutter_github有这么一个场景:通过authorization认证方式进行登录。而authorization的具体登录形式是,通过跳转一个网页链接进行github授权登录,成功之后会携带对应的code到指定客户端中,然后客户端可以通过这个code来进行oauth授…
从零开始的Flutter之旅: Navigator
这篇文章是从零开始系列的第五期,前面我们讲到了Widget与结合数据共享的Provider处理。 这次我们接着来了解一下路由导航Navigator的相关信息。 Flutter中的路由管理与原生开发类似,都会维护一个路由栈,通过push入栈打开一个新的页面,然后再通过pop出栈关…
从零开始的Flutter之旅: Provider
在上篇文章中我们介绍了InheritedWidget,并在最后引发出一个问题。 虽然InheritedWidget可以提供共享数据,并且通过getElementForInheritedWidgetOfExactType来解除didChangeDependencies的调用,但还…
从零开始的Flutter之旅: InheritedWidget
在之前的文章中,介绍了StatelessWidget与StatefulWidget的特性与它们的呈现原理。 这期要聊的是它们的另一个兄弟InheritedWidget。 InheritedWidget是Flutter中的一个非常重要的功能组件,它能够提供数据在widget树中从…
从零开始的Flutter之旅: StatefulWidget
在之前的文章中,我们介绍了StatelessWidget的特性与它在Flutter中的呈现原理。 这次我们接着来聊聊它的兄弟StatefulWidget,俗称有状态小部件。 如果你看了我之前的文章,你可能已经非常熟悉无状态小部件StatelessWidget。它们是由一个蓝图与…
从零开始的Flutter之旅: StatelessWidget
这次要展示的是什么是Flutter的Widget,即小部件;以及如何在Flutter中使用StatelessWidget,即无状态小部件。 至于Flutter,通俗的讲是开发者可以通一套简单的代码来同时构建Android与IOS应用程序。 小部件是Flutter应用程序的基本构…
AwesomeGithub组件化探索之旅
之前一直听说过组件化开发,而且面试也有这方面的提问,但都未曾有涉及具体的项目。所以就萌生了基于Github的开放Api,并使用组件化的方式来从零搭建一个Github客户端,起名为AwesomeGithub。 在这里对组件化开发进行一个总结,同时也希望能够帮助别人更好的理解组件化…
Android Navigation的四大要点你都知道吗?
在JetPack中有一个组件是Navigation,顾名思义它是一个页面导航组件,相对于其他的第三方导航,不同的是它是专门为Fragment的页面管理所设计的。它对于单个Activity的App来说非常有用,因为以一个Activity为架构的App页面的呈现都是通过不同的Fra…
WorkManager从入门到实践,有这一篇就够了
上一次我们对Paging的应用进行了一次全面的分析,这一次我们来聊聊WorkManager。 WorkManager是什么?官方给的解释是:它对可延期任务操作非常简单,同时稳定性非常强,对于异步任务,即使App退出运行或者设备重启,它都能够很好的保证任务的顺利执行。 所以关键点…
Paging在RecyclerView中的应用,有这一篇就够了
经过一年的发展,AAC又推出了一系列新的组件,帮助开发者更快的进行项目框架的构建与开发。这次主要涉及的是对Paging运用的全面介绍,相信你阅读了这篇文章之后将对Paging的运用了如指掌。 Paging专注于有大量数据请求的列表处理,让开发者无需关心数据的分页逻辑,将数据的获…
下一页