Android开发需要提高自己的技术水平,造轮子搭框架是比较好的方法。
关于Architecture,其他语言中有很多比较著名的框架。
PHP中有thinkPHP 或者Laravel;
Java中有Spring IOC、Spring MVC\Struts2、Mybatis\Hibernate;
.net中有microsoft enterprise library.
在安卓中,可以通过下面一句话理解:
"Architecture is About Intent, not Frameworks."
Android开发并没有什么通用框架,应用框架完全是从业务中提取出来的,框架提供的只是一个思维。
开发中需要熟悉哪些场合需要使用什么框架,同时,在开发中肯定会用比如RxJava EventBus Glide等优秀的库。
我们自己造轮子可以有很多选择:
图片加载\缓存的库
需要有效的避免OOM
推送
手机端NDK保持一个socket并且发送心跳
ViewInject
类似butterknife一样的东西
-----------------------------------------------------分割线-----------------------------------------------------
###可以参考学习的开源框架
####网络
* [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
#####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开发的干货。