一些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(因为现在不实际的做),日志
一些Android框架的更多相关文章
- Android 框架简介--Java环境(转)
==========================上=========================== 这里简单的介绍了Android的java环境基础,在后面一节中会结合具体的实例来理解这一节 ...
- 【Android - 框架】之GreenDao的使用
上一篇博客([Android - 框架]之ORMLite的使用)中介绍了ORMLite的基本使用,今天我们来研究以下GreenDao的使用. GreenDao和ORMLite一样,都是基于ORM(Ob ...
- 【Android - 框架】之Retrofit+RxJava的使用
前几天分别对Retrofit和RxJava进行了总结,这个帖子打算把Retrofit结合RxJava使用的方法总结以下.有还不了解Retrofit或RxJava的朋友可以参考下面的帖子学习~ [And ...
- IOS 与ANDROID框架及应用开发模式对照一
IOS 和ANDROID操作系统都是眼下流行的移动操作系统,被移动终端和智能设备大量採用,两者都採用了先进的软件技术进行设计,为了方便应用开发两者都採用了先进的设计模式. 两者在框架设计上都採用了什么 ...
- Kotlin的扩展函数:扩展Android框架(KAD 08)
作者:Antonio Leiva 时间:Jan 11, 2017 原文链接:https://antonioleiva.com/extension-functions-kotlin/ 扩展函数是Kotl ...
- App 组件化/模块化之路——Android 框架组件(Android Architecture Components)使用指南
面对越来越复杂的 App 需求,Google 官方发布了Android 框架组件库(Android Architecture Components ).为开发者更好的开发 App 提供了非常好的样本. ...
- 【Android 系统开发】Android框架 与 源码结构
一. Android 框架 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android运行环境层; -- 应用框架层; -- 应 ...
- IOS 与ANDROID框架及应用开发模式对比一
IOS 和ANDROID操作系统都是目前流行的移动操作系统,被移动终端和智能设备大量采用,两者都采用了先进的软件技术进行设计,为了方便应用开发两者都采用了先进的设计模式.两者在框架设计上都采用了什么技 ...
- Android 框架式编程 —— 起篇
一般的,在开发的时候,写过的代码在需求变更后,发现需要改动非常多的地方,那么说明之前的代码的架构肯定是存在问题的. 下面我们结合面向对象的六大基本原则谈Android 框架式编程.首先先介绍一下面向对 ...
- android 框架层 常用类介绍
名称 功能描述 示意图 activitymanager 管理应用程序的周期并提供常用的回退功能 window manager 窗口管理者 content provider 用于访问另一个的数据,或者共 ...
随机推荐
- exception in thread main java.lang.NoClassDefFoundError wrong name解决方法
当不含包层次的HelloWorld.java代码(此时程序运行正常) public class HelloWorld{ public static void main(String[] args) ...
- <一年成为Emacs高手>更新到20130706版
这次更新比较多,加了第三方精品插件推荐,添加了我认为不错的Emacs社区. 见 原文
- ORACLE 更改username
曾经一直常常改动oracle的用户password,但非常少改动username的. 曾经仅仅能创建一个用户1.然后将用户2数据导入到用户1.然后经用户1删掉,这样很麻烦并且耗时,今天就整理了下怎样改 ...
- nginx源代码分析--模块分类
ngx-modules Nginx 基本的模块大致能够分为四类: handler – 协同完毕client请求的处理.产生响应数据.比方模块, ngx_http_rewrite_module, ngx ...
- 分析javascript关闭
1.什么是闭包 1)官方解释 一个拥有多个变量和绑定了这些变量的环境的表达式(一般是一个函数).因而这些变量也是该表达式的一部分. 我的理解:所谓的闭包就是连接函数内部和函数外部的一座桥梁.使得在外部 ...
- ThinkPhp学习08
原文:ThinkPhp学习08 一.普通查询方式 a.字符串 $arr=$m->where("sex=0 and username='gege'")->find(); ...
- Android服务之PackageManagerService启动源码分析
了解了Android系统的启动过程的读者应该知道,Android的所有Java服务都是通过SystemServer进程启动的,并且驻留在SystemServer进程中.SystemServer进程在启 ...
- premake 在64位Ubuntu系统下编译32位GCC程序
首先,要安装GCC 4.8, 参考前文:Ubuntu 12.04 & 13.04 安装 GCC4.8.1 其中,重点是安装multilib apt-get install gcc-4.8-mu ...
- 4.windows和Linux下创建oracleusername表空间,表,插入数据,用户管理表等操作
进入超级管理员,运行下面命令 Window下创建数据库.表空间,用户,插入数据等操作 -- 01 创建表空间 -- 注意表空间的路径 依据实际安装环境进行调整 CREATE TABLESPACE ts ...
- MATLAB——scatter的简单应用
scatter可用于描绘散点图. 1.scatter(X,Y) X和Y是数据向量,以X中数据为横坐标,以Y中数据位纵坐标描绘散点图,点的形状默认使用圈. 样例: X = [1:10]; Y = X ...