一些Android框架-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

一些Android框架

简介:

从网上收集一些框架,敲代码偷懒这些框架非常实用,必须记下来,为了以后少写代码,用别人好的框架

ThinkAndroid

ThinkAndroid(一个ThinkAndroid教程地址:http://my.oschina.net/u/1046077/blog/127603)尽管有非常多使用的功能,例如以下。非常齐全。并且以下这些功能做一个安卓项目都是须要的

  • MVC模块

  • ioc模块用法:

  • 数据库模块

  • Http模块用法:

  • 异步get方法

  • 同步get方法

  • 使用http下载文件:

  • 缓存模块 方法

  • 打印模块用法

  • 下载器模块

  • 下载器后台执行

  • 配置器模块:

  • 网络状态检測模块:

只是后来发现。一来这个框架好久没维护了,二来。由于做的是一个比較麻烦的项目。所以一个肯定要改动非常多。这个框架改起来不方便。当时把这个框架的源代码都看了一遍。折腾了近半个月,还是决定放弃了(不是他不好用。仅仅是不够灵活。比方你要用这个框架,你的Application。Activity都必须继承这个框架的,不继承就不能用框架的,由于如今Android多了非常多新的Activity,那你要想着按他的TAActivity改也非常麻烦)。

后来又发现了一个比較厉害的集成框架(这里说的意思是功能方面的集大成,类似第一个),叫

DroidParts

(官网:http://droidparts.org)

功能也是非常强大,基本上也涵盖了上面说的那些功能,并且框架相对灵活一些,作者将自己的Activity也命名为Activity,并且添加的代码非常少,所以。假设你要集成一个特殊的Activity进来。仅仅须要一两行代码的改变。他的功能例如以下:

  • DI  - injection of Views, Fragments, Services, anything.:依赖注入
  • ORM  - efficient persistence utilizing Cursors & fluent API.:ORM对象关系模型,就是将SQLite转为面向对象,类似Hibernate
  • EventBus  for subscribing to and posting events.:EventBus
  • Simple  JSON  (de)serialization capable of handling nested objects.:JSON转换
  • Improved  AsyncTask  &  IntentService  with Exceptions & result reporting support.:同步异步请求
  • L ogger that figures out tag itself & logs any object.:日志
  • RESTClient  for GETting, PUTting, POSTing, DELETing & InputStream-getting, also speaks JSON.:简单的RESTFULclient
  • ImageFetcher  to asynchronously attach images to ImageViews, with caching, cross-fade & transformation support.:图片载入和缓存
  • Numerous  Utils .:其它工具(如一些新的组件)

这个对我来说已经感觉非常好的,框架非常灵活,并且自己定义也方便。做一般的简单的项目应该没有不论什么问题了。我还因此将官网的文档全然翻译了一遍在博客中写了一个系列。这个框架我前前后后也使用了半个多月的时间,为什么后来又放弃了呢!

原因在于。他里面全部的功能基本上是自己的实现,所以,就导致了一个问题就是可定制性不强。总体功能强大。可是每一个小功能就比較薄弱了,所以我又放弃了。

后来在GitHub上到处找啊找啊,又找到一个框架(事实上也不算是一个框架,应该是一个演示项目),名字叫Android Bootstrap。只是这里要插一点的是。还有另外一个Android Bootstrap,和Web中的Bootstrap算是有一点相应。那个Android Bootstrap是一个安卓组件风格的集合(另一些文字图标),这个我在使用DroidParts的使用也继承了这个工具。后来放弃了(没实用,由于美工都已经把界面设计好了。我要这个就没实用了),回到正题说我们的主角了。

 Android Bootstrap

官网:http://www.androidbootstrap.com/

GitHub地址:https://github.com/AndroidBootstrap/android-bootstrap

Android Bootstrap是一个演示项目,他集合了安卓开发中经常使用的工具集(这些开源工具基本涵盖了我们上面提到的两个集大成框架的全部功能点)。然后做了一个有几个最初功能的应用(比方安卓账户管理等),基本上把那些开源工具都整合进去使用了一遍。所以,我们就能够把这个项目作为我们的项目的雏形的雏形来进行开发。如今我的程序也做了好长时间了,一个人做起来的确有些慢,只是也算渐渐进入状态了,后来我又整合了好些个开源工具来实现不同的功能,整体来说。选择这个项目程序来开发我的app是对的。如今能够列一下我项目中用到的全部的开源工具给大家一个參考(非常多工具我都是经过认真的多个中选择的,除了最初的那几个基本保留外):


//这个就不说了。安卓自己的

compile 'com.android.support:support-v4:19.+' :

//这个也不用说吧,安卓自己的 compile 'com.android.support:appcompat-v7:19.+'

//这个工具都应该知道,谷歌开发的JSON工具包。由于我们传数据都是用的JSON。所以常常要在对象和JSON字符串之间进行转换。这个工具没有显示的用。而是在以下的RETROFIT这个工具中调用的 compile 'com.google.code.gson:gson:2.2.4'

//这个工具是做图片载入的,大家知道我们的app的图片肯定实现先显示占位符,然后再异步载入的,中间涉及到(异步载入,内存,硬盘缓存等)好多事情,这个工具通过简单的API(一种链式API风格。我非常喜欢)去实现,中间的事情全然不须要我们担心了,只是听说另外一个做图片缓存的工具,比这个功能强大。叫什么忘记了,只是这个工具绝对牛 compile 'com.squareup.picasso:picasso:2.3.2'

//依赖注入:简单来说就是帮我们统一新建对象的,详情看我的博文 compile 'com.squareup.dagger:dagger:1.2.1'

//dagger的编译工具,由于dagger会用到非常多注解。这个工具就是说。我们的注解不是通过反射去处理的,而是直接生成代码,速度快。和以下的几个注解工具一样的方式,详情看我的博文 compile 'com.squareup.dagger:dagger-compiler:1.2.1'

//视图注入:我们常常会findById了,setOnClickListener了这些方法。非常麻烦。并且看着代码非常乱。这个工具就是通过注解去实例化你的View,当然,还有其它功能。详情看我的博文 compile 'com.jakewharton:butterknife:5.0.0'

//这个工具好像是基于HttpClient的,只是我如今不用这个了,我是全然用的Retrofit compile 'com.github.kevinsawicki:http-request:3.0'

//这个工具也是大名鼎鼎。是viewpager的指示器的开源工具(Viewpager如今也是一种很经常使用的View) compile 'com.actionbarsherlock:viewpagerindicator:2.4.1@aar'

//pusher:通知框架,眼下还没開始用 compile 'com.github.kevinsawicki:android-pusher:0.6'

//一个工具集吧。比方我如今用的最频繁的Toaster.showLong|showShort,事实上就是安卓自己的Toast类的封装 compile 'com.github.kevinsawicki:wishlist:0.9'

//EventBus:是用来解耦各个类的。比方我的Fragment和Activity交互,寻常是要定义一个接口然后传入进来操作的,用这个就直接post了,非常方便,当然他的功能非常强大的,能够參考我的博文(最好是官方的英文文档,我的博文是个简单翻译) compile 'com.squareup:otto:1.3.4'

//Restful是如今比較流行的一个WEB设计风格吧。我事实上也非常喜欢这样的风格,这个工具绝对帅爆了,写一个请求仅仅须要写接口。实现都由工具来帮你搞定了,事实上我们发送请求本来也不须要写逻辑代码(仅仅须要发送URL,參数,Header等。这些都能够通过注解设置了) compile 'com.squareup.retrofit:retrofit:1.6.1'

//这个是一个简单的图片Slider。支持图片以下的标题文字 compile 'com.daimajia.slider:library:1.0.7@aar'

//瀑布流,用这个但是费了我好大的功夫。由于他不支持上拉家在很多其它,我在他和PullToRefresh的整合但是花了不少时间(两天了) compile 'com.etsy.android.grid:library:1.0.5'

//圆角图形工具,能够理解为一个View。这个View能够设置你的组件是圆形的。椭圆的,边框等。非常灵活 compile 'com.makeramen:roundedimageview:1.3.0'

//下拉刷新上拉载入组件,非常有名气,支持非常多的组件(如ListView,WebView,ViewPager等等) compile 'com.mcxiaoke.pulltorefresh:library:2.5.3'

//,能够在3.0曾经的系统上使用属性动画,是一个向下兼容3.0的新的动画特性的包 compile 'com.nineoldandroids:library:2.4.0'

//这个是做字段校验的工具:比方你能够在一个TextView上面使用注解,约束这个TextView的文本必须是邮箱格式 compile ('eu.inmite.android.lib:android-validation-komensky:0.9.2'){

exclude module: 'support-v4' }


当然,我还没有列出的其他必备工具,最明显的例如ORM(因为现在不实际的做),日志






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5049381.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: