1. Retrofit
是一个网络请求框架,Retrofit内置了okhttp,前者专注于接口的封装,后者专注于网络请求的高效。我们的应用程序通过retrofit请求网络,实际上是使用retrofit接口层封装请求参数、header,url等信息,之后又OkHttp完成后续的请求操作,在服务器返回数据之后,OkHttp将原始数据的结果交给Retrofit,Retrofit根据用户的需求对结果进行解析。
简单使用:
- 添加依赖
- 定义一个接口
- 构造Retrofit实例
- 利用Retrofit实例的oncreate方法获取之前定义的接口的实例
- 调用接口实例的方法获取请求对象,
- 利用上步中的请求对象开始请求,有同步请求(execute),异步请求(enqueue)
原理解析:
Retrofit重要的两个核心技术就是动态代理、注解。
参考文章:
Retrofit 介绍、使用与原理解析
2.微信热修复Tinker
参考文章:微信热修复开源库 Tinker imitator 原理篇
微信热修复框架的使用心得体会------Tinker
3.MVP
专题:MVP、MVVM、MVC
4.应用性能的优化
专题:性能优化
5.RecyclerView
- RecyclerView默认提供了三种布局,线性布局,网络布局,瀑布流布局;
- ViewHolder的编写规范了,不需要手动复用item
- listview可以添加头布局和尾部局
- RecyclerView提供了刷新单个item的api;
- RecyclerView有自带的动画效果;
- listview有单击、长按事件;
6.Glide
7.Gson、fastjson解析
8.butterknife
9.Volley
两种Dispatch Thread不断从RequestQueue中取出请求,根据是否已缓存调用Cache或Network这两类数据获取接口之一,从内存缓存或是服务器取得请求的数据,然后交由ResponseDelivery去做结果分发及回调处理。
Volley源码介绍最全的一篇
10.Sqlite数据库的操作
11.ormlite、litepal、greendao、xUtils的dbutils
12.第三方支付
专题:第三方支付
13. 额外的:
- hashMap的原理:HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,仅需一次寻址即可;如果定位到的数组包含链表,对于添加操作,其时间复杂度依然为O(1),因为最新的Entry会插入链表头部,急需要简单改变引用链即可,而对于查找操作来讲,此时就需要遍历链表,然后通过key对象的equals方法逐一比对查找。所以,性能考虑,HashMap中的链表出现越少,性能才会越好。
HashMap实现原理及源码分析
网友评论