自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

楊帥

【此人归隐已久♂不懂凡尘落寞】

  • 博客(21)
  • 收藏
  • 关注

原创 Andrid项目升级AndroidX踩坑记(不断更新)

如果要在新项目中使用AndroidX,则需要将compile SDK设置为Android 9.0(API级别28)或更高版本项目使用最新的butterknife:10.1.0,会自动引入AndroidX相关库,同时AndroidX和Android support库是不可以共存的,根据谷歌以往的尿性,升级是必然趋势,所以趁着项目短期内没有新需求,决定把项目升级到AndroidX。refac...

2019-04-29 11:07:29 2782

原创 阿里巴巴ARouter实现moudle之间跳转

阿里巴巴ARouter地址实现需求:跳转关系为: app -> mylib -> mymoudle -> app项目的build.gradle中添加:buildscript { ... dependencies { ... classpath "com.alibaba:arouter-register:1.0.2"...

2019-04-23 16:57:34 1142 1

原创 Android模块化、组件化、插件化区别

不同特点:模块化(lib)主要解决问题是重用问题,不强调单独编译组件化(lib)主要解决问题是功能拆分,强调单独编译插件化(application)是所有组件都为apk的特殊组件化,特点可热更新通讯方式不同点:模块化相互引入,需要引入需要的module组件化通讯方式分为隐式和路由。插件化本身是不同进程,因此是binder机制进程间通讯。...

2019-04-23 10:55:39 8363

原创 GreenDao错误Unsupported for entities with a non-null key

初用greendao保存数据的时候报错:java.lang.UnsupportedOperationException: Unsupported for entities with a non-null key问题原因:@Id类为原始Java类型,要使hasKey()您能够使用可空类型。解决问题:@Idprivate long id;换成@Idprivate Long...

2019-04-19 17:19:45 896

转载 Java Serializable报错does not declare a static final serialVersionUID

报错The serializable class AppDownloadBean does not declare a static final serialVersionUID field of type long (536871008 at line 32).解决办法:在需要序列化的类中添加:private static final long serialVersionUID = 1L;...

2019-04-18 16:52:03 1925

原创 GreenDao升级数据库原有数据

官方demo上面是默认使用的开发版本,每次更新数据库会删除原来的数据库。解决办法:新建一个类MyDevOpenHelper:public class MyDevOpenHelper extends DaoMaster.OpenHelper { public MyDevOpenHelper(Context context, String name) { super(c...

2019-04-18 14:34:02 295

原创 GreenDao源码分析

GreenDao集成与使用

2019-04-17 18:22:56 353

原创 GreenDao集成与使用

整个项目添加依赖:buildscript { repositories { google() jcenter() mavenCentral() // add repository } dependencies { classpath 'com.android.tools.build:gradle:3.3....

2019-04-17 18:20:42 226

原创 Android自定义apt

在看dagger的源码的时候,很好奇这些源码到底是如何生成的(传送门)搜了下资料,弄清楚了。网上相关资料不多,自己做下记录,防止忘了。流程图如下:1. 创建注解lib:创建Java library(不是Android Library)创建Inject注解类@Target(ElementType.TYPE)@Retention(RUNTIME)@Documented...

2019-04-17 16:09:57 503

转载 Java基础之注解annotations最简单理解

看了很多注解的文章,但是越看越糊涂,偶然在网上看到一片文章介绍的很好,原文地址此文章让我最终茅塞顿开的话记录下:Annotation是一种应用于类、方法、参数、变量、构造器及包声明中的特殊修饰符。Annotations不包含业务逻辑,那么必须有人来实现这些逻辑。它是一种由JSR-175标准选择用来描述元数据的一种工具。...

2019-04-16 16:05:58 771

原创 Retrofit源码分析之Request生成

这里主要运用到了注解和反射的知识,下面贴出来关键代码以及注释。关键代码:创建RequestFactorystatic RequestFactory parseAnnotations(Retrofit retrofit, Method method) { return new Builder(retrofit, method).build(); }build()方法初始...

2019-04-12 17:55:19 249

原创 Java基础之反射(Reflection)

定义:允许Java在运行期获取指定类中的各种属性的一种机制。(包括接口、变量、方法等信息)Java反射可获取的属性有:Class对象类名构造方法包信息获取方法、指定方法的参数、返回类型变量父类实现的接口 修饰符泛型在列举方法之前先具一个包含上面10个属性的例子://父类public class ReflectionFather { protected...

2019-04-11 17:19:52 150

原创 Retrofit源码分析之流程分析

本篇承接 Retrofit简单使用Retrofit底层还是okhttp3,但是对比okhttp3简单实用及源码分析(一)可以看出来,retrofit不需要进行okhttp3的配置,并且retrofit引入了GsonConverterFactory,简化了json解析过程,具体的下面分析。配置Retrofit:private httpInter Createhttp(){ ...

2019-04-09 18:31:24 279

原创 Java设计模式之观察者模式

Java23种设计模式定义:一个对象发生改变,订阅他的对象也随着跟着改变,不需要在乎互相之间是如何改变的。观察者模式分为:多个观察一个,比方说课堂上老师讲课同时多个人可以听到。一个观察多个,比方说考场上多个考生一个监考老师。第一个例子:多个观察者对一个被观察者:观察者为学生,学生的动作为听课://观察者public interface Observer { ...

2019-04-09 17:33:45 186

原创 okhttp3源码分析之AsyncTimeout

继承自Timeout,使后台线程在发生超时时准确执行操作。用来实现本机不支持的超时。公开方法:final void enter()调用了private static synchronized void scheduleTimeout,确定链表关系(当前node上个的next和this的header前后关系)。private static synchronized void s...

2019-04-08 15:41:37 1544

原创 okhttp3源码分析之Timeout

定义:负责管理超时操作的类。包含方法:Timeout timeout(long timeout, TimeUnit unit)设置最多等待时间,返回当前类对象。long timeoutNanos()返回设置的超时时间(毫秒)boolean hasDeadline()如果启用了截止时间,返回truelong deadlineNanoTime()返回...

2019-04-08 11:45:09 1342

原创 OkHttp3源码解析之Transmitter

OkHttp的应用程序和网络层之间的桥梁。 此类公开了高级应用程序层原语:连接,请求,响应和流。

2019-04-08 10:49:39 1052

原创 okhttp3源码分析之RetryAndFollowUpInterceptor

功能:网络故障时候重试并跟进的拦截器,必要的时候遵循重定向

2019-04-04 17:53:32 146

原创 Java设计模式之责任链模式

Java23种设计模式开始之前举一个例子:小明为公司普通员工,现在有事情需要请假,公司领导层分为:老板、经理、主管。其中主管可以审批一天以内的假,经理可以审批三天以内的假,超过三天的假必须找老板审批。公司能跟普通员工直接工作交接的只有主管,不存在跨级工作交接的情况。实现该功能需要四个对象:小明、主管、经理、老板。其中主管、经理、老板在这个事件中有审批的动作,小明有提交申请的动作。那么...

2019-04-04 17:10:12 225

原创 okhttp3源码分析(二)

okhttp3简单实用及源码解析(一)

2019-04-04 14:04:11 206

原创 okhttp3简单实用及源码分析(一)

首先把项目跑起来,简单配置一下okhttp然后发起请求//一、配置基本参数,用于发送http请求,并读取响应OkHttpClient okHttpClient = new OkHttpClient.Builder() .readTimeout(5, TimeUnit.SECONDS) .build();//二、配置请求参数Request request = new Request...

2019-04-04 11:31:44 305

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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