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); } }); }