Android的快速开发框架  afinal

Android的快速开发框架 afinal

Apache
Java
Android
2012-10-17
理工男海哥

Afinal简介

  • Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了android中的http框架,使其更加简单易用;

  • 使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。

  • Afinal的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。

目前Afinal主要有四大模块:

  • FinalDB模块:android中的orm框架,一行代码就可以进行增删改查。支持一对多,多对一等查询。

  • FinalActivity模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。

  • FinalHttp模块:通过httpclient进行封装http数据请求,支持ajax方式加载。

  • FinalBitmap模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。FinalBitmap可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。FinalBitmap的内存管理使用lru算法,没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2.3后强行回收软引用和弱引用,详情查看android官方文档),更好的管理bitmap内存。FinalBitmap可以自定义下载器,用来扩展其他协议显示网络图片,比如ftp等。同时可以自定义bitmap显示器,在imageview显示图片的时候播放动画等(默认是渐变动画显示)。

使用afinal快速开发框架需要有以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  • 第一个是访问网络

  • 第二个是访问sdcard

  • 访问网络是请求网络图片的时候需要或者是http数据请求时候需要,访问sdcard是图片缓存的需要。

FinalDB使用方法

关于finalDb的更多介绍,请点击这里

FinalDb db = FinalDb.create(this);
User user = new User(); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性
user.setEmail("mail@tsz.net");
user.setName("michael yang");
db.save(user);

FinalActivity使用方法:

  • 完全注解方式就可以进行UI绑定和事件绑定

  • 无需findViewById和setClickListener等

public class AfinalDemoActivity extends FinalActivity {

    //无需调用findViewById和setOnclickListener等
    @ViewInject(id=R.id.button,click="btnClick") Button button;
    @ViewInject(id=R.id.textView) TextView textView;

    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
    }

    public void btnClick(View v){
       textView.setText("text set form button");
    }
}

FinalHttp使用方法:

普通get方法

FinalHttp fh = new FinalHttp();
fh.get("http://www.yangfuhai.com", new AjaxCallBack(){

    @Override
    public void onLoading(long count, long current) { //每1秒钟自动被回调一次
textView.setText(current+"/"+count);
    }

    @Override
    public void onSuccess(String t) {
textView.setText(t==null?"null":t);
    }

    @Override
    public void onStart() {
//开始http请求的时候回调
    }

    @Override
    public void onFailure(Throwable t, String strMsg) {
//加载失败的时候回调
    }
});

使用FinalHttp上传文件 或者 提交数据 到服务器(post方法)

文件上传到服务器,服务器如何接收,请查看这里

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 onLoading(long count, long current) {
    textView.setText(current+"/"+count);
}

@Override
public void onSuccess(String t) {
textView.setText(t==null?"null":t);
}
  });

使用FinalHttp下载文件:

  • 支持断点续传,随时停止下载任务 或者 开始任务

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 onSuccess(File t) {  
textView.setText(t==null?"null":t.getAbsoluteFile().toString());  
    }  

});  


   //调用stop()方法停止下载
   handler.stop();

FinalBitmap 使用方法

加载网络图片就一行代码 fb.display(imageView,url) ,更多的display重载请看帮助文档

private GridView gridView;
    private FinalBitmap fb;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.images);

gridView = (GridView) findViewById(R.id.gridView);
gridView.setAdapter(mAdapter);

fb = FinalBitmap.create(this);//初始化FinalBitmap模块
fb.configLoadingImage(R.drawable.downloading);
//这里可以进行其他十几项的配置,也可以不用配置,配置之后必须调用init()函数,才生效
//fb.configBitmapLoadThreadSize(int size)
//fb.configBitmapMaxHeight(bitmapHeight)
    }


///////////////////////////adapter getView////////////////////////////////////////////

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView iv;
    if(convertView == null){
convertView = View.inflate(BitmapCacheActivity.this,R.layout.image_item, null);
iv = (ImageView) convertView.findViewById(R.id.imageView);
iv.setScaleType(ScaleType.CENTER_CROP);
convertView.setTag(iv);
    }else{
iv = (ImageView) convertView.getTag();
    }
    //bitmap加载就这一行代码,display还有其他重载,详情查看源码
    fb.display(iv,Images.imageUrls[position]);



的码云指数为
超过 的项目
加载中

评论(47)

Jean-z
Jean-z
力荐!
554330833a
554330833a
bug多吗? #afinal#
romeo2015
romeo2015
软件名字有点意思,不知道对的起这个名字否 #afinal#
OSC首席过客
OSC首席过客
android用什么框架好? #afinal#
YXY元
YXY元
为什么我的使用create方法会出现错误 #afinal#
鹅毛一地
鹅毛一地
这个框架怎么样? #afinal#
dimdim
dimdim
我在现有系统中不影响其他的前提下怎么使用,FinalDb db = FinalDb.create(this); 这个是c创建? #afinal#
VijaySun
VijaySun
afinal 下载地址在哪儿呢?! afinal
j
jingjin
这个框架可以用在Android studio里面使用吗 afinal
爱无赦
很是赞 afinal

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

Android快速开发框架Afinal已经迁移至github,地址是:https://github.com/yangfuhai/afina Afinal是一个orm、ioc框架,遵循约定大于配置原则,无需任何配置即可完成所有工作,但也可以通过配...

2013/07/21 14:24

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

Android快速开发框架Afinal已经迁移至github,地址是:https://github.com/yangfuhai/afina Afinal是一个orm、ioc框架,遵循约定大于配置原则,无需任何配置即可完成所有工作,但也可以通过配...

2013/04/02 09:40

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

afinal0.3.3 发布了,源码已经github和googlecode上去了。 这段时间很忙,只能抽晚上时间修复了一些问题,有些时候到一两点,亚历山大啊。不过,很感谢各位朋友在email和osc中给我消息,指出...

2012/12/10 11:21

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

Afinal 是一个android的 orm 和 ioc 框架。 其保护了四大功能:http请求(包含文件下载功能);图片加载;事件和ui绑定;sqlite数据库操作。而这四个功能中,都只要一行代码就可以完成。 Af...

2012/12/01 11:51

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

afinal 0.3 主要更新如下: 1、更新FinalBitmap模块,解决线程并发没有回收线程的问题,并解决了若干bug 2、重写了FinalHttp模块(参考了国内外多个优秀开源框架,取其精华) 3、FinalDb添加...

2012/11/26 13:07

Afinal 0.2.1 发布 Android的快速开发框架

这次更新主要是修复FinalDb的一个严重bug和其他几个小细节的bug。建议使用afinal的朋友们更新到最新版后开发。 代码已经上传到: http://code.google.com/p/afinal/ https://github.com/yang...

2012/11/04 10:16

Afinal 迁移至 github,Android快速开发框架

Android快速开发框架Afinal已经迁移至github,地址是:https://github.com/yangfuhai/afinal Afinal是一个orm、ioc框架,遵循约定大于配置原则,无需任何配置即可完成所有工作,但也可以通过...

2012/11/01 09:19

Afinal 0.2 发布 Android的快速开发框架(ORM,IOC)

Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少。 在android应用开发中,通过afinal的ioc框架,诸如ui绑定,事件绑定,通过注解可以自动绑定。通过afina...

2012/10/29 18:30

没有更多内容

加载失败,请刷新页面

没有更多内容

84
回答
开源软件给作者带来什么?

最近由于工作职业的转变(现在创业了,做家具家居O2O),android快速开发框架afinal更新较少了,前几天跟@红薯 到北京五道口吃饭,还合影了,@红...

2014/10/24 02:57
3
回答
Afinal网络请求

@michaely 你好,想跟你请教个问题:Afinal网络请求怎样才能自主断开当前的请求?

2013/04/27 21:03
1
回答
afinal多图片上传

@yongshine 你好,想跟你请教个问题:afinal多图片上传的问题你解决了吗

2016/08/05 16:20
1
回答
Afinal框架上传多张图片的问题

@朋也 你好,想跟你请教个问题:您以前问了一个关于Afinal框架上传多张图片的问题,链接如下:http://www.oschina.net/questi...

2016/07/25 17:56
1
回答
afinaldb怎么查询?
酸奶瓶盖儿 的回答 2016/06/01 10:24
最佳答案
怎么没人理我,不过都解决了!
4
回答
到这里为甚不执行了,高手解答!

db.save();方法就没有执行,网上查了好多资料,就是这样写的。我都想打人了!

2016/05/23 10:42
1
回答
afinal的finaldb关联对象查不到

@michaely 你好,想跟你请教个问题: 0.3.32版本 单表关联自己 @Table(name="citys") public class City...

2016/03/16 16:41
1
回答
afinal初始化错误问题

@michaely 你好,想跟你请教个问题: 因为网上关于afinal的资料比较少,之前也没碰到类似异常,所以试了很久都没解决,代码如下:        ...

2016/03/01 15:33
1
回答
使用长按Home建的一键清理后SQLite中数据被清除

使用AFinal的FinalDb将数据保存到数据库中 如果是正常退出 下次启动时 可以查询到保存的数据 但是如果使用一键清理后 再次启动时 之前保存的内容...

2015/08/11 09:09

没有更多内容

加载失败,请刷新页面

使用android快速开发框架afinal的FinalDb操作android数据库

今天给大家介绍下#afinal#来操作android的数据库sqlite。 #afinal#是一个android的orm、ioc快速开发框架,里面包含了四大功能:空间的id绑定和事件绑定功能;网络图片的显示功能(里面包含了...

2012/11/06 22:54
48.4K
14
android快速开发框架afinal(数据库篇)

今天给大家介绍下#afinal#来操作android的数据库sqlite。 #afinal#是一个android的orm、ioc快速开发框架,里面包含了四大功能:空间的id绑定和事件绑定功能;网络图片的显示功能(里面包 含了...

2014/04/28 11:31
139
0
开源项目之Android Afinal框架

项目如图: 本文参考网络! Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少。在android应用开发中,通过Afinal的ioc框架,诸如ui绑定,事件绑定,通过注...

2016/03/09 14:56
34
1
如何添加 android private libraries 中的包的源代码

先上图: 这里以添加 afinal_0.5.1_bin.jar 为例。 第一步:添加jar包到libs里面,系统自动把jar加载到android private libraries中; 第二步:新建文件 afinal_0.5.1_bin.jar.properties 文...

2015/04/29 00:38
3
0
Afinal的使用(一):FinalActivity的使用

Afinal是一个android的ioc,orm框架,源码下载地址:https://github.com/yangfuhai/afinal

2014/04/28 10:37
47
0
afinal使用指南

初学安卓,同事有建议一个安卓开发框架afinal 使用如下,从官网下载zip包后解压到本地 1新增一个安卓开发项目 2右键这个项目-选择Propertise-Java Build Path -Libraies 点击Add External JA...

2013/07/10 11:34
1K
0
Android的快速开发框架,Afinal 0.2.1 发布

Afinal 是一个android的 orm 和 ioc 框架。而且封装了android中的httpClient,使其更加简单易用。使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位...

2012/11/08 23:53
274
0
Android Afinal框架

关于afinal框架的使用

2016/04/07 17:02
63
1
开源软件给作者带来什么?

最近由于工作职业的转变(现在创业了,做家具家居O2O),android快速开发框架afinal更新较少了,前几天跟@红薯 到北京五道口吃饭,还合影了,@红薯 说100元一张,当时没带钱,所以赚了100还吃...

2014/10/24 02:53
4K
14
Afinal简介

•Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了android中的http框架,使其更加简单易用; •使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候...

2014/09/21 11:35
284
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部