自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

有码走遍天下,无码寸步难行

待我代码编成,娶你为妻可好~

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

原创 Groovy&Gradle总结

0x01 Groovy 概述Groovy 是一个基于 JVM 的语言,代码最终编译成字节码(bytecode),并在 JVM 上运行。它具有类似于 Java 的语法风格,但是语法又比 Java 要灵活和方便,同时具有动态语言(如 ruby 和 Python)的一些特性。正因为如此,所以Groovy适合用来定义DSL(Domain Specific Language)。 简单的来讲 DSL 是一个

2017-07-03 20:00:25 11647 2

原创 Dex文件结构

前言Class文件:即java的字节码文件,java源码文件编译后生成了字节码文件,然后被jvm执行,字节码文件中有一个非常重要的区域是常量池,编译的过程中,字节码文件并不会保存方法和字段的最终内存布局信息,也就是说,方法和字段并不像C/C++那样被编译成地址,jvm在加载Class文件的时候,需要从常量池获取对应的符号引用,再在类创建时或运行时解析并翻译到具体的内存地址中【参考:深入理解Java虚

2017-07-03 19:59:28 3828

原创 熟悉又陌生的HTTPS

全文较长,主要从概览,到原理,到抓包整个流程进行全方位的解读,个人能力有限,我也是通过在网上寻找资料,结合自己的理解整理出来的,如有不当,欢迎指正。如果你认真看完本文,以下几个问题你将会有答案:什么是Https,为什么要使用Https,SSL/TLS 协议又是什么什么是对称加密、非对称加密,各自的优缺点什么是中间人攻击,Https的加密方案是什么,如何防止中间人攻击什么是CA、证书、证书链,

2017-07-03 19:55:32 3285 1

原创 0. Rxjava系列目录及说明

1. RxJava1.x的诞生(非常重要) 2. RxJava1.x基本概念 3. RxJava2.x与RxJava1.x的差异对比 4. RxJava操作符与应用场景 5.1 RxJava1.x自定义操作符与原理分析 5.2 RxJava2.x自定义操作符与原理分析 6.1 RxJava1.x线程调度原理分析 6.2 RxJava2.x线程调度原理分析 7. RxJava

2017-07-03 19:36:20 877

原创 关于使用WebView的一些问题

我们很多时候要使用WebView来展示一个网页,现在很多应用为了做到服务端可控,很多结果页都是网页的,而不是本地实现,这样做有很多好处,比如界面的改变不需要重新发布新版本,直接在Server端修改就行了。用网页来展示界面,通常情况下都或多或少都与Java代码有交互,比如点击网页上面的一个按钮,我们需要知道这个按钮点击事件,或者我们要调用某个方法,让页面执行某种动作,为了实现这些交互,我们通常都是使用

2017-07-03 20:01:32 2485

原创 AbstractProcessor注解处理器

1. 注解一般我们定义一个注解的代码如下:@Retention(RetentionPolicy.CLASS)@Target({ElementType.FIELD, ElementType.TYPE})public @interface Json { String value();}在注解上面的注解叫做元注解,元注解共有四种: - @Retention: 保留的范围,默认值为CLASS.

2017-07-03 19:58:13 12008 4

原创 Aapt Overlay 资源重叠机制

概念 假设我们正在编译的是Package-1,这时候我们可以设置另外一个Package-2,用来告诉aapt,如果Package-2定义有和Package-1一样的资源,那么就用定义在Package-2的资源来替换掉定义在Package-1的资源。通过这种Overlay机制,我们就可以对资源进行定制,而又不失一般性。aapt overlayUsage: aapt l[ist] [-v] [-

2017-07-03 19:57:15 3899 2

原创 6.1 RxJava1.x线程调度原理分析

1. 回调线程小例子在讲线程调度前,首先看这么一段代码,点击一个按钮,开启一个线程,在线程内部执行一个回调,那么打印的结果是多少? 结果如下,反应出一个问题,只要是在子线程中调用的方法,无论回调还是方法本身,都在子线程中执行。System.out: main:mainSystem.out: onNext:Thread-69327System.out: testCallback:Thread-6

2017-07-03 19:44:18 796

原创 5.1 RxJava1.x自定义操作符与原理分析

概念Rxjava的操作符分两种 - 一种是对一条数据链中的数据流进行转换 - 另一种是对整条链本身进行转换一、第一种对一条数据链中的数据流进行转换1. 操作符分析在讲自定义操作符之前,我们不直接来结论如何实现,我们先分析源码,为什么可以这么做,看懂了原因,当然自己写起来就得心应手,而且不容易出错。我们先看看rxjava已经提供的操作符是如何实现的,先看最常用的map操作符,接受一个转换函数,重新

2017-07-03 19:42:52 834

原创 4. RxJava操作符与应用场景

前言这篇文章可能是有史以来最详细的操作符讲解了,包括操作符的含义,代码实现,使用场景都有很详细的说明,目前涵盖了全部操作符的80%以上。更多希望看更多详细的操作符讲解,请参考官方文档:Operators By Category为了方便看懂下面的图形分别表示的意思,这里先来个官方图解,我就不翻译了,很简单,实在不懂可以自行百度翻译: 一、 创建类1.1 create方法是RxJava最基本的创造事件

2017-07-03 19:42:17 1839 1

原创 3.RxJava2.x与RxJava1.x的差异对比

RxJava2的使用步骤差异第一步:初始化一个Observable (RxJava) (RxJava2) 第二步:初始化一个Observer (RxJava) (RxJava2) 第三部:建立订阅关系 (RxJava) (RxJava2) 区别:Observer中多了一个回调方法onSubscribe,传递参数为Disposable ,Disposable这个单词的字面意

2017-07-03 19:41:06 3021

原创 2. RxJava1.x基本概念

RxJava源码导入我们在下rxjava的源码后,直接把src/main/java下的代码复制到我们的工程中,这时会出现一个类找不到import sun.misc.Unsafe;我们需要将以下图片的位置改为warning级别,就可以正常编译运行了。 1. 概念 Reactive Extensions for the JVM – a library for composing asynchron

2017-07-03 19:39:13 983

原创 1. RxJava1.x的诞生(非常重要)

一个例子在了解RxJava之前,我们不管什么是异步,什么是观察者模式,我们先看一个例子。为了获得更多出现在代码中的关于公共问题的信息,我们激活了StrictMode模式。StrictMode帮助我们侦测敏感的活动,如我们无意的在主线程执行磁盘访问或者网络调用。正如你所知道的,在主线程执行繁重的或者长时的任务是不可取的。因为Android应用的主线程时UI线程,它被用来处理和UI相关的操作:这也是获得

2017-07-03 19:38:14 1275

空空如也

空空如也

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

TA关注的人

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