AFinal是国内的某个大牛开发出来的一个框架,目前主要有4大模块:
-
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显示图片的时候播放动画等(默认是渐变动画显示)。
这里我们使用的是FinalHttp模块,用于访问网络,简单粗暴而且实用!
开源框架下载地址:https://github.com/yangfuhai/afinal
使用Git进行克隆:git clone https://github.com/yangfuhai/afinal.git
然后 afinal---->bin 会有很多的jar包,使用最新的afinal_0.5.1_bin.jar
将这个jar包引入到我们的工程,然后我们就可以使用这个框架方便的访问网络,可以get请求、post请求、上传和下载文件!具体使用方式见:https://github.com/yangfuhai/afinal
示例代码:
public class MainActivity extends Activity implements OnClickListener {
private TextView text;
private Button bt_get;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.text);
bt_get = (Button) findViewById(R.id.bt_get);
bt_get.setOnClickListener(this);
}
@Override
public void onClick(View v) {
FinalHttp http=new FinalHttp();
http.get("http://www.baidu.com", new AjaxCallBack
() {
//这里的泛型与onSuccess(String response)方法中的参数相对应
@Override
public void onFailure(Throwable t, int errorNo, String strMsg) {
// TODO Auto-generated method stub
super.onFailure(t, errorNo, strMsg);
}
@Override
public void onLoading(long count, long current) {
// TODO Auto-generated method stub
super.onLoading(count, current);
}
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
}
@Override
public void onSuccess(String response) {
super.onSuccess(response);
text.setText(response);
}
});
}
}