1.简介
afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少。在android应用开发中,通过afinal的ioc框架,诸如ui绑定,事件绑定,通过注解可以自动绑定。通过afinal的orm框架,无需任何配置信息,一行代码就可以对android的sqlite数据库进行增删改查操作。同时,afinal内嵌了finalHttp等简单易用的工具,可以轻松的对http请求进行操作。
2.主要组件
FinalHttp:用于请求http数据,直接ajax方式请求,文件上传, 断点续传下载文件等
FinalBitmap:用于显示bitmap图片,而无需考虑线程并发和oom等问题。
FinalActivity:完全可以通过注解方式绑定控件和事件,无需编写代码。
FinalDb:android中sqlite的orm框架,一行代码搞定增删改查
3.特点
1)设计简单小巧灵活
2)orm零配置,但可以配置,可以通过灵活的注解配置达到更加强大的功能
3)数据库查询支持DbModel,可以轻松的进行各种复杂的查询
4)android的ui和事件绑定完全通过注解的方式,无需编写一行代码
5)http请求支持ajax方式请求
6)体积小(不到100KB),不依赖第三方jar包
4.常用功能步骤
1)加载图片
(1)获取FinalBitmap对象
(2)设置网络请求默认显示的图片,和显示的组件,和加载的url等。
核心代码:
FinalBitmap finalBitmap = FinalBitmap.create(this);
// 网络请求图片时默认显示的图片
finalBitmap.configLoadingImage(R.drawable.atguigu_logo);
// 开始加载图片
finalBitmap.display(iv_afinal,"http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg");
2)请求文本
(1)获取FinalHttp对象
(2)加载url,并且设置一个对象AjaxCallBack用于监控请求过程
核心代码:
public void bt_afinal_gettext_click(View view){
FinalHttp finalHttp = new FinalHttp();
String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api";
finalHttp.get(url, new AjaxCallBack<Object>() {
@Override
public void onStart() {
tv_afinal_result.setText("开始加载");
super.onStart();
}
@Override
public void onSuccess(Object o) {
// 显示加载成功后的结果
tv_afinal_result.setText(o.toString());
super.onSuccess(o);
}
@Override
public void onFailure(Throwable t, int errorNo, String strMsg) {
tv_afinal_result.setText("加载失败");
super.onFailure(t, errorNo, strMsg);
}
});
}
3)下载文件
(1)获取FinalHttp对象
(2)设置请求网站,下载文件保存路径
(3)下载,并设置一个对象AjaxCallBack用于监控请求过程
核心代码:
public void bt_afinal_loadfile_click(View view){
FinalHttp finalHttp = new FinalHttp();
// 请求网络资源的地址
String url = "http://vfx.mtime.cn/Video/2016/10/11/mp4/161011092841270064_480.mp4";
// 存放视频文件到本地位置
String target = getFilesDir()+"/afinalmusic.mp4";
finalHttp.download(url, target, new AjaxCallBack<File>() {
@Override
public void onSuccess(File file) {
tv_afinal_result.setText("下载文件成功");
super.onSuccess(file);
}
@Override
public void onFailure(Throwable t, int errorNo, String strMsg) {
tv_afinal_result.setText("下载文件失败");
super.onFailure(t, errorNo, strMsg);
}
@Override
public void onStart() {
tv_afinal_result.setText("开始下载");
super.onStart();
}
});
}
4)上传文本
(1)获取FinalHttp对象
(2)设置请求网站,本地上传文件路径
(3)下载,并设置一个对象AjaxCallBack用于监控请求过程
核心代码:
public void bt_afinal_updatetext_click(View view){
FinalHttp finalHttp = new FinalHttp();
// 文件上传到服务器的位置
String url = "http://192.168.0.103:8080/FileUpload/FileUploadServlet";
AjaxParams params = new AjaxParams();
// 获取要上传的本地资源
try {
params.put("File",new File(getFilesDir()+"/afinalmusic.mp4"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
finalHttp.post(url, params, new AjaxCallBack<Object>() {
@Override
public void onStart() {
tv_afinal_result.setText("开始上传");
super.onStart();
}
@Override
public void onSuccess(Object o) {
tv_afinal_result.setText("上传成功");
super.onSuccess(o);
}
@Override
public void onFailure(Throwable t, int errorNo, String strMsg) {
tv_afinal_result.setText("上传失败");
super.onFailure(t, errorNo, strMsg);
}
});
}