我为何弃用Jetpack的App Startup?

2020-08-05
阅读 7 分钟
6.7k
最近Jetpack又添加了新成员App Startup,官方声明这是一个在Android应用启动时,针对初始化组件进行优化的依赖库。本人第一次听到后非常高兴,因为自己负责的项目在启动时需要初始化的东西实在是太多,而且有点杂乱无章,都耦合在一起了。对于可以异步初始化的组件也没有进行异步处理,而对于已经处理过的异步组件它们之...

Android Hilt实战初体验: Dagger替换成Hilt

2020-07-17
阅读 7 分钟
6.7k
在组件化AwesomeGithub项目中使用了Dagger来减少手动依赖注入代码。虽然它能自动化帮我们管理依赖项,但是写过之后的应该都会体会到它还是有点繁琐的。项目中到处充斥着Component,这让我想起了传统MVP模式的接口定义。

从零开始的Flutter之旅: Provider

2020-06-22
阅读 8 分钟
3.4k
往期回顾 从零开始的Flutter之旅: StatelessWidget 从零开始的Flutter之旅: StatefulWidget 从零开始的Flutter之旅: InheritedWidget 在上篇文章中我们介绍了InheritedWidget,并在最后引发出一个问题。 虽然InheritedWidget可以提供共享数据,并且通过getElementForInheritedWidgetOfExactType来解除didChangeDependenc...

WorkManager从入门到实践,有这一篇就够了

2019-08-15
阅读 9 分钟
11.9k
前言 上一次我们对Paging的应用进行了一次全面的分析,这一次我们来聊聊WorkManager。 如果你对Paging还未了解,推荐阅读这篇文章: Paging在RecyclerView中的应用,有这一篇就够了 本来这一篇文章上周就能够发布出来,但我写文章有一个特点,都会结合具体的Demo来进行阐述,而WorkManager的Demo早就完成了,只是要结合...

What? 你还不知道Kotlin Coroutine?

2019-06-28
阅读 7 分钟
7.2k
今天我们来聊聊Kotlin Coroutine,如果你还没有了解过,那么我要提前恭喜你,因为你将掌握一个新技能,对你的代码方面的提升将是很好的助力。

Android Gradle系列-进阶篇

2019-06-10
阅读 6 分钟
6.3k
上篇文章我们已经将Gradle基础运用介绍了一遍,可以这么说,只要你一直看了我这个Gradle系列,那么你的Gradle也将过关了,应对正常的工作开发已经不成问题了。

Gradle系列-运用篇

2019-05-30
阅读 10 分钟
4.3k
在app module下的gradle.build中都有一个android闭包,主要配置都在这里设置。例如默认配置项:defaultConfig;签名相关:signingConfig;构建变体:buildTypes;产品风格:productFlavors;源集配置:sourceSets等。

Android Gradle系列-原理篇

2019-05-17
阅读 8 分钟
5k
上周我们在Android Gradle系列-入门篇文章中已经将gradle在项目中的结构过了一遍。对于gradle,我们许多时候都不需要修改类似与*.gradle文件,做的最多的应该是在dependencies中添加第三方依赖,或者说修改sdk版本号,亦或者每次发版本改下versionCode与versionName。即使碰到问题也是直接上google寻找答案,而并没有真...

Gson与List<T>对象间的相亲之旅

2019-05-10
阅读 5 分钟
4.4k
随着人们的生活水平的提高,连带着人与人之间的相亲渠道也进一步改善。最近偶尔看到几档相亲的综艺节目,不管是平民还是明星。可见相亲的热潮正扑面而来。这不Google与Java两个老家伙也坐不住了,分别想着自己排行285的儿子Gson与自己排行570的女儿List&lt;T&gt;也该到了相亲的年龄了。于是Google与Java两个老油条会心一...

Android Gradle系列-入门篇

2019-05-07
阅读 5 分钟
4.7k
接下来的一段时间会对Android Gradle的相关知识进行梳理,所以借此整理成一个系列。如果你是刚入行的新秀,那么这个系列将会非常适合你,因为Android基本的配置都与Gradle有关。当然如果你已经入行,但对Gradle还是停留在表面的认知上,这个系列也会对你有所帮助。

自定义Android注解Part3:绑定

2018-07-12
阅读 4 分钟
2.9k
经过前面的了解,我们三大部分:butterknife-annotations、butterknife-compiler与butterknife-bind。现在就剩下最后一部分butterknife-bind。该部分是对我们前面定义的注解变量与自动生成的代码进行绑定,即调用我们自动生成的代码。

自定义Android注解Part2:代码自动生成

2018-07-10
阅读 12 分钟
5.4k
上一期我们已经把butterknife-annotations中的注解变量都已经定义好了,分别为BindView、OnClick与Keep。

自定义Android注解Part1:注解变量

2018-07-03
阅读 5 分钟
6k
对于Android注解,或多或少都有一点接触,但相信大多数人都是在使用其它依赖库的时候接触的。因为有些库如果你想使用它就必须使用它所提供的注解。例如:ButterKnife、Dagger2、Room等等。

Android Architecture Components Part2:LiveData

2018-06-14
阅读 6 分钟
5.7k
感谢你的再次光临,欢迎来到Android Architecture Components(ACC)系列文章。上篇文章我们一起讨论了Room,通过Room我们能够方便的操作App的数据库。如果你的App对本地数据库有所依赖的话,Room你值得拥有。

Fresco源码分析之Controller

2017-12-28
阅读 13 分钟
3.1k
如果你是第一次看我的Fresco的源码分析系列文章,这里强烈推荐你先阅读我的前面两篇文章Fresco源码分析之DraweeView与Fresco源码分析之Hierarchy。好了,下面进入正题。在上篇文章中我们提到,在Fresco中关于图片的缓存、请求与显示逻辑处理都在Controller中。那么Controller到底是如何贯穿这些功能的呢?我们先从它的出...

Fresco源码分析之Hierarchy

2017-12-13
阅读 9 分钟
4.2k
上篇文章我们分析了Fresco中的DraweeView,对其中的一些原理以及方法进行了解析。在这过程中我们了解到,DraweeView中是通过DraweeHolder来统一管理的。而DraweeHolder又是用来统一管理相关的Hierarchy与Controller,如果想了解DraweeView相关的知识,可以先看下我的前一篇文章Fresco源码分析之DraweeView。今天这里进一...

Fresco源码分析之DraweeView

2017-12-05
阅读 8 分钟
5.5k
在Android中图片加载的框架很多,例如:Fresco、Picasso、Glide与Imageloader。它们都有各自的优点,但总的来说,使用起来方便简单、可配置性高与提供良好的缓存机制。由于平常主要用的还是Fresco,所以这里有必要对Fresco的原理进行深入研究。这样对于以后的使用与理解将会得到巨大的帮助。

基于Fresco的大图浏览

2017-03-06
阅读 5 分钟
8.3k
上个星期是个忙碌的一周,全周都在赶进度,可能是过年过的太舒畅了吧。现在终于有空来坐下来,安安静静的思考下这忙碌后的收获。在此也回顾一下,做个分享!

git使用杂记

2017-02-05
阅读 5 分钟
2.5k
作为一个开发者,如果现在还不知道git或者还不会使用git,那么你应该好好的反省。自己去好好看一遍的入门介绍吧。今天只是对自己在日常中使用git的一些常用命令的介绍与自己认为不错且能提高我们办公效率的命令。内容可能会有点杂乱,但绝对都是经典的命令,在此记下笔记,也希望能帮助来赏脸关顾的你们。

多线程下载

2016-06-26
阅读 3 分钟
3k
原理 多线程下载的原理就是将要下载的文件分成若干份,其中每份都使用一个单独的线程进行下载,这样对于文件的下载速度自然就提高了许多。 既然要分成若干部分分工下载,自然要知道各个线程自己要下载的起始位置,与要下载的大小。所以我们要解决线程的分配与各个线程定位到下载的位置。 封装 对于多线程下载我们可以将...

七大排序算法总结(java)

2016-06-19
阅读 3 分钟
5k
直接选择排序,整体思想是将数据分成两个区域,有序区与无序区。排序的时候是每次从无序区中选择出最小的数,然后插入到有序区中的最末尾,从而形成更大的有序区。直到无序区中的数为零,结束排序。

Socket的简单通信

2016-05-28
阅读 4 分钟
4.9k
首先一句话简单的介绍Socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。所有我们下面要建立一个服务端与客户端的通信。

Android二维码扫描

2016-04-16
阅读 5 分钟
2.9k
微信的二维码扫描用的越来越多,所以最近就想弄明白它的实现,于是找了点资料,发现都是说使用zxing的开源库。这是一个很强大的开源项目,引用该项目只要简单的几步代码就能实现一个简单的二维码扫描与生成的效果。这里做点笔记记下,还不知道如何实现的也可以来学习下。