自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (31)
  • 收藏
  • 关注

原创 Amigo源码分析

Amigo通过使用新的apk来更新原来的apk,来达到修复的目地amigo会在build的过程中替换原来的Application,把它替换成Amigo,并把原来的Application的名字保存在一个acd.java中的一个n变量中,具体是通过gradle插件生成的 GenerateCodeTask generateCodeTask = pro

2016-11-09 13:09:23 1717 1

原创 有关javac dx命令使用

javac 用于把java文件生成.classdx命令用于把class文件生成.dexjavac命令在安装的jdk中dx命令子在Android 的sdk的build-tools的对应版本目录下面为了方便,我们可以把某个版本的dx工作设置到环境变量首先,我们写一个java文件public class Test { public static void main(String[] args)

2016-11-08 22:04:42 1731

原创 有关Dagger的Scope

1、假如Module中没有使用Scope,如@Singleton,则Component的定义的时候可以没有Scope如@Component(modules = {AppModule.class})public interface AppComponent { Application getApplication();}@Modulepublic class AppModule {

2016-11-04 22:11:59 796

原创 Retrofit源码解析---addConverterFactory和addCallAdapterFactory区别

我们先看下前面写的接口Call login( @Body User ueser);如果返回的是Observable格式,则这么定义接口:Observable login(@Body User ueser);从上面可以看到,Retrofit接口的返回值分为两部分,一部分是前面的Call或者Observable,另一部分是String。addCallAdapterFactory影响的就是第

2016-11-03 16:29:54 23906

原创 Retrofit源码解析---执行请求(RxJavaCallAdapterFactory)

d

2016-11-03 16:21:40 2270

原创 Retrofit源码解析---执行请求(DefaultCallAdapterFactory)

dd

2016-11-03 16:21:19 2372

原创 Retrofit源码解析---初始化

ss

2016-11-03 16:20:16 1432

原创 OKhttp源码解析---拦截器之CallServerInterceptor

CallServerInterceptor负责发送请求和获取响应,我们看下它的intercept @Override public Response intercept(Chain chain) throws IOException { HttpStream httpStream = ((RealInterceptorChain) chain).httpStream(); St

2016-11-02 18:04:30 1635 2

原创 OKhttp源码解析---拦截器之ConnectInterceptor

ConnectInterceptor主要负责和服务器建立连接我们看下他的interceptpublic Response intercept(Chain chain) throws IOException { RealInterceptorChain realChain = (RealInterceptorChain) chain; Request request = re

2016-11-02 17:56:38 2222

原创 OKhttp源码解析---拦截器之CacheInterceptor

同样,我们来看它的interceptpublic Response intercept(Chain chain) throws IOException { Response cacheCandidate = cache != null ? cache.get(chain.request()) : null; long now = System.

2016-11-02 17:16:15 2638

原创 OKhttp源码解析---拦截器之BridgeInterceptor

我们看下它的intercept函数public Response intercept(Chain chain) throws IOException { Request userRequest = chain.request(); Request.Builder requestBuilder = userRequest.newBuilder(); RequestBod

2016-11-02 16:40:36 1457

原创 OKhttp源码解析---拦截器之RetryAndFollowUpInterceptor

我们看下它的interceptpublic Response intercept(Chain chain) throws IOException { Request request = chain.request(); streamAllocation = new StreamAllocation( client.connectionPool(), creat

2016-11-02 16:22:04 2525

原创 OKhttp源码解析---Request执行

执行一个request是调用它的enqueue并传递一个回调 mcall.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { System.out.println("onFailure

2016-11-02 15:26:58 1093

原创 OKhttp源码解析---Request创建

创建请求主要是一下几步 requestBuilder.method("GET", null); Request request = requestBuilder.build(); Call mcall = mOkHttpClient.newCall(request);先看new Request.Builder().url("http://w

2016-11-02 12:51:19 5559

原创 OKhttp源码解析---OkHttpClient创建

OkHttpC客户端是通过new OkHttpClient()创建的,我们看下里面都做了什么首先是一些static的初始化private static final List DEFAULT_PROTOCOLS = Util.immutableList( Protocol.HTTP_2, Protocol.SPDY_3, Protocol.HTTP_1_1); privat

2016-11-02 12:31:27 4193

原创 OKhttp源码解析---demo

首先来看一个例子:private static void OkHttpGet() { OkHttpClient mOkHttpClient = new OkHttpClient(); Request.Builder requestBuilder = new Request.Builder().url("http://www.baidu.com");

2016-11-02 11:31:42 1106

原创 Rxjava(结合类)-Zip

通过一个函数将多个Observables的发射物结合到一起,基于这个函数的结果为每个结合体发 射单个数据项。Zip 操作符返回一个Obversable,它使用这个函数按顺序结合两个或多个Observables发射 的数据项,然后它发射这个函数返回的结果。它按照严格的顺序应用这个函数。它只发射与 发射数据项最少的那个Observable一样多的数据demo

2016-11-01 15:44:09 3820 4

原创 Rxjava(结合类)-Merge

合并多个Observables的发射物, Merge可能会让合并的Observables发射的数据交错(有一个类似的操作符 Concat不会让数 据交错,它会按顺序一个接着一个发射多个Observables的发射物看两个demoObservable.merge(Observable.create(new Observable.OnSubscribe() {

2016-11-01 12:41:15 3486

原创 Rxjava(过滤类)-Sample

定期发射Observable最近发射的数据项demo Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber subscriber) { try {

2016-11-01 09:21:20 831

dex2jar源码

dex2jardex2jardex2jardex2jardex2jardex2jar

2016-12-22

Animation_test.zip

Animation_test.zip

2014-09-25

patch_wifi_ethernet_A20

wifi以太网共存补丁程序

2014-08-08

传感器_了解

传感器_了解

2013-05-24

vold.eap

vold.eap

2013-03-07

root_server

root_server

2013-02-25

net-snmp_useful_libsnmp_android

net-snmp_useful_libsnmp_android

2013-02-25

blcr-0.8.2-android

blcr-0.8.2-android

2012-11-23

android binder流程图

android binder流程图

2012-11-10

MPEG2_GUIDE(1).CHM

MPEG2有关 ts pat pmt的说明 MPEG2有关 ts pat pmt的说明

2012-11-08

ashmem C case

ashmem_C实例C++层的

2012-11-08

Android AIDL 简单case

Android AIDL 简单case

2012-10-24

binder简单示例

binder简单示例

2012-10-22

dhcp 抓 包

dhcp抓包.

2012-08-24

DHCP原理介绍

DHCP原理介绍

2012-08-23

红外遥控相关资料

红外遥控相关资料

2012-07-04

json 代码

json代码、c实现。

2012-06-05

kobj测试case

kobj测试case

2012-05-18

vold-for-usb

android支持ext*,ntfs等格式的代码

2012-04-15

ntfs-3g-for-android

ntfs-3g-for-android修改后的代码

2012-04-15

kernel修改支持uid,gid等

kernel修改支持uid,gid等kernel修改支持uid,gid等

2012-04-15

NTFS_and_boot_code

NTFS_and_boot_codeNTFS_and_boot_code

2012-03-30

NTFS文件系统研究

NTFS文件系统研究NTFS文件系统研究

2012-03-30

FAT32文件系统详解

FAT32文件系统详解

2012-03-29

Linux Device Drivers

Linux Device Drivers

2012-03-22

Understanding The Linux Kernel

Understanding The Linux Kernel

2012-03-22

Android_Binder设计与实现_-_设计篇

Android_Binder设计与实现_-_设计篇

2012-03-22

空空如也

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

TA关注的人

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