- 博客(162)
- 资源 (11)
- 收藏
- 关注
原创 Android单元测试(九):查漏补缺篇
最近抽时间检查了一下年前有关单元测试的八篇博客,查漏补缺了一下。后面如果有更多关于单元测试的心得收获,也会继续补充。1.AssertJ在Android单元测试(一):JUnit框架的使用中,我们介绍了如何使用JUnit来进行断言。不多说实话JUnit使用起来还是不太友好,不是很直观。所以补充介绍一下AssertJ。 AseertJ: JAVA 流式断言器,什么是流式,常...
2018-05-15 13:01:28 5957 5
原创 安卓开发中遇到的奇奇怪怪的问题(二)
接着早前的安卓开发中遇到的奇奇怪怪的问题(一) ,再向大家分享我在项目中遇到的奇怪问题。希望对大家有帮助。1.RecyclerView自动滚动之前碰到的一个奇怪问题:RecyclerView 嵌套 RecyclerView,结果内部的RecyclerView会自动的滑动至顶部。最终找到了解决方法:RecyclerView常见问题解决方案两种解决办法:一. 内部Recyclerv...
2018-04-14 16:05:52 4858 1
原创 玩玩Andoid的拖拽——实现一款万能遥控器
本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发。 这是模仿乐视遥控App中添加万能遥控器的交互效果,实现效果如下:感觉是不是有点小炫酷与小复杂,其实整个实现大致分为三部分:绘制手机实现拖动修正位置1.绘制手机这部分其实都是自定义View的基础。仔细观察手机的组成,无非就是圆角矩形、圆、线、矩形组成。首先在onMeasure中计算手...
2018-03-07 09:29:24 10005 9
原创 Android单元测试(八):Dagger与单元测试
本篇紧接着上一篇的内容,对MVP + Dagger进行单元测试。Dagger的部分可以参看 Dagger2与AndroidInjector1.相关实现代码首先添加Dagger所需的依赖:compile 'com.google.dagger:dagger:2.13'compile 'com.google.dagger:dagger-android:2.13'compile
2018-02-07 10:39:01 5673 1
原创 Android单元测试(七):MVP与单元测试
本篇介绍如何对MVP架构的项目进行单元测试。会用到之前六篇文章中所介绍的内容,算是学以致用了。本文中我没具体说明的地方前几篇文中一定会有的。希望大家可以循序渐进。对于MVP网上也有很多变种,各有千秋,但是万变不离其宗。本篇采用的MVP是《Android源码设计模式解析与实战》这本书中介绍的一种,我也有写过相关的读书笔记,没看过这本书的可以简单了解下。我本人还是很喜欢这种MVP的。1.
2018-01-27 22:39:49 9610 2
原创 Android单元测试(六):RxJava测试
随着响应式编程RxJava这几年的火热,大家在项目中也会常常使用。RxJava提供了大量的操作符,让我们的代码显得更简洁,对于线程的切换也更加自如。那么当我们写单元测试时,如何方便的测试RxJava呢?这就是本篇的内容。
2018-01-06 16:21:48 8855
原创 Android单元测试(五):网络接口测试
在平日的开发中,我们用后台写好给我们接口去获取数据。虽然我们有一些请求接口的工具,可以快速的拿到返回数据。但是在一些异常情况的处理上就不太方便了。
2017-12-23 20:27:24 23239 11
原创 Android单元测试(四):Robolectric框架的使用
学习了前三篇有关单元测试的内容,你会发现好像和Android没有什么关系,都是Java。因为文章中的例子并没有使用到Android中所特有的组件和方法。
2017-12-04 15:22:56 14530 10
原创 Android单元测试(三):PowerMock框架的使用
之前的两篇文章分别说到了 JUnit 与 Mockito ,一个主要用于断言,一个用于模拟我们的非测试类。今天说一说PowerMock ,它拓展了Mockito框架,从而支持了mock static方法、private方法、final方法与类等等。(这里八卦一下,为什么 Mockito 不自己支持 private 方法?有兴趣的自行查看原因)1.PowerMock选择PowerMoc
2017-11-19 11:29:55 16758 16
原创 Android单元测试(二):Mockito框架的使用
在实际的单元测试中,我们测试的类之间会有或多或少的耦合,导致我们无法顺利的进行测试,这时我们就可以使用Mockito,Mockito库能够Mock(我喜欢理解为模拟)对象,替换我们原先依赖的真实对象,这样我们就可以避免外部的影响,只测试本类,得到更准确的结果。当然它的功能不仅仅只是这些,例如TDD(测试驱动开发)也是一大亮点,下面我在详细说明。1.Mockito介绍使用时在buil...
2017-11-05 15:57:38 19877 10
原创 Android单元测试(一):JUnit框架的使用
1.前言网上有许多关于单元测试的好处,这里我就不去说了。我写单元测试的理由很简单粗暴,就是图一个方便。如果你想早点写完下班,那么你就需要掌握单元测试。
2017-10-15 19:47:57 45958 19
原创 安卓实现扫一扫识别数字
本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发。 公司业务需求,需要做手机号码的识别。所以有了此篇文章,现在就将实现过程分享给大家。1.准备工作首先实现识别数字等字符,我们要知道需要采用OCR (Optical Character Recognition,光学字符识别)来实现。而tesseract是非常不错的开源OCR工具,但是要在Android中直接...
2017-09-13 10:59:09 43072 69
原创 使用gradle集成360加固
360加固我想大家并不陌生,使用起来也比较简单。只要下载它的加固助手上传我们打包签名好的APK文件就可以完成加固。但我们是否可以让他更加的便捷呢?答案是肯定的。1.准备首先我们下载360加固助手。这里我使用Windows版来说明。解压后我们将jiagu文件夹放到我们项目的根目录中。因为360加固支持命令行方式加固,并且提供了详细的命令操作。因此我们可以使用sh脚本来...
2017-07-10 16:33:20 6674 9
原创 Dagger2与AndroidInjector
使用过Dagger开发Android应用的小伙伴会知道我们会在Activity或Fragment的生命周期方法中执行成员注入。比如这样:
2017-06-11 15:12:29 15880 4
原创 ChangeTabLayout实现过程
ChangeTabLayout是我模仿乐视LIVE App主界面的TabLayout效果实现的,希望大家多多支持。
2017-04-01 10:14:30 5657 2
转载 RecyclerView局部刷新爬坑之路
前几天看到的一篇文章,感觉和我的爬坑经历很像,感觉相见恨晚,所以转载一下。原文地址:安卓易学,爬坑不易—腾讯老司机的RecyclerView局部刷新爬坑之路
2017-03-23 22:44:30 6141 6
原创 说一说开源许可协议
1.作用1 首先协议保护了我们的合法权利。保证这些软件不被一些商业机构或个人窃取。2 通过协议内容,使用者了解自身拥有的权限。可以方便使用。所以使用开源协议真的是利人利己。如果我们没有添加协议,那么默认是你保留所有权力,不允许任何人复制,分发或创建衍生作品。
2017-02-21 16:13:11 3479
原创 一些RxBinding使用场景
1.首先RxBinding是对Android View事件的扩展,它使得你可以对View事件使用RxJava的各种操作。2.提供了与RxJava一致的回调,使得代码简洁明了。尤其是页面中充斥着大量的监听事
2017-01-21 15:09:21 16848 4
原创 一些小效果的实现
这篇可能是今年的最后一篇博客,时间真是飞快。。。话说今年还是比较忙的,没有去年分享的内容多。但是自己始终坚持至少一月分享一篇。生怕长时间不写了,就懒惰了。
2016-12-18 11:48:25 4817 10
原创 一些你可能需要的okhttp实现
本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发。今天分享一些我在项目中使用到的okhttp实现,由简至难。(以下内容均在okhttp3.4.1下正常使用)
2016-11-16 15:16:26 9506 3
原创 一些你需要知道的布局优化技巧
转载请注明出处:http://blog.csdn.net/qq_17766199/article/details/52863741今天分享一些layout布局书写中的一些技巧,希望看过之后你也一样可以写出性价比高的布局。我个人的目标是用最少的View写出一样效果的布局。
2016-10-19 21:50:45 12144 62
原创 安卓开发中遇到的奇奇怪怪的问题
写这篇文章属于脑中一闪的一个念头,是想着把自己做项目中遇到的一些奇怪问题和解决办法分享出来。因为是现想,所以想到一个在更新一个吧。可能有理解错误的地方,望指出。1.App的首次安装。问题描述:在我们安装完成一个app时,在安装界面直接点击打开。我们进入了app的首页,这时我们按home键返回桌面,再点击应用图标,会发现没有直接进入首页,而是先进入了app的闪屏页,在进入首页。重...
2016-09-25 12:49:21 5974 5
转载 使用Picasso加载图片的内存优化实践
我来简单对比一下常用的图片加载库Picasso、Glide、Fresco。(不要问我UIL,因为作者已经不维护了,不推荐使用了。但是他的设计思想值得每个人学习!)
2016-08-27 14:21:04 2280
原创 谈谈Android 6.0 的动态权限管理
1.前言大家都知道Android 6.0的新特性之一就是应用权限的管理。也就是说凡是涉及用户隐私的权限,用户可以自己去设置管理了。然而在6.0以前,我们安装一款APP是默认同意此APP所需的所有权限(比如定位、访问通讯录),不同意就不能安装。当然,国内的一些手机厂商基于Android定制的系统中,可以实现在6.0以前关闭指定的权限。如下图:2.危险权限列表(Dangerous ...
2016-07-24 12:53:09 24725 8
转载 Retrofit2.0 完美同步Cookie实现免登录
Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息
2016-06-29 22:59:24 9138 2
原创 关于RxJava防抖操作
在实际开发中为了防止用户手抖点开两个重复的界面,我们会做防抖处理。(这里吐槽一下微信,快速点击朋友圈就可以点开多个页面。。。)解决的老办法我就不介绍了,这里我们主要说说利用RxJava来实现。
2016-05-18 10:41:41 23162 5
转载 其实你不知道MultiDex到底有多坑
就在前几天,公司正在做的项目遇到了方法数越界的问题,当时真是醉了。想想也难怪,项目中的依赖库就有三十多个,方法数不越界才怪。所以马上上网寻找解决方法,于是找到了下面这篇文章,觉得文章讲解的很全面,所以转载过来,分享给更多的人。最后感谢作者的分享精神。
2016-04-30 11:22:23 22621 1
原创 Retrofit结合RxJava使用说明
最近也不知道博客写什么内容,大家有什么想了解的内容,也可以评论告诉我,我尽力解答。如果对Retrofit不了解可以看我之前的一篇博客:[Retrofit 2.0使用](http://blog.csdn.net/qq_17766199/article/details/49946429) ,这次的内容也是在此基础上的。
2016-03-19 19:55:05 2833 7
转载 当 Dagger2 应用在 MVP 框架中
原文链接:当 Dagger2 应用在 MVP 框架中 关于 Dagger2 自己一只想搞明白,但是从去年开始到现在,说真的,看过不少介绍 Dagger2 的文章,但自己一只云里雾里,最近打算把 Dagger2 应用到 MVP 框架中去,所以就重新翻看相关技术文章,重新学习下
2016-02-01 10:09:29 2593 1
原创 Dagger2使用攻略
Dagger2使用攻略 Dagger 2 是 Square 的 Dagger 分支,是一种依赖注入框架。目前由 Google 接手进行开发,Dagger2是使用代码自动生成和手写代码来实现依赖注入。据说在 Dagger 的基础上效率又提升了13%,并且同样功能强大
2016-01-29 11:19:09 7638 4
原创 《Android源码设计模式解析与实战》读书笔记(二十六)
第二十六章、MVP应用构架模式1.MVP介绍 MVP模式是MVC模式的一个演化版本,MVP全称Model-View-Presenter。目前MVP在Android应用开发中越来越重要了。在Android中,业务逻辑和数据存取是紧紧耦合的,很多缺乏经验的开发者很可能会将各种各样的业务逻辑塞进某个Activity、Fragment或者自定义View中,这样会使得这些组件的单个类型臃肿不堪。
2016-01-27 08:58:31 7964 9
原创 《Android源码设计模式解析与实战》读书笔记(二十五)
第二十五章、MVC的介绍与实战1.MVC的基本介绍 MVC全称是Model - View - Controller,是模型(model)-视图(view)-控制器(controller)的缩写。MVC是一种框架模式而非设计模式,GOF把MVC看作是3种设计模式:观察者模式、策略模式与组合模式的合体,而核心是观察者模式。
2016-01-25 09:01:13 3703 5
原创 《Android源码设计模式解析与实战》读书笔记(二十四)
第二十四章、桥接模式 桥接模式也称为桥梁模式,是结构型设计模式之一。桥接模式中体现了“单一职责原则”、“开闭原则”、“里氏替换原则”、“依赖倒置原则”等。同时它也是很实用的一种模式。
2016-01-22 09:09:47 3015 1
原创 《Android源码设计模式解析与实战》读书笔记(二十三)
第二十三章、外观模式 外观模式是结构型设计模式之一,它在开发中的运用频率非常高,是我们封装API的常用手段。我们经常使用的三方SDK基本都使用的外观模式,这样可以对用户屏蔽很多实现细节,降低用户使用成本
2016-01-20 09:04:58 2699 3
原创 《Android源码设计模式解析与实战》读书笔记(二十二)
第二十二章、享元模式 享元模式是结构型设计模式之一,是对对象池的一种实现。就像它的名字一样,共享对象,避免重复的创建。我们常用的String 就是使用了共享模式,所以String类型的对象创建后就不可改变,如果当两个String对象所包含的内容相同时,JVM只创建一个String对象对应这两个不同的对象引用。
2016-01-18 09:21:30 2705 1
原创 《Android源码设计模式解析与实战》读书笔记(二十一)
第二十一章、装饰模式 装饰模式也称为包装模式,是结构型设计模式之一。装饰模式是一种用于替代继承技术的一种方案。1.定义动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。
2016-01-16 11:31:47 2562 1
原创 《Android源码设计模式解析与实战》读书笔记(二十)
第二十章、适配器模式 适配器模式是结构型设计模式之一,它在我们的开发中使用率极高,比如ListView、GridView以及RecyclerView都需要使用Adapter。1.定义适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配无法在一起工作的两个类可以在一起工作。
2016-01-14 09:17:58 3068 1
原创 《Android源码设计模式解析与实战》读书笔记(十九)
第十九章、组合模式 组合模式也称为部分-整体模式,结构型设计模式之一。1.定义将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。2.使用场景(1)表示对象的部分-整体层次结构时。(2)从一个整体中能够独立出部分模块或功能的场景。
2016-01-12 09:09:13 2466 1
InstaMaterial - eclipse版
2015-08-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人