[Android教程] Android 牛逼哄哄的快速开发框架AndroidOne,秒杀最火的Xutils
2015-12-26 17:19
701 查看
[align=left]一个牛逼哄哄的Android框架One[/align] [align=left]github地址https://github.com/devinhu/androidone[/align] One框架能帮您带来什么? [align=left]One框架分为两个项目,OneCore为核心工程,http://www.kmnk03.com/hxpfk/qcd/392.htmlandroidOne为演示项目,依赖oneCore[/align] [align=left]One整个框架为MVC模式搭建,基于android framework为核心,集成Android世界中的主流技术选型[/align] [align=left]以Pragmatic风格的Android应用参考示例,是android项目最佳实践的总结与演示[/align] [align=left]以“复杂的世界里,一个就够了”为理念,励志帮助android开发人员快速搭建一个简单高效的android开发框架![/align] 异步模块 [align=left]封装EventBus类,将异步框架单独抽出来,任何耗时操作(不仅仅是网络请求)都可以放到异步模块里[/align] [align=left]与网络模块分离实现,可以直接写单元测试类测试接口,让接口调试更方便[/align] [align=left]支持多并发、http://www.kmnk03.com/hxpfk/qcd/393.html取消操作[/align] [align=left]多个请求,一个回调接口处理,让页面代码更简洁[/align] [align=left]建议一般在BaseActivity、BaseFragment中实现[/align] [align=left]实现参考类 AsyncTaskManager.java[/align] [align=left]使用参考类 BaseActivity.java[/align] [align=left]使用参考类 BaseFragment.java[/align] HTTP请求模块 [align=left]采用第三方AsyncHttpClient方案,支持http、https方式,支持get、post、put、delete方法,支持GZIP、File格式,支持Retry、Cacel策略,堪称完美![/align] [align=left]改造实现SyncHttpClient,http://www.kmnk03.com/hxpfk/qcd/394.html支持同步,并支持RESTFUL风格,调接口时可直接单元测试[/align] [align=left]实现参考类 SyncHttpClient.java[/align] DownloadManager资源下载模块 [align=left]改造实现BreakpointHttpResponseHandler支持多并发、多文件上传、断点续传、暂停、继续、删除下载任务[/align] Common模块 [align=left]页面堆栈管理ActivityPageManager[/align] [align=left]各种自定义dialog[/align] [align=left]支持hybrid开发[/align] [align=left]各种工具类[/align] [align=left]各种动画效果[/align] SharedPreferences管理 [align=left]支持直接put、get对象。[/align] LruCache管理 [align=left]封装LruCache,http://www.kmnk03.com/hxpfk/qcd/395.html只缓存CACHE_SIZE大小的数量,超过CACHE_SIZE自动释放前面的对象,建议页面间传参使用。[/align] 系统异常处理 [align=left]Bugtags是新一代的、专为移动测试而生的缺陷发现及管理工具。移动App集成Bugtags SDK后,测试人员就可以直接在App里所见即所得的提交 bug,SDK会自动截屏、收集App运行时数据,如:设备信息,控制台数据,用户的操作步骤等,团队人员在Bugtags云端高效的跟踪及管理bug。[/align] 解析管理 [align=left]支持XML、JSON、JSOAP解析[/align] 一行代码轻松转JAVA对象 [align=left]采用fastjson实现java、json互转[/align] [align=left]采用xstream实现Java、xml互转,支持注解解析[/align] [align=left]自主封装,支持soapObject转http://www.kmnk03.com/hxpfk/qcd/396.htmlJava对象[/align] CacheManager缓存管理 [align=left]磁盘缓存,缓存对象需实现序列化接口,提供读取、失效,清除方法。一般用于对接口数据的缓存。[/align] /** * 缓存使用示例 * * @return * @throws HttpException */ public AdResponse getAdList() throws HttpException { AdResponse response = null; RequestParams params = getRequestParams(); params.put("method", "fmms.getAdvertisementList"); params.put("data", "{}"); http://www.kmnk03.com/hxpfk/qcd/397.html //根据请求得到唯一的缓存Key String key = getCacheKey(AdResponse.class.getSimpleName()); //读取缓存 if(CacheManager.isInvalidCache(key, INVALID_TIME_1DAY)){ response = CacheManager.readObject(key); if(response != null && response.isSuccess()){ return response; } } String result = httpManager.post(mContext, Constants.DOMAIN, getSignParams(params), ContentType); if(!TextUtils.isEmpty(result)){ http://www.kmnk03.com/hxpfk/qcd/398.html //一句话解析成对象 response = jsonToBean(result, AdResponse.class); if(response != null && response.isSuccess()){ //获取数据成功,写入缓存 CacheManager.writeObject(response, key); } } //最后都没有数据,还是从缓存中取 if(response == null){http://www.kmnk03.com/hxpfk/qcd/399.html response = CacheManager.readObject(key); if(response != null && response.isSuccess()){ return response; } } return response; } BroadcastManager广播管理 [align=left]为了发送广播更加方便,自主封装了BroadcastManager,方便好用。[/align] DB模块 [align=left]采用GreenDaoORM方案,直接实现Java Object的CURD方法就可以操作数据库,非常好用,极力推荐。[/align] [align=left]实现DBManager,连获取Dao的代码都不用写了,不管通过DaoGenerator生成的对象如何变化,通过DBManager可以让你拿到任何Dao对象,从而实现数据库操作。http://www.kmnk03.com/hxpfk/qcd/400.html[/align] [align=left]DaoGenerator工程自动生成model、dao、session对象等代码,拷过来直接使用即可。[/align] /** * 数据库示例 */ public void testDB(){ NoteDao dao = DBManager.getInstance(getContext()).getDaoSession().getNoteDao(); //add for(int i=0; i<=4; i++){ Note bean = new Note(); bean.setComment("comment"); bean.setDate(new Date()); bean.setText("text"); dao.insert(bean); } //udpate List<Note> list = dao.loadAll(); if(!list.isEmpty()){ Note bean = list.get(2); bean.setComment("comment_comment"); dao.update(bean); } //query if(!list.isEmpty()){ for(Note note : list){ NLog.e("testDemo", note.getComment()); } } http://www.kmnk03.com/hxpfk/qcd/401.html //delete if(!list.isEmpty()){ dao.delete(list.get(0)); } } 注解模块 [align=left]集成butterknife注解框架,一个No Magic的Android注入框架,用过的人都说好,极力推荐。[/align] 支付模块 [align=left]集成支付宝支付和微信支付[/align] 图片下载模块 [align=left]采用universal-image-loader解决方案,有关使用情况请参见universal-image-loader[/align] [align=left]为了提供用户体验,建议在listview或者gridview在滑动的时候不加载图片[/align] refreshlistview.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true)); 视频教程 [align=left]优酷地址http://v.youku.com/v_show/id_XMTQwNTU3NjI4NA==.html?qq-pf-to=pcqq.c2c[/align] [align=left]非常感谢融云阿明的辛苦录制![/align] 结语 [align=left]看到这里,估计您和您的小伙伴们都惊呆了吧!赶快动手试试吧![/align] [align=left]具体使用请参考androidOne演示工程。[/align] [align=left]我改变不了这个世界!这个世界也休想将我改变![/align] [align=left]如果任何问题或者建议,欢迎沟通。[/align] [align=left]QQ群:195104825[/align] kmnk03.com www.kmnk03.c0m |
相关文章推荐
- android动画之帧动画(drawable animation)和补间动画(view animation)
- [Android教程] Android系统Intent中的Uri使用
- PhoneGap/Cordova学习笔记--1.Android环境搭建
- Android通过在布局文件中设置include实现xml布局的复用
- Androidclient与服务端交互之登陆演示样例
- [置顶] android 添加阴影引导
- 用友android
- Android大图片裁剪终极解决方案
- Android通过Mainfest设置Theme实现布局全屏
- Android通过PopupMenu定义弹出菜单的位置
- AndroidStudio遇到的问题
- Android 反编译
- Android开发中setLatestEventInfo、Handler、SimpleDateFormat警告解决办法
- 【已解决】(魅族)手机usb调试模式连接不上电脑
- Android通过一个long值(秒数)返回格式化日期样式
- 关于android调用拍照不返回的问题。
- 基于安卓客户端的百度云消息推送实现DEMO
- Activity生命周期的深入思考
- android随笔01——handler
- android随笔02——MD5加密代码