自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RxJava2一次流程源码分析总结

//一次调用 Disposable disposable = Observable .create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<Integer> e) thro...

2019-06-14 18:56:44 270

原创 OkHttp3源码分析总结

//同步请求Response response = okHttpClient.newCall(request).execute();//异步请求okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { ...

2019-06-14 18:10:53 428

原创 VirtualApk源码分析总结

与RePlugin不同,它进行了Framework层的hook。ClassLoader:通过配置,它可以将宿主的ClassLoader中的dexElements数组插入到插件的DexClassLoader的dexElements数组的前面,可以让Dex也能加载宿主中的类。Resources:通过配置,可以让宿主的Resources对象访问插件的资源,也可以自己创建插件中的Resour...

2019-06-14 18:02:56 400

原创 RePlugin源码分析总结

简单介绍(官方wiki)RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的方案。其主要优势有:极其灵活:主程序无需升级(无需在Manifest中预埋组件),即可支持新增的四大组件,甚至全新的插件非常稳定:Hook点仅有一处(ClassLoader),无任...

2019-06-14 17:57:33 494

原创 Arouter源码分析

编译期:在每个module下包括app下,build文件夹com.alibaba.android.arouter.routes包下a、生成Arouter$$Roo$$(ModuleName)比如:app下生成Arouter$$Root$$appmodule-java下生成Arouter$$Root$$modulejava//维护所有的Grouppublic class ARoute...

2019-04-17 19:36:19 264

原创 SharedPreferences源码分析

初始化操作@Overridepublic SharedPreferences getSharedPreferences(String name, int mode) { // At least one application in the world actually passes in a null // name. This happened to work becaus...

2019-04-17 18:11:09 285

原创 Android GitHooks 提交信息规范和代码格式规范

概述:GitHook是推行提交规范,根据仓库状态改变项目环境,监测和优化开发工作流的可触发行为。GitHook是在git仓库中发生特定事件时自动被执行的脚本,它们存放于.git/hooks路径下,默认情况该路径下自带一些.sample文件,这些文件去掉后缀名便是可被触发的脚本。而且脚本完全可定制。GitHooks种类:这些脚本没有脚本语言限制,可以是shell,python,groovy等等。其中...

2018-07-03 15:49:13 1491

原创 使用RecyclerView滚动到屏幕指定位置

背景:    需求中有一个详情页添加虚浮锚点条,要求滚动到不同过的cell锚点高亮,点击锚点滚动到指定位置。实现:    监听滚动过程使锚点高亮并不难实现,问题在于点击锚点滚动到指定位置;    但是项目结构使用的listview,自然想到了listview.smoothScrollToPositionFromTop(int pos, int offset);因为在顶部有一个titleBar渐变的...

2018-06-15 15:05:36 2587 1

原创 EventBus3.x源码分析之发送事件

EventBus3.x源码分析之发送事件发送事件时,最长使用的就是EventBus.getDefault().post(Object object)方法。 这里只分析非粘性事件发送,因为粘性事件已经再EventBus3.x源码分析之注册(一)中提到过,后续的逻辑同post。EventBus#public void post(Object event) { PostingTh...

2018-04-02 13:32:04 315

原创 EventBus3.x源码分析之注册(二)

EventBus3.x源码分析之注册(二)上篇文章分析了通用的订阅方法注册,其实EventBus3.0以后提供了一种更加高效的注册方式; 主要思路:就是配合meta包中提供的SubscriberInfo接口,通过EventBusAnnotationProcessor编译时生成所需的订阅信息,用者只需要在EventBus的构建类EventBusBuilder中通过addIndex添加即可完...

2018-04-02 13:10:14 334

原创 EventBus3.x源码分析之注册(一)

EventBus3.x源码分析之注册(一)官方链接:https://github.com/greenrobot/EventBus 官方图例: 主要流程:发布者通过post发送事件,EventBus将事件传递给提前注册好的订阅类。当然分发和处理事件可以指定不同线程,可以给订阅者设置优先级,可以设置粘性事件。索引方式提高性能等。EventBus的成员:EventBu...

2018-04-02 12:52:15 442

原创 RxJava背压总结

订阅分为:同步订阅 异步订阅同步订阅Rxjava1与Rxjava2中 同步订阅没有用到缓冲区,只要上游事件数量不大于请求数量不会触发 MissingBackpressureException 异常,但是这种方式在数量多了以后会出现大量的内存使用率上升,有可能导致OOM。同步订阅,存在问题,因为不存在缓冲区,发送事件超过接收事件抛出异常。这种可以通过 FlowableEmitter类的request...

2018-03-26 11:24:30 1003

转载 Java中并发容器之CopyOnWriteArrayList(转载)

原文链接:http://ifeve.com/java-copy-on-write/Java中的CopyOnWrite容器    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用C...

2018-03-20 16:37:19 312

原创 java中深拷贝成员为集合的对象

java中深拷贝,浅拷贝参考:http://blog.csdn.net/tounaobun/article/details/8491392如何拷贝成员为集合的内部类数据:public class ScreenConditionInfo implements Serializable, Cloneable {private List&lt;ItemListBean&gt; ItemL...

2018-03-01 10:27:41 445

原创 Activity的Flags excludeFromRencents=“true”属性。

excludeFromRecents="true":在当前栈(前台栈)的栈底的activity设置该属性,可以保证点击最近使用的app列表时不显示当前app。

2018-02-09 15:35:35 402

转载 Java注解之Annotation详解

转载:http://www.cnblogs.com/xdp-gacl/p/3622275.html一、认识注解  注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解的了,注解是一种趋势,现在已经有不少的人开始用注解了,

2018-02-02 17:14:56 225

原创 强大的视图拖拽助手--ViewDragHelper

网上很多关于ViewDragHelper的使用方法,写的都很不错,近期有个图片合成的小需求,需要图片可添加(保留上一次的位置),可拖拽,可点击,自然就想到了这个东西。当然它的作用很强大,远不止这点功能,再此做个总结。ViewDragHelper的常用方法实现使用时一般是在ViewGroup中使用,我的需求是自定义了ViewGroup,继承FrameLayout。初始化ViewDragHelperm

2017-09-07 14:32:03 1076

原创 使用RecyclerView时出现:RecyclerView: No adapter attached; skipping layout

该问题并没有导致我的程序崩溃。我发现在Activity创建的时候初始化RecyclerView,但是在请求数据成功是创建Adapter并setAdapter,会出现此错误提示。我的做法是:在创建RecyclerView的同时创建Adapter并setAdapter,待数据请求回来之后执行setData,并notifyDataSetChanged,此提示消失。

2017-08-09 10:21:03 1677

原创 按钮的单击和多击事件

安卓中按钮的单击和多击事件定义封装类:public class MyClickListener { private View mView; private int mNum; private static int CLICK_TIME = 300; private List<Long> times = new ArrayList<>(); private Han

2017-06-22 15:58:49 510

原创 Android 的一些权限问题总结

Android6.0发布加入运行时权限:其中需要向用户申请的权限(targetSdk6.0以上Menifast中配置无效的)为:![这里写图片描述](http://img.blog.csdn.net/20170612114110747?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQmlnZXJCaWdlcldvbGY=/font/5a6L5L2T/fo

2017-06-12 12:08:13 541

原创 Android studio 创建debug签名、release签名

Android studio 创建debug签名、release签名之前搞百度地图的时候,发现管理端需要配置release和debug签名的SHA1码,纠结了一哈...我们知道打包上线的时候需要release签名,其实instantRun可以配置debug签名。其实就是创建两个签名,分别配置各自的config即可。创建签名文件:这个操作很简单:Build-->Generate Signed A

2017-06-02 11:09:38 2662

原创 RxJava1学习过程部分总结

create()+subscribe():这是Rx经常写的代码Observable&amp;amp;amp;lt;String&amp;amp;amp;gt; observable = Observable.create(new Observable.OnSubscribe&amp;amp;amp;lt;String&amp;amp;amp;gt;() { @Override public void call(Subscriber&a

2017-05-08 10:45:11 419

原创 简单实现ProgressBar三色图(带有百分比)

实现带有进度百分比的三色图实现思路:利用progressBar第二进度,设置不同的进度背景,计算进度比例通过drawText将比例画在各个进度上上代码:View:/** * Created by "MrKong" on 2017/4/21. */ public class TextProgressBar extends ProgressBar { priva

2017-04-25 16:09:52 2022

原创 Dagger2简单使用

Dagger2Google开发的针对android的依赖注入框架,它的设计基于面向对象的一种设计模式(控制反转IOC),最大的特点就是低耦合。 一般依赖注入框架都是通过反射实现,而Dagger2使用编译时生成代码,也就是apt动态生成。这样提高了效率不影响性能。导入依赖在Module的build.gradle下添加如下代码:apply plugin: 'com.neenbedankt.androi

2017-04-20 16:10:00 642

原创 创建交易异常 请重新创建后再付款

在拿到签名后的订单信息,调用支付宝支付接口时,弹出此提示: 问题出现的原因是,APP支付与支付宝签约失效(公私钥配置无问题情况下)。如图: 特列出解决此问题办法之一。引以为戒。

2017-04-18 16:12:37 5111

空空如也

空空如也

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

TA关注的人

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