自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

唯鹿的博客

一只努力的程序猿

原创 Android开源与干货网站汇总

19.04.29更新: gradle下载地址 maven依赖搜索 JetBrains 插件搜索 18.08.06更新: 距离首次发布过去了三年了,好多都已经无法访问了,表示很伤感。。。不过也有新的诞生了,补充一下! wan android鸿洋大神维护,满满干货,工具多多...

2015-08-10 13:27:31

阅读数 4972

评论数 4

原创 说说Flutter中的Semantics

Flutter中的Widget实在是太多了,很容易忽略很多实用的Widget。那么我个人很喜欢Flutter官方在YouTube上的Flutter Widget of the Week 系列视频。真的是可以发现宝藏,比如今天的主角Semantics。

2020-01-06 14:58:25

阅读数 854

评论数 0

原创 说说Flutter中的RepaintBoundary

一个懒洋洋的下午,偶然间看到了这篇Flutter 踩坑记录, 作者的问题引起了我的好奇。

2019-12-09 09:34:42

阅读数 1772

评论数 3

原创 Android单元测试(十):内容更新篇

距离我上一次写单元测试的内容已经是一年半以前了,在这期间有个别的内容随着相关库的升级也已经过时了。避免“误人子弟”,我对之前的Demo进行一下升级,本文就是相关内容的记录。

2019-11-11 09:28:12

阅读数 513

评论数 0

原创 Flutter适配深色模式(DarkMode)

也不知道写点什么,本来想写写Flutter的集成测试。因为前一阵子给flutter_deer写了一套,不过感觉也没啥,写不了几句话就放弃了。那就写写最近在做的事情。没错,就是文章标题提到的适配深色模式(DarkMode),也可以说是实现夜间模式的功能。

2019-10-14 08:15:55

阅读数 628

评论数 0

原创 Flutter开发中的一些Tips(三)

距离flutter_deer开源快3个月了,目前为止收获了1600+的Star,感谢大家的对此项目的认可支持。今天继续分享一些我在Flutter开发中遇到的问题希望对你有所帮助。本篇的所有例子,都在我开源的flutter_deer中。

2019-09-09 10:07:38

阅读数 1729

评论数 12

原创 Android 9.0 适配指南

又到了我一年一度写Android适配文章的时间,本身这篇应该会早几个月发出来,但是前两三个月主要忙于Flutter的项目,所以这篇文章才姗姗来迟。不过毕竟是9.0的适配,还不算太晚哈! 1.前言 从去年开始就有消息说,应用上架或者更新要求TargetSdkVersion最低要为26以上,也...

2019-08-05 22:24:32

阅读数 10668

评论数 4

原创 Flutter 动画曲线Curves 效果一览

Curves中一共38中动画曲线,我将文档中提供的MP4转为了GIF。方便大家使用动画时查找使用。 ...

2019-07-16 08:57:04

阅读数 1150

评论数 0

原创 Flutter开发中的一些Tips(二)

接着上篇 Flutter开发中的一些Tips,今天再分享一些我遇到的问题,希望“引以为戒”。本篇的所有例子,都在我开源的flutter_deer中。希望Star、Fork支持,有问题可以Issue。附上链接:https://github.com/simplezhli/flutter_deer ...

2019-07-11 09:28:37

阅读数 3080

评论数 6

原创 Flutter开发中的一些Tips

学习Flutter也有二个多月了,所以分享一下自己在实践中遇到的问题及心得。希望对你有所帮助! 1.防止溢出异常 异常大致如下: A RenderFlex overflowed by 22 pixels on the bottom. 导致的原因就是在水平或者垂直方向上的内容超过了父部件...

2019-06-12 21:17:51

阅读数 5476

评论数 14

原创 Android 开发高手课 温故知新篇

Mac终端:pip command not found 安装 pip是python的包管理工具,在Python2.7的安装包中,easy_install.py是默认安装的,而pip需要我们手动安装 sudo easy_install pip sudo pip install enum s...

2019-05-13 21:22:40

阅读数 873

评论数 1

原创 Android 9.0中的新功能 - PrecomputedText

PrecomputedText如字面意义一样,是用来预先计算文本的。它的诞生也是因为计算文本是一个耗时操作,它需要根据字号、字体、样式、换行等去计算,并且这个计算时间随着文字数量的增加而增加。

2019-04-15 08:29:56

阅读数 1727

评论数 0

原创 Android 开发高手课 课后练习(22,27,ASM)

Chapter22 尝试使用facebook redex库来优化我们的安装包。 准备工作 首先是下载redex: git clone https://github.com/facebook/redex.git cd redex 接着安装: autoreconf -ivf ...

2019-03-14 21:44:06

阅读数 720

评论数 5

原创 Android 开发高手课 课后练习(6 ~ 8,12,17,19)

接着上篇 Android 开发高手课 课后练习(1 ~ 5),今天练习6,7,8,12,16这五节内容,相比1至5轻松了很多。 Chapter06 该项目展示了使用 PLTHook 技术来获取 Atrace 的日志,可以学习到systrace的一些底层机制 没有什么问题,项目直接可以...

2019-02-18 20:17:13

阅读数 1260

评论数 8

原创 Android 开发高手课 课后练习(1 ~ 5)

Chapter01 例子里集成了Breakpad 来获取发生 native crash 时候的系统信息和线程堆栈信息。 直接运行项目,按照README.md的步骤操作就行。 使用例子中提供的 tools/mac/minidump_stackwalker 工具来根据minidump 文...

2019-01-05 21:00:56

阅读数 3756

评论数 6

原创 安卓开发中遇到的奇奇怪怪的问题(三)

https://github.com/dstmath/HWFramework/blob/master/Honor5C-7.0/src/main/java/java/lang/Daemons.java https://github.com/dstmath/HWFramework/blob/mast...

2018-12-10 08:48:19

阅读数 3278

评论数 7

原创 记一次Glide的错误配置

1.问题 我们知道Glide默认使用的是HttpUrlConnection的方式请求网络获取图片,具体实现参见HttpUrlFetcher 类。 而OkHttp的出现就是用于替代HttpUrlConnection和HttpClient,它的高效与强大我就不多说了,官方文档如下: OkHttp 是...

2018-11-11 18:03:17

阅读数 1193

评论数 0

原创 RecyclerView库中的遗珠

1.SortedList 顾名思义就是排序列表,它适用于列表有序且不重复的场景。并且SortedList会帮助你比较数据的差异,定向刷新数据。而不是简单粗暴的notifyDataSetChanged()。 我想到了一个场景,在选择城市页面,我们都需要根据拼音首字母来排序。我们来使用Sorted...

2018-10-22 17:58:31

阅读数 2131

评论数 2

原创 AppBarLayout各版本问题探究及解决

1.AppBarLayout嵌套滑动问题 前一阵将support库版本从25.4.0升级到了27.1.1后发现了这个问题。发现RecyclerView在滑动到底部后,会有近一秒的停滞,之后再去加载下一页数据。我们知道上拉加载实现方案基本都是监听滑动状态,当滑动停止时,再去加载下一页。代码基本...

2018-09-11 17:49:04

阅读数 4576

评论数 1

原创 AndroidX了解一下

1.前言 我选取了几个常用依赖库,我们可以看看变化: Old build artifact AndroidX build artifact com.android.support:support-compat androidx.core:c...

2018-08-06 09:25:31

阅读数 59162

评论数 17

原创 Android 8.0适配指北

又到了7月,这是我一年一度的写适配文章的时间,今年到了安卓8.0。为什么我会总会选在这个时间点,因为国内的手机升级总是慢一拍,还有好多的新特性可能也不支持。所以在没有真机的情况下,这类的适配也只是面向模拟器的适配,感觉只能是个参考,并不敢直接用到自己的项目上。不过这几年升级跟进速度是越来越快了,大...

2018-07-09 09:44:43

阅读数 17290

评论数 3

原创 感受LiveData 与 ViewModel结合之美

LiveData与ViewModel都是Android官方架构组件(Android Architecture Components)之一。 1.前言 虽说这篇是说LiveData与ViewModel,但是或多或少都有涉及另外一个组件:Lifecycles 。它们连同Room都是在17年谷歌...

2018-06-19 13:48:19

阅读数 29636

评论数 5

原创 Android单元测试(九):查漏补缺篇

最近抽时间检查了一下年前有关单元测试的八篇博客,查漏补缺了一下。后面如果有更多关于单元测试的心得收获,也会继续补充。 1.AssertJ 在Android单元测试(一):JUnit框架的使用中,我们介绍了如何使用JUnit来进行断言。不多说实话JUnit使用起来还是不太友好,不是很...

2018-05-15 13:01:28

阅读数 3412

评论数 2

原创 安卓开发中遇到的奇奇怪怪的问题(二)

接着早前的安卓开发中遇到的奇奇怪怪的问题(一) ,再向大家分享我在项目中遇到的奇怪问题。希望对大家有帮助。 1.RecyclerView自动滚动 之前碰到的一个奇怪问题:RecyclerView 嵌套 RecyclerView,结果内部的RecyclerView会自动的滑动至顶部。最终找到...

2018-04-14 16:05:52

阅读数 3829

评论数 1

原创 玩玩Andoid的拖拽——实现一款万能遥控器

本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发。 这是模仿乐视遥控App中添加万能遥控器的交互效果,实现效果如下: 感觉是不是有点小炫酷与小复杂,其实整个实现大致分为三部分: 绘制手机 实现拖动 修正位置 1.绘制手机 这部分其实都是自定义Vie...

2018-03-07 09:29:24

阅读数 5109

评论数 4

原创 Android单元测试(八):Dagger与单元测试

本篇紧接着上一篇的内容,对MVP + Dagger进行单元测试。Dagger的部分可以参看 Dagger2与AndroidInjector 1.相关实现代码 首先添加Dagger所需的依赖: compile 'com.google.dagger:dagger:2.13&#...

2018-02-07 10:39:01

阅读数 3420

评论数 0

原创 Android单元测试(七):MVP与单元测试

本篇介绍如何对MVP架构的项目进行单元测试。会用到之前六篇文章中所介绍的内容,算是学以致用了。本文中我没具体说明的地方前几篇文中一定会有的。希望大家可以循序渐进。 对于MVP网上也有很多变种,各有千秋,但是万变不离其宗。本篇采用的MVP是《Android源码设计模式解析与实战》这本书中介绍的一...

2018-01-27 22:39:49

阅读数 6609

评论数 2

原创 Android单元测试(六):RxJava测试

随着响应式编程RxJava这几年的火热,大家在项目中也会常常使用。RxJava提供了大量的操作符,让我们的代码显得更简洁,对于线程的切换也更加自如。那么当我们写单元测试时,如何方便的测试RxJava呢?这就是本篇的内容。

2018-01-06 16:21:48

阅读数 5232

评论数 0

原创 Android单元测试(五):网络接口测试

在平日的开发中,我们用后台写好给我们接口去获取数据。虽然我们有一些请求接口的工具,可以快速的拿到返回数据。但是在一些异常情况的处理上就不太方便了。

2017-12-23 20:27:24

阅读数 14486

评论数 16

原创 Android单元测试(四):Robolectric框架的使用

学习了前三篇有关单元测试的内容,你会发现好像和Android没有什么关系,都是Java。因为文章中的例子并没有使用到Android中所特有的组件和方法。

2017-12-04 15:22:56

阅读数 6987

评论数 6

原创 Android单元测试(三):PowerMock框架的使用

之前的两篇文章分别说到了 JUnit 与 Mockito ,一个主要用于断言,一个用于模拟我们的非测试类。今天说一说PowerMock ,它拓展了Mockito框架,从而支持了mock static方法、private方法、final方法与类等等。(这里八卦一下,为什么 Mockito 不自己支持...

2017-11-19 11:29:55

阅读数 7989

评论数 5

原创 Android单元测试(二):Mockito框架的使用

在实际的单元测试中,我们测试的类之间会有或多或少的耦合,导致我们无法顺利的进行测试,这时我们就可以使用Mockito,Mockito库能够Mock(我喜欢理解为模拟)对象,替换我们原先依赖的真实对象,这样我们就可以避免外部的影响,只测试本类,得到更准确的结果。当然它的功能不仅仅只是这些,例如T...

2017-11-05 15:57:38

阅读数 11362

评论数 5

原创 Android单元测试(一):JUnit框架的使用

1.前言网上有许多关于单元测试的好处,这里我就不去说了。我写单元测试的理由很简单粗暴,就是图一个方便。如果你想早点写完下班,那么你就需要掌握单元测试。

2017-10-15 19:47:57

阅读数 25301

评论数 14

原创 安卓实现扫一扫识别数字

本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发。 公司业务需求,需要做手机号码的识别。所以有了此篇文章,现在就将实现过程分享给大家。 1.准备工作 首先实现识别数字等字符,我们要知道需要采用OCR (Optical Character Recognitio...

2017-09-13 10:59:09

阅读数 26595

评论数 66

原创 Android 7.0脱坑指南

这篇文章所写的前三个问题是自己现实遇到的,后三个是收集来的没有验证,作为记录以备不时之需。

2017-08-19 10:26:08

阅读数 13651

评论数 4

原创 使用gradle集成360加固

360加固我想大家并不陌生,使用起来也比较简单。只要下载它的加固助手上传我们打包签名好的APK文件就可以完成加固。但我们是否可以让他更加的便捷呢?答案是肯定的。 1.准备 首先我们下载360加固助手。这里我使用Windows版来说明。 解压后我们将jiagu文件夹放到我们项目...

2017-07-10 16:33:20

阅读数 4856

评论数 9

原创 Dagger2与AndroidInjector

使用过Dagger开发Android应用的小伙伴会知道我们会在Activity或Fragment的生命周期方法中执行成员注入。比如这样:

2017-06-11 15:12:29

阅读数 12446

评论数 3

转载 史上最全WebView使用,附送Html5Activity一份

关于WebView使用很全面的一篇文章,分享给大家。

2017-05-11 22:34:16

阅读数 6904

评论数 6

原创 ChangeTabLayout实现过程

ChangeTabLayout是我模仿乐视LIVE App主界面的TabLayout效果实现的,希望大家多多支持。

2017-04-01 10:14:30

阅读数 4290

评论数 2

转载 RecyclerView局部刷新爬坑之路

前几天看到的一篇文章,感觉和我的爬坑经历很像,感觉相见恨晚,所以转载一下。原文地址:安卓易学,爬坑不易—腾讯老司机的RecyclerView局部刷新爬坑之路

2017-03-23 22:44:30

阅读数 4842

评论数 6

提示
确定要删除当前文章?
取消 删除