Afinal 0.3.5 发布,Android快速开发框架

来源: 投稿
作者: 开源海哥
2013-04-02 00:00:00
AI总结

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的支持,祝福大家工作顺利,家庭幸福。


展开阅读全文
点击加入讨论🔥(27) 发布并加入讨论🔥
27 评论
100 收藏
分享
AI总结
返回顶部
顶部