- 博客(235)
- 资源 (5)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android常用框架汇总
android开发常用的框架汇总,实时更新中网络访问RetrofitGradle:latestVersion:2.1.0compile 'com.squareup.retrofit2:retrofit:latestVersion'CallAdapters:RxJava - com.squareup.retrofit2:adapter-rxjavaGuava - com.squareup.re
2016-09-21 09:55:10
3181
转载 为数不多的人知道的AndroidStudio快捷键(二)
为数不多的人知道的AndroidStudio快捷键(二)这篇文章将会继续分享一些实用的快捷键,没有看过为数不多的人知道的AndroidStudio快捷键(一),可以点击下方连接前往为数不多的人知道的AndroidStudio快捷键(一)软件环境:Mac/Win/Linux快捷键: DefaultAndroidStudio v3.5.0不同的外接键盘使用下列快捷键,需要根据自己的键...
2019-12-19 13:52:43
548
1
转载 为数不多的人知道的AndroidStudio快捷键(一)
为数不多的人知道的AndroidStudio快捷键(一)好的idea能提高我们的工作效率,如果掌握一些快捷键,能帮我们从繁琐重复的工作解放出来,写起代码来效率就越高,接下来想分享一些实用的快捷键, 如果已经看完了这篇,点击下方连接前往为数不多的人知道的AndroidStudio快捷键(二)为数不多的人知道的AndroidStudio快捷键(二)软件环境:Mac/Win/Linux...
2019-12-19 13:48:42
541
原创 Java注解详解
文章目录参考资料源码地址概述Annotation元素默认值用途元注解@Documented@Target@Retention@Inherited@Override@SuppressWarnings抑制警告的关键字@Deprecated@SafeVarargs@FunctionalInterface@Repeatable检索注解参考资料Java中的注解是如何工作的?Java基础加强总结(一)...
2019-04-19 14:58:39
1455
原创 ButterKnife源码分析
文章目录使用源码解析1. 定义注解2. 定义`AbstractProcessor`的实现类扫描&处理注解生成`Java`模板代码3. 绑定注入使用设置依赖及插件在根gradle中,配置ButterKnife插件buildscript { dependencies { ... classpath 'com.ja...
2019-04-19 11:20:10
522
原创 JavaPoet使用详解
文章目录简介常用方法设置修饰关键字设置注解设置字段设置文档注释设置分号、换行和缩进设置方法TypeSpec创建类创建枚举类创建接口创建注解创建匿名内部类AnnotationSpecMethodSpecFieldSpecParameterSpecCodeBlockCodeBlock.Builder占位符$L$S$N$T$$$W$Z$>$<$[$]格式化字符串相对参数位置参数命名参数Typ...
2019-04-17 14:47:09
7508
5
转载 OO设计原则 -- OO设计的原则及设计过程的全面总结
前面发表了5篇OO设计原则的文章,在这里我将这个5个原则如何在我们设计过程进行应用进行一下总结,单一职责原则(SRP)开放/封闭原则(OCP)里氏替换原则(LSP)接口分隔原则(ISP)依赖倒置原则(DIP)这是我通过阅读和学习很多博文和资料后进行的一个梳理和总结,仅供大家来参考。一.OO(面向对象)的设计基础面向...
2018-10-22 13:33:01
528
转载 OO设计原则 -- Dependency Inversion Principle:依赖倒置原则(DIP)
依赖倒置原则的2个重要方针A. High level modules should not depend upon low level modules. Both shoulddepend upon abstractions.高层模块不应该依赖于低层模块,二者都应该依赖于抽象B. Abstractions should not ...
2018-10-22 13:25:43
757
转载 OO设计原则 -- Interface Segregation Principle:接口分隔原则(ISP)
概要Clientsshould not be forced to depend upon interfaces that they do not use.不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。它包含了2层意思:- 接口的设计原则:接口的设计应该遵循最小接口原则,不要把用户...
2018-10-22 10:27:24
566
转载 OO设计原则 -- Liskov Substitution Principle: 里氏替换原则(LSP)
概要&nbsp;Functions that use pointers or references to base classesmust be able to use objects of derived classes without knowing it.所有引用基类的地方必须能透明地使用其子类的对象。&nbsp;即:◇...
2018-10-22 10:23:42
644
转载 OO设计原则 — The Open-Closed Principle:开放/封闭原则(OCP)
对于一个软件的实体(类,模块,函数等)应该是可以扩展的,但是不可被修改。一、概要开放/封闭原则(The Open-Closed Principle:OCP)是在面向对象设计中,类和模块等必须遵循以下规则:◇ 对于功能的扩展因该是开放的,即可以追加机能。◇ 对于修改是封闭的,即既存的机能的实体是不可以修改的。以上两条规则就是说“软件实体应当在不修改的前提下扩展”开放/封闭原则(OCP)...
2018-10-22 10:15:50
813
转载 OO设计原则 — Single Responsibility Principle:单一职责原则(SRP)
• 概要There should never be morethan one reason for a class to change.永远不要让一个类存在一个以上的变更理由。如果一个类存在多个改变它的理由,就说明这个类具有多个职责,有需要重新设计该类的必要。SRP单一职责原则的核心含义:◇ 一个类有且仅有一个职责。◇ 如果一个类需要改变,改变它的理由永远只有一...
2018-10-22 10:10:35
1164
原创 JUnit 5-禁用测试
禁用测试若在执行测试时,某些测试类或者测试方法不需要执行时,就需要禁用 整个测试类或者单个测试方法。禁用测试的方式@Disabled注解条件测试执行的相关注解自定义ExecutionCondition@Disabled@Disabled注解用于注解测试类或者单个测试方法。若测试类或者单个测试方法被@Disabled注解,表明整个测试类或者单个测试方法已禁用且不再执行。在使用@D...
2018-09-21 14:43:35
2965
原创 JUnit5-假设(Assumptions)
假设在org.junit.jupiter.api.Assumptions 中,封装了一组使用的方法,以支持基于假设的条件测试执行。假设实际就是指定某个特定条件,假如不能满足假设条件,假设不会导致测试失败,只是终止当前测试。这也是假设与断言的最大区别,因为对于断言而言,会导致测试失败。使用场景只要因为某种条件下,没有必要在继续执行给定的测试方法,通常会使用假设。API...
2018-09-13 14:29:59
1256
原创 JUnit5-断言
断言是编写单元测试用例的核心方式,即期望值是多少,测试的结果是多少,以此来判断测试是否通过。在JUnit Jupiter中,所有的断言都是org.junit.jupiter.api.Assertions 类中static方法。assertAll:断言所有提供的可执行文件都不会抛出异常。若提供的标题(heading),其将包含在MultipleFailuresError的消息字符串中。ass...
2018-09-10 16:17:06
4785
原创 JUnit5-集成指南
Junit5简述Junit之前的版本是一个整体,而Junit5与其不同,它是由几个不同的模块组成,而这些模块分别来自三个不同的子项目中。在官方文档中,给出了这么一个JUnit5的等式:JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit VintageJUnit Platform 在JVM上 启动测试框架 的基础平台。定义了TestEn...
2018-09-10 10:13:36
2252
原创 MySQL中视图和表的区别及联系
两者的区别视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化表,而表不是。视图没有实际的物理记录,而表有。表示是内容,视图是窗口。表占用物理空间,而视图不占用物理空间,只是逻辑概念的存在。表可以及时修改,但视图只用创建的语句来修改。视图是查看数据表的一种方法,可以查询数据表中某些子字段来构成的数据,只是一些SQL语句的集合。从安全的角度来说,视图可以防止用户接触数据表,因...
2018-07-19 20:06:41
1387
原创 《MySQL 5.7 从零开始学》笔记-数据表基本操作
在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。创建数据表所谓创建数据表,指的是在已经创建好的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)约束的过程。数据表属于数...
2018-07-09 21:48:49
1739
翻译 Google官方黑科技 - DataBinding
为什么?之前开发,一直使用依赖注入框架 - ButterKnife。自从Android Studio升级3.0以来,ButterKnife一直受到Gradle API的影响,不能升级Gradle版本,这也算是一大诟病,导致于升级Android studio时,慎之又慎。偶尔想到还有Google的官方框架 - DataBinding,我想是入手的时候了…本文是官方文档的翻译,只是简明的介绍了如何...
2018-05-03 10:13:20
10622
1
翻译 Gradle教程和指南 - 创建Gradle构建
原文地址:Creating New Gradle Builds 遵循本指南,你将创建一个Gradle项目,调用一些基本的Gradle命令,并了解Gradle如何管理项目。需要什么大约11分钟终端或者IDE 应用程序JDK 1.7及以上Gradle 4.6及以上 Shell命令将基于Unix的系统使用。在Windows中,每个命令都有类似的命令。初始化项...
2018-04-13 11:11:19
6441
翻译 Gradle教程和指南 - 构建审视
原文地址:Creating Build Scans构建审视是用于开发和维护Gradle构建的重要工具。它为你提供了构建的详细信息,并为你识别构建环境、依赖或性能上存在的问题,同时可以帮你更全面地理解并提升构建过程,也便于与他人的合作。在Gradle构建运行时,构建审视插件会抓取数据,并将数据传送到构建审视服务端。同时返回一个可被共享的链接,内部包含有用的构建信息。这些信息包含两大类:...
2018-04-11 22:27:03
1218
原创 Android实用的排序集合 - SortedList
概述SortedList继承于java.lang.Object,是android.support.v7.util包下的工具类。这个类,与java.util包下的ArrayList、List等类没有丝毫的关系,不管是继承还是实现。而,又与它们相像,在这个类的内部,封装了对一系列对数据的操作:插入,删除,移动,更新等。SortedList实际上是一个排序列表的实现,提供处理了两种角色:保...
2018-04-04 19:00:10
4104
原创 RecyclerView数据更新神器 进化版- AsyncListDiffer
概述在RecyclerView数据更新神器 - DiffUtil 译文中,已经了解到DiffUtil如何神助RecyclerView进行UI更新。它有一个缺陷就是DiffUtil在计算新旧数据集差异时需要开启线程,而在更新UI时又要在主线程。尽管可以这么做:Thread + HandlerRxJava虽然这样可以实现,但又显得笨拙。在support-v7:27.1.0又新增了一个...
2018-04-03 15:37:34
6689
1
原创 RecyclerView数据更新神器 - DiffUtil
概述DiffUtil是support-v7:24.2.0新增的工具类,它主要是用来计算两个数据集之间的差异,计算出旧数据集->新数据集的最小变化量,并将其返回。算法DiffUtil内部采用ugene W. Myers’s difference 算法。该算法对空间做了优化,并使用O(N)空间来计算两个列表添加和删除的最小操作数,算法的时间复杂度为O(N + D ^ 2)。由于该...
2018-04-02 21:35:11
5345
2
转载 正则表达式学习--RegexBuddy工具的使用(一)
转载自:正则表达式学习--RegexBuddy工具的使用(一) 开始学习正则表达式了,增取今年过后能够熟悉的使用它,太强大了!!昨天晚上对这几天学习过程中使用的工具RegexBuddy进行了总结。 一、 &nbs...
2018-02-28 10:05:35
1134
转载 js删除数组里的某个元素
转载自:js删除数组里的某个元素 文章目录删除数组指定的某个元素删除的数组的某一项删除数组指定的某个元素首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为:Array.prototype.indexOf = function(val) {for (var i = 0; i...
2018-02-22 14:00:53
1757
转载 Android 常用 adb 命令总结
转载自:Android 常用 adb 命令总结针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中。Android Debug Bridgeadb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个
2018-02-07 14:48:10
573
转载 大话Android多线程(一) Thread和Runnable的联系和区别
转载自: 大话Android多线程(一) Thread和Runnable的联系和区别前言这是Android多线程篇的第一章,我们就从线程的创建聊起吧。常用的线程创建方式有两种(实现Callable接口的方式,我们放到以后介绍Executor框架的时候再叙)继承Thread类,重写Thread的run()方法实现Runnable接口,重写Runnable的run()方法,并将其作为参
2018-01-29 14:15:27
546
转载 深入理解Android插件化技术
转载自:https://www.jianshu.com/p/0a2501328e0e 插件化技术可以说是Android高级工程师所必须具备的技能之一,从2012年插件化概念的提出(Android版本),到2016年插件化的百花争艳,可以说,插件化技术引领着Android技术的进步。本篇文章转载自腾讯bugly,觉得写得不错,转载分享给大家。插件化提要可以说,插
2018-01-17 14:11:59
957
原创 自定义View之Matrix最全API解析
Matrix的对图像的处理可分为四类基本变换:- Translate 平移变换- Rotate 旋转变换- Scale 缩放变换- Skew 错切变换
2017-12-19 15:54:21
1058
转载 HTML5:理解head
HTML文档的head部分,通常包括指定页面标题,为搜索引擎提供关于页面本身的信息,加载样式表,以及加载JavaScript文件(出于性能考虑,多数时候放在页面底部</body>标签结束前加载JavaScript)。除了title,head里的内容对页面访问者来说都是不可见的。下面是HTML文档head部分的一个例子:[html] view plain copy print?<head>
2017-12-12 13:51:36
789
转载 详解 JavaScript的 call() 和 apply()
定义ECMAScript规范为所有函数都包含两个方法(这两个方法非继承而来), call 和 apply 。
2017-12-06 09:11:23
416
转载 程序包org.apache.http不存在,解决方式
类里提示爆红import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;
2017-11-20 11:21:37
13987
1
转载 教你快速使用AndroidStudio制作出一张合格.9图片
前言在实际的Android开发项目中,为了适配不同分辨率的Android设备,经常会碰到制作.9图片的情况,由于这种格式的图片可以设定一张图片中哪些区域可以拉伸,哪些区域不可以拉伸,同时可以把内容显示区域的位置设置清楚。.9图片制作的工具有很多,但是AndroidStudio就自带.9图片制作的工具,但是网上关于如何具体用AndroidStudio制作.9图片的过程却非常少。.9图片介绍.9图片和一
2017-11-15 10:51:21
1070
转载 正式发布 Android 架构组件 1.0 稳定版 | 附带中文介绍视频
几十亿的设备都在用 Android 系统,从高端手机到飞机上的影音娱乐系统,应有尽有,不一而足。而 Android OS 则为这几十亿的设备保驾护航,高效管理资源,保障运行流畅,然而有时候却增加了开发卓越 App 的难度。为了简化开发流程,我们在 Google I/O 大会上发布了架构组件(Architecture Components)的预览版,为 App 开发构架提供指南,并为常见任务,如生命周
2017-11-08 09:01:22
2035
原创 自定义View之Paint - PathEffect
setPathEffect(PathEffect effect)setPathEffect方法为指定的Path设置展现的样式,PathEffect这个类并没有具体的实现,其效果要看它的六个子类:效果图如下:CornerPathEffect构造函数:CornerPathEffect(float radius)这个类的作用就是将Path的各个连接线段之间的夹角用指定半径的圆,以一种更平滑的方式连接,类
2017-11-07 09:10:44
729
原创 自定义View之Paint - ComposeShader
ComposeShaderComposeShader的作用是实现两个颜色渐变效果的叠加,如BitmapShader与LinearGradient的混合渲染效果等,叠加的效果由过渡模式(Xfermode)或者PorterDuff.Mode来决定。
2017-11-06 18:37:02
1311
正则表达式测试分析
2018-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人