现在Android的开发模式很多使用MVP和MVVM,之前了解过一点MVP,有位前辈的架构图感觉还是蛮清晰的。
具体的细节网上的资料很多,一个基础的Android应用通常都要涉及文件存储和网络部分。而网络框架有很多很多,常用的比如有HttpClient,Volley,Android-async-http,Okhttp等等,现在有Square提供的开源产品Retrofit,Github网址:
https://github.com/square/retrofit
顺带补充目前貌似很火的一些技术网址:
(1)RxJava和RxAndroid,关于响应式编程的:
https://github.com/ReactiveX/RxAndroid
https://github.com/ReactiveX/RxJava
(2)依赖注入Dagger2 https://github.com/google/dagger/
通俗一点讲,Retrofit是通过注解的方式,实现一套RESTFUL架构的Android(Java)客户端实现,为Android平台应用提供一个类型安全的REST客户端。
什么是类型安全?类型安全代码指访问被授权可以访问的内存位置,例如:类型安全代码不能从其他对象的私有字段读取值,它只从定义完善的允许方式访问类型才能读取,类型安全的代码具备定义良好的数据类型。抽象抽象真抽象!慢慢领悟吧。。
那么多网络框架我们怎么选择呢?
通常来说,当我们与RestFul风格的WebService通信的时候,我们使用Retrofit,如果需要下载图片的时候Picasso或者Android-Universal-Image-Loader,如果这些还不能满足的话选用OkHttp,有人说OkHttp3是目前最稳健的Http网络框架。OkHttp支持SPDY,连接池,GZIP,HTTP缓存。默认情况下,OkHttp会自动处理常见的网络问题,比如二次连接、SSL的握手问题。如果应用程序中集成了OkHttp,Retrofit默认会使用Okhttp处理其他网络层请求。那么作为一个初学者,应该掌握哪些基础内容呢?(因为我是小菜,所以也是刚刚从基础开始学起)
(1)基本的GET和POST请求使用,从这部分了解到Retrofit的代码风格和基本的类
(2)客户端的授权验证,貌似是在客户端加了一层拦截器,比如Basic Authentication,Token Authentication, OAuth
(3)同步和异步请求
(4)实际开发中的一些基本情况,比如请求中多个同名的请求参数怎么办(id=1&id=3&id=5)?,如何在请求体里加入对象(实质上就是将对象转换成了json发送到服务器)
(5)添加自定义的请求头、响应内容转换器
(6)可选请求参数
(7)如何集成XML转换器
(8)使用Log Level调试请求
(9)如何上传、下载文件
这些应该算是基础内容,具体深入后再进行补充