自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Program type already present: javax.annotation.*的一次解决

##问题最近在引用stetho这个第三方库时,编译时一直报错。错误如下* What went wrong:Execution failed for task ':Kuaikan:transformClassesWithMultidexlistForDebug'.> com.android.build.api.transform.TransformException: Error wh...

2018-11-25 10:49:11 1611

原创 rxjava使用原理

rxjava简单使用其实rxjava入门并没有想象中的难,常用的简单方法就几个。我们来看一个最简单的例子Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<Integ...

2018-11-22 11:21:57 266

原创 Executor的简单了解

线程池 Executor成员Executor: 是一个接口,它是Executor框架的基础,它将任务的提交和执行分离开public interface Executor { void execute(Runnable command);}这个execute方法就行执行任务的方法。ExcutorService:这个Service是个接口,ThreadPoolExecuto...

2018-11-21 17:33:07 511

原创 blockCanary原理

blockCanary对于android里面的性能优化,最主要的问题就是UI线程的阻塞导致的,对于如何准确的计算UI的绘制所耗费的时间,是非常有必要的,blockCanary是基于这个需求出现的,同样的,也是基于LeakCanary,和LeakCanary有着显示页面和堆栈信息。使用首先在gradle引入implementation 'com.github.markzhai:blockca...

2018-11-21 10:25:59 721

原创 LeakCanary详解

LeakCanary简介leakCanary是square公司推出的一个用于检测内存泄漏的工具,在一个activity完全ondestroy方法执行时,我们都会希望它的内存空间能够完全被回收。但是实际上并非是这样的,往往可能会出现内存泄漏,比如说这个activity被其他没有回收的类所持有引用。那么就会造成ondestory方法执行完之后,这个activity没有被回收,造成内存泄漏。所以,为了...

2018-11-19 22:47:38 362

原创 kotlin语法糖实现

对于kotlin和java,两个语言都是在jvm上运行的,所以它们最终生产的字节码将会是一致的。对于kotlin的一些比较方便的语法糖,我们可以利用其等同的java代码,来验证其内部的实现。##字节码和.kt对应的.java文件通过AndroidStudio的tool -> kotlin -> show kotlin bytecode,可以生产kt文件对应的字节码,然后在字节码文件...

2018-11-18 22:30:43 327

原创 Anko原理

ViewManager在了解anko之前,我们必须要先了解一下ViewManager这个类,这个是一个接口,通过这个接口,我们可以在Activity中添加、移除和更新View,我们可以通过 Context.getSystemService()来或者这个类。public void addView(View view, ViewGroup.LayoutParams params);public ...

2018-11-18 11:35:41 471

原创 Anko学习

ankoAnko 是一个用 Kotlin 写的Android DSL (Domain-Specific Language)。 内部提供很多工具,详情可点https://github.com/Kotlin/anko在这里我们主要涉及的是anko的layout部分,长久以来,Android视图都是用XML来完成布局的。用xml写布局有下面这些缺点:不是类型安全的;不是null-safe;强...

2018-11-18 11:34:19 691

原创 kotlin学习记录

kotlin将一个activity的java文件转为kotlin文件最简单的转化方式android stutdio支持一键转化的方式,通过快捷键ctrl +alt + shift + k将整个java文件转化为kt文件,不过可能需要自己解决一些代码不一致的冲突,而且有些时候转化后的代码和我们直接写的代码还是有差别的。环境配置kotlin库引入android studio3.0默认支持k...

2018-11-18 11:29:56 2340

原创 jenkins搭建记录

jenkins简介jenkins是一个可持续集成的开发工具,在自动化构建过程中可以给我们省下非常多的时间。所以,目前在我们的项目中需先对android项目和ios项目构建自动打包,后续可能服务端也会集成到jenkins上。jenkins相当于是一个构建服务器,它是依托在tomcat服务器上的。所以,我们只需要在本地访问jenkins服务器,并点击我们需要的打包操作,那么jenkins会自动执行配...

2018-11-17 18:01:27 278

原创 HashMap及其并发的一些理解

#HashMap及其并发的一些理解HashMap在jdk1.8之前,HashMap通过数组加链表的方式实现。在1.8之后,在链表长度大于8之后,会将链表转化为红黑树进行存储。基本元素Node和EntryEntry表示链表的每一个节点的元素,就是key和value的包装对象。Map是一个接口,实现类为Node static class Node<K,V> implements...

2018-11-17 17:44:52 268

原创 Android processor的一次尝试

关于Adnroid processorLovelyInject项目地址:https://github.com/xiejinlong/LovelyInject这个是一个基于https://github.com/enbandari/TieGuanYin库实现的一个简易版的intent注入框架。使用流程使用注解可以使用的有3个注解,BuilderActivity,BuilderFragmen...

2018-11-16 20:29:48 752

原创 一个简单Mvp框架推荐

android中的各种框架在主流的开发框架中,目前比较流行的框架有MVC,MVP,MVVM框架。MVCMVC框架算是比较常见的一种开发框架了,即模型-视图-控制器,model用来存储数据,view来做界面的显示与绘制,控制器用来处理逻辑,处理Model和View之间的交互,当然view和model之间还有交互,view可以直接从model类存取数据,model也能够直接改变view的显示。...

2018-11-16 20:28:52 508

原创 java锁实现

锁的对比java中的锁一共有4种状态,级别从低到高分别是:无锁状态偏向锁轻量级锁重量级锁锁只能升级,不能降级偏向锁顾名思义,为了让线程获得锁的代价更低,引入了偏向锁。加锁当一个线程访问同步块并且获取锁时,会在对象头和栈帧中的锁记录里存储锁偏向的线程id,这样,这个线程便获取了这个对象的偏向锁,之后这个线程进入和退出就不需要通过CAS操作,也就是原子操作,来进行加锁和解锁,只...

2018-11-16 20:28:03 206

原创 撸Retrofit源码

Retrofit简单使用下面的是官网的例子://1、首先配置出一个retrofitRetrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build();//2、定义一个网络请求的接口public interface GitHubService { @GET("us...

2018-11-16 20:27:16 175

原创 撸OkHttp源码

okHttp概述上一篇文章讲到retrofit网络请求框架,其实retrofit内部并没有真正的实现网络请求,它内部将网络请求封装成了Call,并将网络请求转角给okhttp去执行。okhttp是square开源的一个网络库,将每一个网络请求都封装成一个call,然后利用call去执行网络请求。下面是官方给的例子:OkHttpClient client = new OkHttpClient...

2018-11-16 20:26:00 419

空空如也

空空如也

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

TA关注的人

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