常用依赖

//fresco图片依赖
compile 'com.facebook.fresco:fresco:1.5.0'
compile 'com.facebook.fresco:animated-gif:1.5.0'//加载gif动图需添加此库
compile 'com.facebook.fresco:animated-webp:1.5.0'//加载webp动图需添加此库
compile 'com.facebook.fresco:webpsupport:1.5.0'//支持webp需添加此库
compile 'com.facebook.fresco:imagepipeline-okhttp3:1.5.0'//网络实现层使用okhttp3需添加此库
compile 'jp.wasabeef:fresco-processors:2.1.0@aar'//用于提供fresco的各种图片变换

使用fresco需要在布局中添加一行代码

xmlns:fresco="http://schemas.android.com/apk/res-auto"

//另外一种图片的加载方式:glide

implementation 'com.github.bumptech.glide:glide:4.7.1'

//glide在适配器中加载数据图片的方式

Glide.with(context).load(data.miniimg.get(0).src).into(((Type2ViewHolder) holder).iv3);

//github

    annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'

//xrecyclerview

    implementation 'com.jcodecraeer:xrecyclerview:1.5.9'

//ok

    implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0'

    implementation 'com.squareup.okhttp3:okhttp:3.10.0'

//gson

    implementation 'com.google.code.gson:gson:2.8.5'

//解决版本冲突

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '27.1.1'
            }
        }
    }

}

 Studio中使用插件:Android ButterKnife Zelezny
Butterknife:是一个视图注入中相对简单易懂的开源框架
1.强大的view绑定和click事件处理,简化代码,提供了开发效率
2.方便的处理Adapter里的ViewHolder绑定问题
3.提供App运行效率,使用配置方便
4.代码清晰,可读性强
使用步骤:
1.在Gradle里关联依赖
2.在你要使用Butterknife的勒种进行初始化
3.加注解
4.通过Butterknife给控件加点击事件
有些公司让你使用,但是因为使用ButterKnife,
妈妈再也不用担心我findViewById(R.id.);,
所以还是有很多程序员在公司里没有明确禁止使用ButterKnife的情况下,使用他
我们必须知道ButterKnife的格式是什么样子,
以方便我们出去开发,维护人家写的项目,你看不懂这个格式

//ButterKnife依赖

compile 'com.jakewharton:butterknife:7.0.1'

8.0ButterKnife


还要在项目的gradle上面和下面都要添加依赖,太麻烦

不过还是有简单的方法的,只需要在gradle中添加这下面两行依赖就可以了

 implementation 'com.jakewharton:butterknife:8.8.1'
 annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

EventBus依赖

compile 'org.greenrobot:eventbus:3.0.0'
EventBus(单例模式,但是并没有把他的构造方法私有化,可以new出来):
可以代替Handler和Intent(跳转传值)
创建Module,关联EventBus框架,创建第2个Activity
完成Module的布局及控件的初始化
注册EventBus,解除EventBus注册
创建EventBus消息类,设置属性
使用EventBus的Post方法发送事件
根据消息类,接收事件
写接受消息方法的时候,方法名自定义,但是权限呢必须是public
参数必须和发送消息的消息类一致。
如果不一致就什么都没有,如果没有public就会崩溃
注册EventBUs拿到订阅方法就两种手段
注释:是为了方便阅读代码
1.注解:参与代码编译,以@开头的。它是给应用程序看的,
单独使用注解毫无意义,一定要跟工具一起使用,
这个所谓的工具实际就是能读懂注解的应用程序
注释 :对代码没有影响。对代码起到解释、说明的作用
2.反射
EventBus用组件与组件之间的传递代替intent,线程中的通信替代handler
提示:发送方的线程也会影响到接受方

粘性事件就是指在EventBus内部被缓存的事件


 Retrofit非常流行的网络框架,square公司出品,这家还出品okhttp
Retrofit是基于okhttp的封装,升级,Retrofit网络请求底层用到的网络框架,就是okhttp
 效率高,实现简单,运用注解和动态代理设计模式,极大的简化了网络请求的繁琐步骤,非常适合我们的android
 Retrofit的动态代理,我们使用Retrofit的API,进行网络请求,他的底层用的是okhttp,okhttp被淘汰,有新的网络YCFhttp,你的项目也要使用,把你项目中所有网络请求的代码都删掉,重新写吗
 Retrofit的动态代理设计模式,所以他可以用几行代码就替换掉自己的网络框架的底层,YCFhttp,都不用动,这就做到框架隔离
网址:

https://www.jianshu.com/p/0fda3132cf98

 目前最流行还是okhttp,所以Retrofit替换底层网络框架,用不到,这个优势只是4年以后,你才会感受
 特点:性能好,处理快,使用简单.(速度比Volley更快)
使用REST API非常方便
Retrofit默认使用okhttp处理网络请求;
默认使用Gson解析 
你要是指定Gson,你必须加统一的依赖
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'

 Retrofit2注解:
@GET        GET网络请求方式
@POST       POST网络请求方式
@Headers    头信息参数
@Path       路径参数.替换url地址中 "{" 和 "}"所包括的部分
@Query      查询参数.将在url地址中追加类似"page = 1"的字符串,形成提交给服务器端的请求参数
@QueryMap        查询参数集合.在url地址中追加类似"type = text & count = 30 & page = 1 " 的字符串
@FormUrlEncoded  对表单域中填写内存进行编码处理,避免乱码
@Field           指定from表单域中每个控件的name及相应数值
@FieldMap        表单域集合
@Multipart       Post提交分块请求.如果上传文件,必须指定Multipart
@Part            Post提交分块请求
@Body            Post提交分块请求
Retrofit与OKhttp的不同:1.设置请求方式是注解的形式  2.接口拼接字符串更灵活  3.异步响应回调方法在主线程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值