Xutils框架

xutils

xUtils 包含了orm, http(s), image, view注解, 但依然很轻量级(246K), 并且特性强大, 方便扩展:
稳定的基石: AbsTask和统一的回调接口Callback, 任何异常, 即使你的回调方法实现有异常都会进入onError, 任何情况下onFinished总会让你知道任务结束了.
基于高效稳定的orm工具, http模块得以更方便的实现cookie(支持domain, path, expiry等特性)和缓存(支持Cache-Control, Last-Modified, ETag等特性)的支持.
有了强大的http及其下载缓存的支持, image模块的实现相当的简洁, 并且支持回收被view持有, 但被Mem Cache移除的图片, 减少页面回退时的闪烁…
view注解模块仅仅400多行代码却灵活的支持了各种View注入和事件绑定, 包括拥有多了方法的listener的支持.
官方地址:https://github.com/wyouflf/xUtils3

Xutils框架作用:

构建快速互联网开发中小型项目基石,gradle部署,一行代码解决项目中的网络请求,图片加载,本地缓存以及注解查询控件等功能,基于XUtils可实现咨询项目,电商项目,社区项目的快速开发上线。

Xutils注解的理解:

注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种:
• 生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等
• 跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量。也是
• 在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。

1、元注解
元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。
1.1、@Retention: 定义注解的保留策略
@Retention(RetentionPolicy.SOURCE)//注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicy.CLASS)// 默认的保留策略,注解会在class字节码文件中存在,但运行时无法得
@Retention(RetentionPolicy.RUNTIME)// 注解会在class字节码文件中存在,在运行时可以通过反射获取到

1.2、@Target:定义注解的作用目标

其定义的源码为:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
ElementType[] value();
}
@Target(ElementType.TYPE) //接口、类、枚举、注解
@Target(ElementType.FIELD) //字段、枚举的常量
@Target(ElementType.METHOD) //方法
@Target(ElementType.PARAMETER) //方法参数
@Target(ElementType.CONSTRUCTOR) //构造函数
@Target(ElementType.LOCAL_VARIABLE)//局部变量
@Target(ElementType.ANNOTATION_TYPE)//注解
@Target(ElementType.PACKAGE) ///包
其中的@interface是一个关键字,在设计annotations的时候必须把一个类型定义为@interface,而不能用class或interface关键字,由以上的源码可以知道,他的elementType 可以有多个,一个注解可以为类的,方法的,字段的等等。

1.3、@Document:说明该注解将被包含在javadoc中

1.4、@Inherited:说明子类可以继承父类中的该注解

ViewUtils使用

注解模块
https://blog.csdn.net/JKjiang123/article/details/78641629
@ContentView(R.layout.activity_view)关联xml
oncreate方法中x.view().inject(this);绑定activity
@ViewInject(R.id.ViewContentTv)初始化控件相当于findViewById
@Event(value = R.id.ViewClickBtn,
type = View.OnClickListener.class)
关联点击事件
DBUtils使用:

//配置初始化数据库的类
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig();
DbManager dbManager;//操作数据库,写入或者读取等.

//初始化数据库
private void initDb() {
daoConfig.setDbName(“viewUtils.db”);
daoConfig.setDbVersion(1);
dbManager = x.getDb(daoConfig);
}

创建JavaBean类@Table(name = “my")创建表
@Column(name = “id”,isId = true)创建列
DbManager.DaoConfig config = new DbManager.DaoConfig()
config.setDbName(“mydb.db”);
config.setDbVersion(1);
DbManager manager = x.getDb(config);
DBBean bean = new DBBean();
bean.setId(1);
bean.setName(“hehe”);
bean.setPwd(“zxy”);
manager.save(bean);

DbBean dbBean = dbManager.selector(DbBean.class).findFirst();
String str = "id = " + dbBean.getId() + " name = " + dbBean.getName() + " age = " + dbBean.getAge();
content.setText(str);

HttpUtils使用:
private final String url = “https://api.douban.com/v2/book/1220562”;
private final String postUrl = “http://192.168.1.112/news/login.php”;
private final String APK_URL = “http://softfile.3g.qq.com:8080/msoft/179/24659/43549/qq_hd_mini_1.4.apk”;

RequestParams params = new RequestParams();
params.setUri(postUrl);
params.addBodyParameter(“user”,"{“phone”:“sss”,“pwd”:“ssssss”}");
x.http().post(params, new Callback.CommonCallback() {
@Override
public void onSuccess(String result) {
mTv.setText(result);
}

@Override
public void onError(Throwable ex, boolean isOnCallback) {
    mTv.setText(ex.getMessage());
}

@Override
public void onCancelled(CancelledException cex) {

}

//创建文件下载请求参数
RequestParams requestParams = new RequestParams(APK_URL);
//设置文件下载路径
requestParams.setSaveFilePath(SAVE_PATH);
//可以断点续传
requestParams.setAutoResume(true);
//可以立即停止下载
requestParams.setCancelFast(true);

路径
private final String url = “http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1”;
private final String postUrl = “http://www.kuaidi100.com/query”;

private static final String SEVEPATH = Environment.getExternalStorageDirectory()+"/qq.apk";
private Callback.Cancelable cancelable;
private ProgressDialog progressDialog;
private final String url = “http://softfile.3g.qq.com:8080/msoft/179/24659/43549/qq_hd_mini_1.4.apk”;

自动安装apk
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(result),“application/vnd.android.package-archive”);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
DownLoadActivity.this.startActivity(intent);

@Override
public void onFinished() {
    Toast.makeText(NetActivity.this,"onFinished()",Toast.LENGTH_SHORT).show();
}

});

BitmapUtils使用:
x.image().bind(mImg,imgUrl);imageview绑定要加载的图片地址

代码实现

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值