Android项目框架从搭建到放弃(一)
2016-09-19 本文已影响972人
钟子明
如何来描述一个Android项目?
如果让我来描述一下的话,我认为一个好的Android项目它的外观美貌是设计模式,而它的内在灵魂则是框架。
设计模式:
目前流行的设计模式仍为:MVC,MVP,MVVM
MVC可以说是元老级别的了,不管什么语言开发都能见到它的身影。
MVP是近年来才流行开来的,目前很是火热。
MVVM个人认为不太适合,觉得Android的双向绑定还不成熟。
本人学疏才浅,推荐几篇文章让大家自行分析:
框架:
由于Android开源,这就给广大开发者带来了很大的便利。我们不用为了一个常见的功能而去码代码,因为已经有人写了更好的,所以不必去造轮子。
一个完整的Android项目需要哪些框架呢?
网络请求,屏幕适配,图片加载,Json解析,刷新加载,权限申请等。
我在使用哪些框架?
- 网络请求 okhttputils
鸿洋大神对OKHTTP封装的一个辅助类,让各种请求变得更方便。 - 屏幕适配 AndroidAutoLayout
同样来自鸿洋大神,使用了很长时间,堪称适配终结者。 - 图片加载 glide
推荐一个辅助工具类:GlideUtils
图片加载有不少优秀的开源库,例如:Android-Universal-Image-Loader,picasso,Fresco 等。 - Json解析 gson
大家都在用,就不多说了。 - 刷新加载 SwipeRefreshLayout
使用辅助框架:BaseRecyclerViewAdapterHelper
这个框架大家应该不陌生吧,来自@陈宇明,介绍文章:灵活且强大的RecyclerViewAdapter源码分析,经过个人封装一下,在项目中用作下拉刷新和上拉加载的框架。
另外用的最多的就是这个了:Android-PullToRefresh - 权限申请 RxPermissions
这是我觉得最方便的权限申请方式了,配合RxJava很好用。 - TabLayout FlycoTabLayout
可以说Tab和Fragment在APP中是必不可少的,推荐来自@范二青年_Flyco的一个Android TabLayout库,个人觉得满足各种产品需求。 - lambda表达式 retrolambda
它的好处就是懒人必备,想知道怎么使用吗,推荐来自老司机@聪明叉的是时候学习一波Lambda表达式了,个人只是在使用匿名内部类的时候用,就为了节省代码量。
附:在使用AS2.1版本及以上时,使用lambda就不需要这个插件库了。只需在gradle里配置一下即可:
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
来自: 在Android上使用官方Lambda支持 - Android N & Jack工具(兼容旧平台)
- 如有其它好用的框架欢迎评论推荐
个人认为以上框架就能满足一般的APP产品需求了,不建议一遇到个小功能都去关联一个库来用,那样只会加大APP的负担。比如引导页和轮播图,完全可以用一个ViewPager来实现,就没必要去关联那些功能多动画多的三方库,虽然很强大,但是你不觉得拿一块牛皮只用一根牛毛很浪费吗?
以上只是我个人在项目中使用的框架,使用的感觉还不错,所以做个铺垫。下篇文章来介绍我自己封装的一些基类,一直在努力优化基类,基类写的好,就能为项目节省不少代码呢。