您的位置:首页 > 移动开发 > Android开发

[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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: