使用KJFrameForAndroid开源框架可以为开发节省很多时间,带来很多方便。KJFrameForAndroid的使用非常简单,其文档已经说的非常明白,而且也有demo可以参看。
KJFrameForAndroid的网址:http://git.oschina.net/kymjs/KJFrameForAndroid
KJFrameForAndroid的简介:是一个Android的快速开发工具包。同时封装了android中的Bitmap、Http、插件模块加载操作的框架,使开发者更容易轻松实现这些功能;
KJFrameForAndroid的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发,最终实现快速而又安全高效的开发APP。我们的目标是用最少的代码,完成最多的操作,用最高的效率,完成最复杂的功能。
主要介绍HttpLibrary模块:
KJLibrary默认对所有Http通信的数据做了缓存处理,缓存时间为5分钟。这么做的目的不仅是为了节省用户手机流量,同时是为了减少服务器压力
HttpLibrary模块使用HttpUrlConnection实现方式实现网络通信、数据上传,使用HttpClient实现文件的断点下载。根据Google建议:在2.3系统之前由于HttpUrlConnection不稳定且有一定的BUG,应该尽量使用HttpClient;在2.3以后的系统,若只是简单的数据交互,应该使用更加轻量级、易扩展的HttpUrlConnection。
get/post实例:
kjh.get("http://www.oschina.net/", new HttpCallBack();//与post相似,就只写一种了
KJHttp kjh = new KJHttp();
HttpParams params = new HttpParams();
params.put("id", "1");
params.put("name", "kymjs");
kjh.post("http://192.168.1.149/post.php", params, new HttpCallBack() {
@Override
public void onPreStart() {
super.onPreStart();
KJLoger.debug("即将开始http请求");
}
@Override
public void onSuccess(String t) {
super.onSuccess(t);
ViewInject.longToast("请求成功");
KJLoger.debug("请求成功:" + t.toString());
}
@Override
public void onFailure(Throwable t, int errorNo, String strMsg) {
super.onFailure(t, errorNo, strMsg);
KJLoger.debug("出现异常:" + strMsg);
}
@Override
public void onFinish() {
super.onFinish();
KJLoger.debug("请求完成,不管成功还是失败");
}
});
DBLibrary模块:
包含了android中的orm框架,一行代码就可以进行增删改查。支持一对多,多对一等查询。
DB模块,很大程度上参考了finalDB的设计,并在此基础上完善了几乎全部的API注释,与更多可定制的DB操作
//普通数据存储
KJDB db = KJDB.create(this);
User ugc = new User(); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性
ugc.setEmail("kymjs123@gmail.com");
ugc.setName("kymjs");
db.save(ugc);
//一对多数据存储
public class Parent{ //JavaBean
private int id;
@OneToMany(manyColumn = "parentId")
private OneToManyLazyLoader<Parent ,Child> children;
/*....*/
}
public class Child{ //JavaBean
private int id;
private String text;
@ManyToOne(column = "parentId")
private Parent parent;
/*....*/
}
List<Parent> all = db.findAll(Parent.class);
for( Parent item : all){
if(item.getChildren ().getList().size()>0)
ViewInject.toast(item.getText() + item.getChildren().getList().get(0).getText());
}
框架使用说明:
由于使用了SDK最新的API函数,以及3.0版Fragment。KJFrameForAndroid框架最低支持API 11。