本文将为大家介绍一款Android ORM应用开发框架KJFrameForAndroid,很多时候我们也叫它KJLibrary。

KJFrameForAndroid简介

KJFrameForAndroid是一款基于Android的ORM和 IOC应用开发框架,封装了很多Android开发中常用的功能,包括Android中对Bitmap的操作类库。KJFrameForAndroid的设计非常精简,利用KJFrameForAndroid,我们可以用最少的代码完成很多丰富的Android功能应用,为Android开发者节省许多不必要的开发时间。

KJFrameForAndroid总共分为五大模块:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。

KJFrameForAndroid使用方法

KJFrameForAndroid的使用方法也是十分简单,首先复制KJLibrary工程中bin目录下的kjlibrary.jar文件至自己项目的libs文件夹中,然后在AndroidManifest.xml文件中添加以下权限规则:

  1. <uses-permission android:name="android.permission.INTERNET" />
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

这样就可以在Android项目中使用KJFrameForAndroid的所有功能了。

下面是利用KJFrameForAndroid实现的一些例子:

UILibrary

下面的代码实现了一个Android Tab小工具

  1. public class TabExample extends KJActivity {
  2. @BindView(id = R.id.bottombar_content1, click = true)
  3. public RadioButton mRbtn1;
  4. @BindView(id = R.id.bottombar_content2, click = true)
  5. private RadioButton mRbtn2;
  6. @Override
  7. public void setRootView() {
  8. setContentView(R.layout.aty_tab_example);
  9. }
  10. @Override
  11. protected void initWidget() {
  12. super.initWidget();
  13. mRbtn1.setText("widget clicked listener");
  14. }
  15. @Override
  16. public void widgetClick(View v) {
  17. super.widgetClick(v);
  18. switch (v.getId()) {
  19. case R.id.bottombar_content1:
  20. ViewInject.toast("clicked mRbtn1");
  21. break;
  22. case R.id.bottombar_content2:
  23. ViewInject.toast("clicked mRbtn2");
  24. break;
  25. }
  26. }
  27. }

BitmapLibrary

下面的代码实现了对Bitmap图片的处理:

  1. KJBitmap kjb = KJBitmap.create();
  2. /**
  3. * url can be local sdcard path or internet url;
  4. * view can whichever View set image(for ImageView set src;for View set background).
  5. */
  6. // local sdcard image
  7. kjb.display(imageView, "file:///storage/sdcard0/1.jpg");
  8. // internet url
  9. kjb.display(textView, http://www.xxx.com/xxx.jpg);
  10. //自定义图片显示大小
  11. kjb.display(view, http://www.xxx.com/xxx.jpg, 80, 80); //width=80,height=80

HttpLibrary

下面的代码实现了远程获取JSON的功能:

  1. // get
  2. kjh.get("http://www.oschina.net/", new HttpCallBack();//like post, so just one example
  3. // post
  4. KJHttp kjh = new KJHttp();
  5. HttpParams params = new HttpParams();
  6. params.put("id", "1");
  7. params.put("name", "kymjs");
  8. kjh.post("http://192.168.1.149/post.php", params, new HttpCallBack() {
  9. @Override
  10. public void onPreStart() {
  11. super.onPreStart();
  12. KJLoger.debug("before start");
  13. }
  14. @Override
  15. public void onSuccess(String t) {
  16. super.onSuccess(t);
  17. ViewInject.longToast("request success");
  18. KJLoger.debug("log:" + t.toString());
  19. }
  20. @Override
  21. public void onFailure(Throwable t, int errorNo, String strMsg) {
  22. super.onFailure(t, errorNo, strMsg);
  23. KJLoger.debug("exception:" + strMsg);
  24. }
  25. @Override
  26. public void onFinish() {
  27. super.onFinish();
  28. KJLoger.debug("request finish. Regardless of success or failure.");
  29. }
  30. });

DBLibrary

下面的代码实现了对数据库的操作:

  1. // data file
  2. KJDB db = KJDB.create(this);
  3. User ugc = new User(); //warn: The ugc must have id field or @ID annotate
  4. ugc.setEmail("kymjs123@gmail.com");
  5. ugc.setName("kymjs");
  6. db.save(ugc);
  7. //one - many
  8. public class Parent{  //JavaBean
  9. private int id;
  10. @OneToMany(manyColumn = "parentId")
  11. private OneToManyLazyLoader<Parent ,Child> children;
  12. /*....*/
  13. }
  14. public class Child{ //JavaBean
  15. private int id;
  16. private String text;
  17. @ManyToOne(column = "parentId")
  18. private  Parent  parent;
  19. /*....*/
  20. }
  21. List<Parent> all = db.findAll(Parent.class);
  22. for( Parent  item : all){
  23. if(item.getChildren ().getList().size()>0)
  24. Toast.makeText(this,item.getText() + item.getChildren().getList().get(0).getText(),Toast.LENGTH_LONG).show();
  25. }

当然这些只是一些最简单的例子,如果你熟悉Android开发,也可以去KJFrameForAndroid的官方网站上学习更多关于KJFrameForAndroid的高级用法。

Android ORM应用开发框架KJFrameForAndroid使用详解的更多相关文章

  1. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  2. Android EventBus 3.0 实例使用详解

    EventBus的使用和原理在网上有很多的博客了,其中泓洋大哥和启舰写的非常非常棒,我也是跟着他们的博客学会的EventBus,因为是第一次接触并使用EventBus,所以我写的更多是如何使用,源码解 ...

  3. Android开发:文本控件详解——TextView(一)基本属性

    一.简单实例: 新建的Android项目初始自带的Hello World!其实就是一个TextView. 在activity_main.xml中可以新建TextView,从左侧组件里拖拽到右侧预览界面 ...

  4. [置顶] xamarin android toolbar(踩坑完全入门详解)

    网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费.如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到 ...

  5. Android 应用程序之间内容分享详解(二)

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9428613 Android 应用程序之间内容分享详解(一) 之前给大家分享了你开发的应 ...

  6. Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  7. Android 多线程之IntentService 完全详解

    关联文章: Android 多线程之HandlerThread 完全详解 Android 多线程之IntentService 完全详解 android多线程-AsyncTask之工作原理深入解析(上) ...

  8. Android 多线程之HandlerThread 完全详解

    关联文章: Android 多线程之HandlerThread 完全详解 Android 多线程之IntentService 完全详解 android多线程-AsyncTask之工作原理深入解析(上) ...

  9. Android 6.0 RK3288 ROM编译详解+命令详解【转】

    本文转载自:http://blog.csdn.net/MLQ8087/article/details/58607692 Android 6.0 RK3288 ROM编译详解+命令详解 原创 2017年 ...

随机推荐

  1. $smarty获取变量get,post等用法

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间邮戳.直接访问PHP ...

  2. Radmin Center 1.54 测试版

    软件简介:radmin center 用于集中管理安装了 radmin server 的服务器,支持一键远程管理,数据全部本地存储,关键数据使用RC4变形加密.同时保留了radmin的高安全性和高易用 ...

  3. jQuery学习笔记(二)jQuery中DOM操作

    目录 DOM操作分类 jQuery中的各种DOM操作 查找节点 创建节点 删除节点 复制节点 替换节点 包裹节点 属性操作 样式操作 对HTML.文本和值的操作 遍历节点 CSS-DOM操作 小结 本 ...

  4. 在Excel中制作雷达图

    雷达图的作用 雷达图是专门用来进行多指标体系比较分析的专业图表.从雷达图中可以看出指标的实际值与参照值的偏离程度,从而为分析者提供有益的信息.雷达图一般用于成绩展示.效果对比量化.多维数据对比等等,只 ...

  5. 学习视频更新管理,对于前面数据库视频资料,以及.net资料失效感到抱歉

    首先,对不起,各位网友,我知道也都是好学的的人才会来查找视频,抱歉视频失效了.以后有需要的可以常联系我,有错误定当及时改正.如有延误多多包含. 上一次发的.net学习视频失效了,我决定帮大家多找一些学 ...

  6. Java开发中经典的小实例-(二分法)

    public int binarySearch(int[] data,int aim){//以int数组为例,aim为需要查找的数 int start = 0; int end = data.leng ...

  7. HTML 在安卓手机端软键盘弹出顶起页面布局的解决办法

    $('body').height($('body')[0].clientHeight); 以上是背景即BODY被顶起的解决办法. 如果是footer被顶起,则可以用判断解决, $('input').f ...

  8. 自动生成.py文件头部的C语言小程序

    每次都 vi xxx.py 然后再打 #!/usr/bin/env python 等等的程序头信息感觉有点麻烦,于是便想着写一个小程序自动生成这些头信息了,顺便在 ~/.bashrc 里写入 alia ...

  9. 使用Spring Tool Suite创建Maven Web工程

    使用STS或者Eclipse这样的IDE创建Maven Web工程还真不是一般的麻烦! 看了网上不少的方法介绍,操作下来总有区别,不是这里不对就是那里不对. 下面是尝试了几次之后成功的方法,记录一下. ...

  10. hadoop中遇到的一些问题

    1.验证词统计程序.----无法加载本地库 出现错误: WARN util.NativeCodeLoader: Unable to load native-hadoop library for you ...