Android 开发一般都使用什么框架?

除游戏之外,一般 Android 开发大家都使用什么框架? 比如 PHP 用 thinkPHP 或者 Laravel;Java 用 Spring IOC、Spring MVC / Struts2、Mybatis / Hibernate;.net 方面一般用 Microsoft Enterprise Library……上面这样的技术选型基本都是标配了。
关注者
3484
被浏览
54585

49 个回答

### 开源框架推荐
#### 网络
* [okhttp](square/okhttp · GitHub)
* [android-async-http](loopj/android-async-http · GitHub)

#### 事件总线
* [otto](square/otto · GitHub)
* [EventBus](greenrobot/EventBus · GitHub)

#### 依赖注入
* [Dagger](square/dagger · GitHub)
* [RoboGuice](roboguice/roboguice · GitHub)
* [ButterKnife](JakeWharton/butterknife · GitHub)

#### 图片
* [Fresco](facebook/fresco · GitHub)
* [Glide](bumptech/glide · GitHub)
* [picasso](square/picasso · GitHub)

#### 数据库
* [greenDao](greenrobot/greenDAO · GitHub)
* [ormlite](j256/ormlite-android · GitHub)
* [LitePal](LitePalFramework/LitePal · GitHub)

#### 响应式编程
* [RxJava](ReactiveX/RxJava · GitHub)
* [RxAndroid](ReactiveX/RxAndroid: RxJava bindings for An...)

#### 日志输出
* [logger](orhanobut/logger: Simple, pretty and powerf...)
* [android-CLog](liaohuqiu/android-CLog)
* [KLog](ZhaoKaiQiang/KLog · GitHub)
* [LogUtils](pengwei1024/LogUtils · GitHub)

#### 崩溃统计平台
* [腾讯bugly](腾讯Bugly - Android Crash(崩溃)_iOS Crash(崩溃)_ANR_卡顿)
* [Crittercism](Crittercism - Developer Home)
* [Crashlytics](The most powerful, yet lightest weight crash reporting solution for iOS and Android developers.)

### 架构设计
这个肯定得了解下MVC,MVP,MVVM还有设计模式这些,这里有几个开源项目推荐下

##### philm
Movie collection and information app for Android.
Github地址:chrisbanes/philm: Movie collection and info...

##### SimpleNews
基于Material Design和MVP的新闻客户端
Github地址:GitHub - liuling07/SimpleNews: 基于Material Design和MVP的新闻客户端

##### GankDaily
A application show technical information every working days, use MVP pattern.
Github地址:maoruibin/GankDaily

#####SimplifyReader
Github地址:GitHub - SkillCollege/SimplifyReader: 一款基于Google Material Design设计开发的Android客户端,包括新闻简读,图片浏览,视频爽看 ,音乐轻听以及二维码扫描五个子模块。项目采取的是MVP架构开发,由于还是摸索阶段,可能不是很规范。但基本上应该是这么个套路,至少我个人认为是这样的~恩,就是这样的!

##### NBAPlus
Github地址:SilenceDut/NBAPlus · GitHub

##### PhotoNoter
Github地址:yydcdut/PhotoNoter

##### Meizhi
Github地址:drakeet/Meizhi: gank.io unofficial client, RxJava & Retrofit

### 其他
##### leakcanary
检查内存泄露
Github地址:GitHub - square/leakcanary: A memory leak detection library for Android and Java.

#####DebugDrawer
Android Debug Drawer for faster development
Github地址:palaima/DebugDrawer · GitHub

##### ViewServer
Local server for Android's HierarchyViewer
Github地址:romainguy/ViewServer · GitHub

##### AndroidWiFiADB
IntelliJ/AndroidStudio plugin which provides a button to connect your Android device over WiFi to install, run and debug your applications without a USB connected.
Github地址:https://github.com/pedrovgs/AndroidWiFiADB

####PS:开源框架虽然好用,但最好要了解框架存在的一些bug和坑,遇到问题可以给作者提issue,一般这些有名的框架,作者都会很积极的回答。推荐下自己的[Android-Dev-Favorites](GitHub - ruijun/Android-Dev-Favorites: The repository is Android development favorites, It used to collect the knowledge of Android Development.),里面收集了Android开发的干货,希望能帮到题主。

推荐 star 一下 Github 上的 Awesome 系列之 Android 轮子大全 JStumpp/awesome-android · GitHub

版本兼容:官方 support 全家桶
网络请求:Retrofit、OkHttp、Volley、AsyncHttp
事件总线:Otto、EventBus
依赖注入:Dagger2
图片加载:Fresco、Glide
响应式:RxAndroid(RxJava)
Java8:Retrolambda、Lightweight-Stream-API
控件注入和事件绑定:Butterknife(配合 ButterKnife Zelezny 有奇效)
快速开发合集:Afinal、xUtils、Android Annotations

另推荐关注……
公司:Google · GitHub(废话),Square · GitHubFacebook · GitHubNetflix, Inc. · GitHub
人:JakeWharton (Jake Wharton) · GitHub (废话)

对于什么是框架评论和其他答案有一些争论,我自己也比较迷糊。百度百科和互动百科里有这么一段话:
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
按照后者的标准,Android 上应该没什么框架了,它本身提供的应用开发环境就算是一个框架;而从前者角度上讲,上述类库也算是广义的框架吧。