一、xUtils3简介
xUtils是一个android使用工具框架,包含了如下几大功能:
注解定义:提供了布局,视图和事件等注解,能够简化相关的Android代码;
网络请求:支持GET、PUT、DELETE和PUT等请求方式,封装了异步Task,支持FIFO和FILO优先级线程池,提供了同步异步请求,支持https、cookie和硬盘缓存等;
图片绑定:封装了内存和硬盘缓存,优化了Bitmap加载过程,处理了ViewHolder产生的图片错乱问题,支持https等;
数据封装:封装了相关概念,直接将JavaBean映射成对应的表,封装sql语句的select、where和insert等语句操作等;
具体的实现,大家可以到github(https://github.com/wyouflf/xUtils3)上下载相关源码进行学习。下面我们就xUtils3的基本使用,结合一个图片列表的Demo跟大家进行介绍。该项目的源码使用了MVP和Https相关知识,如果有看不明白,请阅读Android实践《Https实现》和《MVC到MVP》相关博客进行了解;
二、xUtils3使用
1.首先看下我们项目结构,如下图:
common:项目公共库,包含了该项目公共类,如QBaseActivity.java,在这里执行xUtils的Activity注入;
home:项目app,在这里使用xUtils框架实现了一个简单的列表功能,其中使用了注解、网络请求(https)和图片绑定等;
... ...
2.xUtils的接入
在build.gradle构建文件中添加xUtils框架的依赖;
common/build.gradle
在Application类中初始化xUtils框架;
home/src/main/com.qunar.home/QAppliction.java
xUtils是一个android使用工具框架,包含了如下几大功能:
注解定义:提供了布局,视图和事件等注解,能够简化相关的Android代码;
网络请求:支持GET、PUT、DELETE和PUT等请求方式,封装了异步Task,支持FIFO和FILO优先级线程池,提供了同步异步请求,支持https、cookie和硬盘缓存等;
图片绑定:封装了内存和硬盘缓存,优化了Bitmap加载过程,处理了ViewHolder产生的图片错乱问题,支持https等;
数据封装:封装了相关概念,直接将JavaBean映射成对应的表,封装sql语句的select、where和insert等语句操作等;
具体的实现,大家可以到github(https://github.com/wyouflf/xUtils3)上下载相关源码进行学习。下面我们就xUtils3的基本使用,结合一个图片列表的Demo跟大家进行介绍。该项目的源码使用了MVP和Https相关知识,如果有看不明白,请阅读Android实践《Https实现》和《MVC到MVP》相关博客进行了解;
二、xUtils3使用
1.首先看下我们项目结构,如下图:
common:项目公共库,包含了该项目公共类,如QBaseActivity.java,在这里执行xUtils的Activity注入;
home:项目app,在这里使用xUtils框架实现了一个简单的列表功能,其中使用了注解、网络请求(https)和图片绑定等;
... ...
2.xUtils的接入
在build.gradle构建文件中添加xUtils框架的依赖;
common/build.gradle
apply plugin: 'com.android.library'
android {
... ...
}
dependencies {
... ...
compile 'com.alibaba:fastjson:1.1.54.android'
//声明xutils依赖
compile 'org.xutils:xutils:3.3.38'
testCompile 'junit:junit:4.12'
}
在AndroidManifest.xml中添加相关权限;
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.qunar.home">
//声明相关权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application>
... ...
</application>
</manifest>
3.xUtils @ContentView @ViewInject和@Event注解的使用;
在Application类中初始化xUtils框架;
home/src/main/com.qunar.home/QAppliction.java
public class QAplication extends Application{
@Override
public void onCreate() {
super.onCreate();
//初始化XUtils框架
x.Ext.init(this);
x.Ext.setDebug(Bu