[旧][Android] Retrofit 初步使用】的更多相关文章

备注 原发表于2016.04.13,资料已过时,仅作备份,谨慎参考 Retrofit 是什么? Retrofit is a type-safe HTTP client for Android and java. 互联网上的资料很多很杂,在收集资料初步了解后,我先粗糙地认为:Retrofit 适用于与 Web 服务器提供的 API 接口进行通信. 当你想要做更多的 HTTP 操作时,可以使用 OkHttp,Retrofit的底层也是由 OkHttp 网络加载库来支持的. 关于 Retrofit 的…
备注 原发表于2016.04.23,资料已过时,仅作备份,谨慎参考 前言 由于是第一次自己翻看源代码进行学习,加上基础不好,在看源代码的过程中简直痛苦不堪,但同时也暴露出了自己的许多问题.我觉得学习源代码是一件耗时但也收益颇多的学习方式,哪怕你暂时没有足够的时间自己去分析学习,也要擅于学习别人的经验总结. Java 基础知识点 Retrofit 的功能涉及到了 Java 的『反射』.『注解』和『动态代理』. 公共技术点之 Java 反射 Reflection 公共技术点之 Java 注解 Ann…
备注 原发表于2016.04.27,资料已过时,仅作备份,谨慎参考 前言 在上一周学习了一下 Retrofit 的执行流程.接下来的文章要更为深入地学习 Retrofit 的各个类,这次我们先学习一下 Retrofit 框架里的 Retrofit 对象,有没有十分的拗口.. 本文主要讲 Retrofit 对象的创建及其 .create 方法.基本包括了这个类的全部内容. Retrofit 对象 简介 Retrofit 通过使用方法上的『注解』来定义请求的构成,将我们声明的 Http 接口转化成一…
备注 原发表于2016.05.03,资料已过时,仅作备份,谨慎参考 前言 大家好,我又来学习 Retrofit 了,可能这是最后一篇关于 Retrofit 框架的文章了.我发现源码分析这回事,当时看明白了,过些时候再看就想这写的啥玩意.所以大家还是多看多学多分析. 另外跟我自己文章结构组织也有很大关系,我尽量在以后加强这点,做到简洁清晰有层次. 这周我们要分析一下 ServiceMethod. ServiceMethod 是什么 ServiceMethod 会将你的接口方法调用转化为一个 Cal…
推荐阅读,猛戳: 1.Android MVP 实例 2.Android Retrofit 2.0使用 3.RxJava 4.RxBus 5.Android MVP+Retrofit+RxJava实践小结 之前分享的Android Retrofit 2.0 使用,属于基本的使用,实际开发还远远不够,因此对其补充,主要在Retrofit配置和接口参数. Retrofit配置 添加依赖 app/build.gradle compile 'com.squareup.retrofit2:retrofit:…
Android Retrofit 实现(图文上传)文字(参数)和多张图片一起上传 使用Retrofit进行文件上传,肯定离不开Part & PartMap. public interface FileUploadService { @Multipart @POST("upload") Call<ResponseBody> upload(@Part("description") RequestBody description, @Part Mult…
retrofit有几个关键的地方. 1.用户自定义的接口和接口方法.(由动态代理创建对象.) 2.converter转换器.(把response转换为一个具体的对象) 3.注解的使用. 让我们跟随Api来看吧. RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(API_URL).build(); build()其内部实现是这样的: [代码]java代码: ? 1 2 3 4 5 6 7 8 public RestAda…
简介 wanandroid项目基于 Retrofit + RxJava2.0 + Kotlin + MVP 用到的依赖 implementation 'io.reactivex.rxjava2:rxjava:2.1.3' implementation 'com.squareup.retrofit2:retrofit:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.3.0' implementation 'com.squ…
实例带你了解Retrofit 2.0的使用,分享目前开发Retrofit遇到的坑和心得. 添加依赖 app/build.gradle 1 compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3' 接口调用 1 2 3 4 5 6 Retrofit retrofit = new Retrofit.Builder() //这里建议:- Base URL: 总是以/结尾:- @Url: 不要以/开头 .baseUrl("http://www.weath…
简单使用:http://blog.csdn.net/bitian123/article/details/51899716 http://blog.csdn.net/duanyy1990/article/details/52139294 Android 基于Retrofit+Rxjava搭建的简单易用的网络架构 http://blog.csdn.net/gaoshouxiaodi/article/details/51136752…
RxJava如何与Retrofit结合参考:http://blog.csdn.net/jdsjlzx/article/details/52015347 缓存配置 app网络数据的离线缓存实现有很多种办法,例如存进数据库(保存json使用时拿出来解析),存专有文件,或SharedPreference等等,也可以自己实现 LruCache 和 DiskLruCache 这两种缓存策略构成二级缓存(内存和磁盘) 缓存对于移动端是非常重要的存在: 减少请求次数,减小服务器压力. 本地数据读取速度更快,让…
标签: 开始本博客之前,请先阅读: Retrofit请求数据对错误以及网络异常的处理 异常&错误 实际开发经常有这种情况,比如登录请求,接口返回的 信息包括请求返回的状态:失败还是成功,错误码,User对象等等.如果网络等原因引起的登录失败可以归结为异常,如果是用户信息输入错误导致的登录失败算是错误. 假如服务器返回的是统一数据格式: /** * 标准数据格式 * @param <T> */ public class Response<T> { public int sta…
备注 原发表于2016.05.08,资料已过时,仅作备份,谨慎参考 前言 自上星期写 Retrofit 写吐之后 ... 我问大队长能不能换个其他什么东西写,大队长就说了个单词 ButterKnife,这个我知道,是黄油刀的意思,然后看到是减轻工作量的框架我就开心了,还在为 findViewById() 烦恼吗? ButterKnife 概要 简介 ButterKnife 是一个 Android 系统的 View 注入框架,能够通过『注解』的方式来绑定 View 的属性或方法. 比如使用它能够减…
最近看了看Android的逆向工程,破解的书,像是<Android Hack‘s Book>之类的,感觉挺有意思的,看了看一些smali的语法,试着自己写了个demo玩玩: 1.工具: 最新版的apktool2.0:http://connortumbleson.com/2015/04/20/apktool-v2-0-0-released/ 安装方法在:http://ibotpeaches.github.io/Apktool/install/ apk签名工具(懒得手动了):http://www.…
今年的Google全球开发者大会虽然没有新的Android系统和设备,但是还是推出了一些不错的产品,Android Studio就是其中之一.这个基于Intellij IDEA开发的Android IDE让很多人眼前一亮,其实时编写布局文件实时预览并适配多屏的功能可以说让苦于界面布局开发的人看到了希望.代码自动提示.运行响应速度.都比Eclipse来的要好.但这次推出的版本毕竟是预览版,所以改进的控件还有很大,大家也不要吐槽不好或难用,有空间,所以才有进步.Google也是将版本号置为0.1而非…
上一篇文章讲述了Retrofit的简单使用,这次我们学习一下Retrofit的各种HTTP请求. Retrofit基础 在Retrofit中使用注解的方式来区分请求类型.比如@GET("")表示一个GET请求,括号中的内容为请求的地址. 格式 含义 @GET 表示这是一个GET请求 @POST 表示这个一个POST请求 @PUT 表示这是一个PUT请求 @DELETE 表示这是一个DELETE请求 @HEAD 表示这是一个HEAD请求 @OPTIONS 表示这是一个OPTION请求 @…
上一篇文章讲述了Retrofit的基本使用,包括GET,POST等请求.今天的文章中Retrofit要与RxJava配合使用. 了解RxJava RxJava有种种好处,我不在这里一一讲述.这里我只给出一个使用RxJava的例子. 接下来的文章,我也会写RxJava的进一步使用的. 案例说明 该例子是获取手机上安装的APP,然后列表显示包括名称,图标,安装时间等信息. 上代码 下面是自定义的AppInfo类,包含名称,图标,安装时间,版本号,版本名称等属性. [代码]java代码: ? 01 0…
Square公司开源了许多优秀的库,Retrofit就是其中之一. Retrofit是用来简化APP访问服务器API,如果你的服务器使用的使RESTAPI,那么赶紧使用Retrofit吧. 官方的文档是用GitHub的API说明使用过程的,有的童鞋可能从没用过GitHub的API(比如我),为了简单易懂,这里我使用一个查询手机归属地的API来说明Retrofit的使用过程. 集成 目前我使用的是AndroidStudio,那么在model的build.gradle文件中添加以下引用: [代码]x…
Fragment经常在我们的开发中见到,但是自我感觉对Fragment的理解还是处于初级的阶段,接下来我将用几篇文章尽量深的解析Fragment 让我们开始吧!!! Fragment的生命周期 Fragment拥有自己的生命周期和接收.处理用户的事件,生命周期我们就用官网的一张图来展示一下 这张图对我来说还是比较好记的,他把周期分成基本的三大块吧 Create阶段 和Activity声明周期相似的阶段 Destroyed阶段 怎么样相对来说这样还是不错的吧~~~ Fragment的静态使用 <R…
备注 原发表于2016.06.20,资料已过时,仅作备份,谨慎参考 前言 感觉很长时间没写文章了,这个星期因为回家和处理项目问题,还是花了很多时间的.虽然知道很多东西如果只是看一下用一次,很快就会遗忘,但认认真真地做输出还是需要一定恒心的. 这次写 LayoutInflater 的工作流程,是由于小组一位成员在调用inflate 方法时,没有传入 parent 参数导致生成的布局宽高失效的问题. 这里先说原因,是因为如果 inflate 的 View,没有包含在某个 Viewgroup 下,也没…
备注 原发表于2016.06.06,资料已过时,仅作备份,谨慎参考 概述 Android 的消息处理机制主要是指 Handler 的运行机制以及 Handler 所附带的 MessageQueue 和 Looper 的工作流程. 在 Handler 创建完毕之后,就可以通过 Handler.post 方法将一个 Runnable 转换成一个 Message 对象,它会调用 MessageQueue 的 enqueueMessage() 将其放入消息队列中: public final boolea…
备注 原发表于2016.05.27,资料已过时,仅作备份,谨慎参考 前言 本文大量参照<Android 开发艺术探索>及参考资料的内容整合,主要帮助自己理清 View 的工作原理.深入学习希望大家更多的关注参考资料. 上一篇文章了解了 MeasureSpec 的概念及获取,从名字上看就能了解到这是用来辅助测量过程的对象,本次文章再来完整学习 View 的工作流程. View 的工作流程主要指 measure.layout.draw 这三个过程: measure:确定 View 的测量宽/高 l…
备注 原发表于2016.05.23,资料已过时,仅作备份,谨慎参考 前言 本文参考<Android 开发艺术探索>及网上各种资料进行撰写,目的是为自己理清 Android 中 View 的工作原理,复习学习内容,为后期阅读开源自定义 View 源码做好准备,深入学习可查看参考资料中的内容. 基本概念 本节介绍两个基本概念,为理解后面小节内容预热. DecorView DecorView 是 Window 中 View 的顶层 View,其结构如下所示: DecorView 其实是一个 Fram…
备注 原发表于2016.05.21,资料已过时,仅作备份,谨慎参考 前言 最近在编写布局时,发现这一块是有很多值得深入学习的地方的.毕竟应用开发,界面展示是十分重要的部分.另外在开发时,为自己的代码做好规范,你不仅需要让几周几个月之后的你简单清晰地理解目前的代码,也要让一同参与开发的同伴理解. 这里有一篇文章可以进行参考:[Android]命名规范和编码规范 本次文章我们讲一下 Layout 布局的优化,一个层次分明无冗余的布局,不仅能带来更流畅的加载,还能使维护代码变得简单清晰. 检查和优化…
备注 原发表于2016.05.21,资料已过时,仅作备份,谨慎参考 代理模式是什么 如上图所示,代理代表着另一终端中的某个真实服务对象,Client 调用代理(Client helper)的方法,然后将请求通过网络与真正的服务对象进行沟通. 例如 Windows 的快捷方式就是一种代理,用户点击快捷方式,认为自己在跟实际应用交流,实际上是快捷方式去调用了真正的应用程序. 代理模式在 Java RMI 的应用 RMI 是什么 ? RMI(Remote Method Invocation)是 J2S…
备注 原发表于2016.05.21,资料已过时,仅作备份,谨慎参考 前言 在 [Android] ButterKnife 浅析 中,我们了解了 ButterKnife 的用法,比较简单. 本次文章我们来学习一下 ButterKnife 的 ButterKnifeProcessor 注解处理器,注解处理器能够解析代码中的注解信息,生成相应的 Java 类,这也是 ButterKnife 的关键实现原理. 建议在阅读前先了解下 Java 中『注解』的概念. 准备内容 APT APT(Annotati…
备注 原发表于2016.05.07,资料已过时,仅作备份,谨慎参考 前言 本文适用范围:已参加项目开发的人 写这篇文章的目的是为方便地对代码进行管理,让整个团队的代码规范化.这里的部分规定可能和你在其他地方看到的不一样,但还是请遵守这些规则. 编码规范是泯灭程序猿个性的一项制度,但对于整个团队而言,却是一件利器 -<App 研发录> 统一代码格式 首先请参照这篇文章设置 Android Studio 的 Code Style: 设置 Code Style 细心的同学可能会发现代码风格跟 Goo…
GET请求 多个参数在URL问号之后,且个数不确定 http://api.stay4it.com/News?newsId=1&type=类型1- http://api.stay4it.com/News?newsId={资讯id}&type={类型}- @GET("News") Call<NewsBean> getItem(@QueryMap Map<String, String> map); 1 2 或者: @GET("News&quo…
http://www.b3a4a.com/?id=71 //https://login.xx.cn/mobile/login?access_token=A7E3D8CC98776F7C16F328B672221140&openid=40AB4CA325199EC7EF158590A3765CF2&sign=e438f3c32194c696feb78daef0a9b860&t=1441094067 @GET("/mobile/login")void getMyMe…
1.Service的应用场景 条件:a.并不依赖于用户可视化界面(不是绝对的,如前台service就是与notification界面结合使用的)   b.具有较长时间的运行特性. service的应用场景有很多,如: 当用户离开音乐应用时,Music playback以Service运行: 当后台文件正在下载时它以Service实现: Google应用维持一个Service来从网络中获取推送服务: 当一些特殊的数据同步需要进行时,Sync adapters以Service运行于后台: 活动壁纸以…