Android快速开发框架Afinal已经迁移至github,地址是:https://github.com/yangfuhai/afina
Afinal是一个orm、ioc框架,遵循约定大于配置原则,无需任何配置即可完成所有工作,但也可以通过配置达到个人的个性化需求。Afinal提倡代码快速简洁,尽量一行代码完成的事情不会用两行。
Afinal里面目前包含了四大组件:
FinalHttp:用于请求http数据,直接ajax方式请求,文件上传, 断点续传下载文件等
FinalBitmap:用于显示bitmap图片,而无需考虑线程并发和oom等问题。
FinalActivity:完全可以通过注解方式绑定控件和事件,无需编写代码。
FinalDb:android中sqlite的orm框架,一行代码搞定增删改查。
此次更新内容如下:
1、修改FinalHttp请求成功的时候也会回调onFailure的bug
2、修改FinalDb 数据字段为boolean类型,并且字段名称是is开头的时候有个异常警告,虽然不影响
使用。
3、修改finalDb context创建数据库修改为applicationContext
4、修改了FinalBitmap中bitmap回收的一个错误
5、修复afinal不兼容2.2的问题,目前afinal在只能android2.0以上运行(包括2.0),如果你要求的
android版本是1.6一下,那只能使用afinal的finalDb和finalActivity模块
6、修改finalHttp为独立线程池
7、之前在android4.1以后才能编译通过,现在修改为2.0以上就可以编译通过了
8、去除net.tsz.afinal.common包,同时添加net.tsz.afinal.core包
9、修改获取sdcard大小时候不给权限报错影响应用崩溃的bug
10、修改decoder图片(bitmap)的时候出现outofmemory出现的异常导致用户应用崩溃的bug
11、修复finalHttp访问一个没有被注册的域名(或者域名无法解析等)出现的:
java.io.IOException: ExceptionHost name may not be null的异常的bug
12、finalDb添加saveBindId方法,用于保存数据的时候 查询出主键赋值给保存的model
13、finalBitmap添加configCalculateBitmapSizeWhenDecode,用来关闭或开启decode图片的时候是
否计算图片大小
14、finalHttp添加SyncStringEntityHandler.java类用于处理。。。。
15、添加clearDiskCache
public void clearCache(String key)
public void clearDiskCache(String key)
public void clearMemoryCache(String key)
16、 FinalBitmap添加
clearCache()
clearCache(String key)
clearMemoryCache()
clearMemoryCache(String key)
clearDiskCache()
clearDiskCache(String key)
configCompressFormat();用于配置FinalBitmap的压缩格式
17、FinalHttp下载 添加断点续传功能
18、修复FinalDb的一个派系问题
19、完善FinalHttp的异常一直
20、修复其他若干bug和设计缺陷
这个给出了使用FinalHttp模块下载做断点续传的demo:
FinalHttp fh = new FinalHttp(); //调用download方法开始下载 HttpHandler handler = fh.download("http://www.xxx.com/下载路径/xxx.apk", //这里是下载的路径 true,//true:断点续传 false:不断点续传(全新下载) "/mnt/sdcard/testapk.apk", //这是保存到本地的路径 new AjaxCallBack() { @Override public void onLoading(long count, long current) { textview.setText("下载进度:"+current+" / "+count); } @Override public void onStart() { showToast(">>>>>>>>..开始下载..<<<<<<<<"); } @Override public void onSuccess(File t) { showToast(">>>>>>>>..下载成功..<<<<<<<< 下载地址是:"+t.getAbsolutePath()); } @Override public void onFailure(Throwable t, String strMsg) { showToast(">>>>>>>>..下载失败..<<<<<<<< 失败原因:" +strMsg); } }); //调用stop()方法停止下载 handler.stop();同时给出了提交数据 或者 上传文件的demo:
AjaxParams params = new AjaxParams(); params.put("username", "michael yang"); params.put("password", "123456"); params.put("email", "test@tsz.net"); params.put("profile_picture", new File("/mnt/sdcard/pic.jpg")); // 上传文件 params.put("profile_picture2", inputStream); // 上传数据流 params.put("profile_picture3", new ByteArrayInputStream(bytes)); // 提交字节流 FinalHttp fh = new FinalHttp(); fh.post("http://www.yangfuhai.com", params, new AjaxCallBack(){ @Override public void onSuccess(String t) { textView.setText("服务器的响应是:"+t==null?"null":t); } });
感谢大家对afinal的支持,祝福大家工作顺利,家庭幸福。