面试之retrofit相关

目前主要的安卓网络框架有okhttp,retrofit,android-async-http,volley。
其中,retrofit底层基于okhttp来实现,内部对OkHtttp客户端做了封装。

Retrofit介绍

1,Retrofit使用注解方式,简化了我们的URL拼写形式,而且注解含义一目了然,简单易懂;

2,Retrofit使用简单,结构层次分明,每一步都能清晰的表达出之所以要使用的寓意;

3,Retrofit支持同步和异步执行,使得请求变得简单,只要调用enqueue/execute即可完成;

4,Retrofit更大自由度的支持我们自定义的业务逻辑,如自定义Converters。

如何使用Retrofit进行网络请求

1,添加Retrofit依赖
2,创建 用于描述网络请求 的接口
3,创建 Retrofit 实例
4,创建 网络请求接口实例 并 配置网络请求参数
5,发送网络请求

Glided图片加载框架常用方法:

1、加载图片到imageView

Glide.with(Context context).load(Strint url).into(ImageView imageView);

2、各种形式的图片加载到ImageView

// 加载本地图片
File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(this).load(file).into(imageView);

// 加载应用资源
int resource = R.drawable.image;
Glide.with(this).load(resource).into(imageView);

// 加载二进制流
byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);

// 加载Uri对象
Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView)

3、加载动态图片

Glide.with(this)
     .load(url)
     .asGif()//加载动态图片,若现有图片为非gif图片,则直接加载错误占位图。
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .into(imageView);

4、加载指定大小的图片

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .override(100, 100)//指定图片大小
     .into(imageView);

RxJava是什么?

在其github上是这样讲的:一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。这么讲可能还有点绕口,简单的讲实际上最重要的就是异步两字,RxJava可以简单的实现异步操作,并且不管逻辑多么复杂,它始终能够保持简洁性。

通常在Android中,非UI线程是不能更新UI界面的,而一些耗时的操作我们又不能放在UI线程,否则会导致界面卡顿。这种情况下,我们就需要切换线程来实现,即Handler和AsyncTask来实现,但是这两种都有个缺陷,代码非常多,非常杂,可读性非常差。所以,RxJava出现了,它能够两行代码就实现线程切换,非常的简单,使用起来就会让人感觉很爽,再也不用为异步操作写如此繁重的代码了。

RxJava基本用法

RxJava最核心的两个东西是Observables(被观察者,事件源)和Observer/Subscriber(观察者),还有将他们联系在一起的操作subscribe(订阅)。当被观察者发生变化时观察者能即使做出相应,就好像我们的按钮事件一样:

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

    }
});

RxJava的操作符

RxJava一个强大的地方在于它的异步,另外一个强大的地方就在于它提供了强大的操作符支持。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值