KJFrameForAndroid 又叫KJLibrary,是一个Android的快速开发工具包。同时封装了android中的Bitmap、Http、插件模块加载操作的框架,使开发者更容易轻松实现这些功能,最终实现快速而又安全高效的开发APP。我们的目标是用最少的代码,完成最多的操作,用最高的效率,完成最复杂的功能。
你可以从这里获取到项目源码 http://git.oschina.net/kymjs/KJFrameForAndroid
KJFrameForAndroid 参考了许多国际上著名的Android框架如Volley、sync-http,上手使用门槛更低,更全面的http请求,考虑周全的bitmap网络加载,完善的功能且不受混淆影响...
很多朋友在问,KJFrameForAndroid与xUtils、afinal、thinkAndroid这类框架有什么区别,在你看过了这类框架的源代码后就会很直观的发现:KJFrameForAndroid的项目结构与代码更加直观明了易懂,项目demo与API文档更加齐全,更关键的是使用起来更加简单易用,容易上手。而且不会像其他框架最终变成没人维护的项目。
经过一个多月的重构,本次2.0版本更新内容包括
1、重构代码逻辑,提高框架总体执行效率,提高代码可读性。
2、优化图片缓存逻辑,提升图片加载的处理速度
3、解决http请求中断异常 4、完美解决断点下载造成死锁问题
5、重写多文件上传逻辑,文件图片上传更方便
6、添加文件上传服务器端接收demo,更容易配合后台实现文件数据交互
7、解决插件化开发库文件杂乱问题
8、增加Activity继承链的规范化
===========================各模块介绍======================
Plugin模块
你想像过不安装一个apk而直接被应用调用吗?你考虑过将应用的某一个功能单独出来像文件一样随时读取吗?插件化模块可以轻松帮你实现apk动态加载,让你的应用调用未安装的apk。
UILibrary模块包括两部分:
Widget控件部分 主要封装了常用的UI控件,为了不让项目jar包过大,我们只引入了开发中一定会用到的控件,例如:可上下拉的KJListView、可上下拉的KJScrollView、可以双指缩放双击缩放双指旋转的ScaleImageView、等等......更多内容请自行查看项目文件中.widget包下的内容
Topology拓扑部分 包含一个使用IOC设计思想的控件初始化方式:可通过注解的方式进行UI绑定,与设置监听,在Activity和Fragment中均可以通过一行代码绑定控件并实现点击监听;还包含了在目前应用开发中常见的布局界面,如侧滑效果,高效的底部TAB导航,3D效果的切换。同时UILibrary为开发者定义了完善的BaseActivity和BaseFragment,开发者只需手动继承就可以获得Topology部分的全部功能。
BitmapLibrary模块
一行代码实现网络图片加载,任何View(ImageView设置src,普通View设置bg)加载图片的时候都无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象,同时无需考虑图片加载过程中出现的OOM。默认使用内存lru算法+磁盘lru算法缓存图片,同时节省内存消耗默认采用控件的大小作为图片的大小加载图片。
HttpLibrary模块
可以一行代码实现Http请求、一行代码实现文件或图片的上传与下载。 kjh.download( url, params, callback);
KJLibrary默认对所有Http通信的数据做了缓存处理,缓存时间为5分钟。这么做的目的不仅是为了节省用户手机流量,同时是为了减少服务器压力
同时不同于afinal的下载BUG(请看这里:http://my.oschina.net/kymjs/blog/355944),KJFrameForAndroid原生支持文件断点下载。
DBLibrary模块
可以一行代码对数据库进行增删改查等操作:kjdb.update(); kjdb.add(); .......
包含了android中的orm框架,使用了线程池对sqlite进行操作,一行代码就可以进行增删改查。支持一对多,多对一等查询。
使用方法
1、复制jar包 KJFrameForAndroid_v2.x 到你工程的/libs目录中.
2、查看各个模块的使用帮助
3、更多在实际项目中使用的Demo: 音乐播放器 爱看博客客户端
4、框架API文档:http://kjframe.github.io 注,KJFrameForAndroid需要在AndroidManifest.xml 中声明如下权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
github项目地址:
https://github.com/kymjs/KJFrameForAndroid
osc.git项目地址:
http://git.oschina.net/kymjs/KJFrameForAndroid