- 博客(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
原创 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人