API层: 1
图片框架 2
数据库层: 2
Log层: 2
开发插件 2
UI层: 3
Retrofit
Square公司良心出品。
目前最为流行框架之一。
基于接口、反射实现api定义,并且动态代理。
插件可配置:
网络请求客户端可以配置,2.0之后默认使用Okhttp。
反序列化插件配置,几乎可以配置绝大部分主流的序列化和反序列化工具。
….详见github上文档说明。
Okhttp
Square公司良心出品。
Android 2.3之前采用Httpclient实现,2.3及以后用URLconnection实现,并且在Android6.0中已经删除了httpclient的相关方法。
Android在某次会议上推荐使用Okhttp。
相比Volley,Okhttp可以实现文件下载。
在Retrofit2.0之后,默认配置的网络客户端为Okhttp。
专门配套有Okio,用于输入输出流这一块。
RxJava(RxAndroid)
Square公司良心出品。
其优点,不能言语,但能感受到其功能强大,并且也变得越来越流行,并不仅仅用于Android上。
Gson
Google自家产品。
可配置在Retrofit中,使用的开发者较多,因此利于后续的问题排查。
也可尝试配置LoganSquare,此工具速度目前最快,但也最不了解。
Glide
Google于2014年在泰国的开发者峰会上推荐了此组件。
其优点相比universal imageloader来讲,也是显而易见的。
与Picasso的详细对比可见下文:
http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en
其中包含了一些需要注意的点,比如图片bitmap.config的设置,Glide缓存图片的设置等,否则可能造成Glide缓存同个图片不同大小的副本。
Glide并且能够加载gif,而Picasso不能。
Glide与Acitivity/Fragment生命周期联动。
Glide可以配置动画,而Picasso只有一个淡入动画。
体积大小对比:Picasso 118kb(480 methods),Glide 430kb(2678 methods)
DBFlow
DBFlow,效率仅次于GreenDao(纯原生数据库实现方式,并实现了缓存机制),但实用性(DBFlow在开发上采用了注解)比GreenDao更简单。
Github地址:https://github.com/agrosner/DBFlow
https://github.com/Raizlabs/DBFlow
与GreenDao在效率上的对比:在简单操作上,GreenDao表现的更好,但是在复杂操作上,DBFlow表现的更好,总体来讲,DBFlow从效率和使用上是值得选择的。
GitHub地址
https://github.com/Raizlabs/AndroidDatabaseLibraryComparison
Logger
更为直观的本地日志查看第三方工具。
github地址:https://github.com/orhanobut/logger
Lambda:
JDK8中已可使用Lambda。
在Android中使用retrolambda插件使用lambda表达式。
GitHub地址:https://github.com/evant/gradle-retrolambda
GsonFormat
根据Gson字符串生成相应POJO对象。
….
ButterKnife
UI等注解工具,解放UI的findViewById和setOnClicktListener
GitHub地址:https://github.com/JakeWharton/butterknife
这个开源库可以让我们从大量的findViewById()和setonclicktListener()解放出来,其对性能的影响微乎其微(查看过Butter Knife的源码,其自定义注解的实现都是限定为RetentionPolicy.CLASS,也就是到编译出.class文件为止有效,在运行时不额外消耗性能,其是通过java注解自动生成java代码的形式来完成工作),其也有一个明显的缺点,那就是代码的可读性差一些,但了解了之后,上手也很快,如果不熟悉,可以考虑对一些静态化界面(变动不多的)采用。
犹豫方案1:
MVP
犹豫方案2
MVVM(databing)
黄仁黔新增的方案
1.支持各种屏幕尺寸使用wrap_content、match_parent、weight
2.使用相对布局,禁用绝对布局
3.使用尺寸限定符,res/layout/main.xml,单面板(默认)布局,res/layout-large/main.xml,双面板布局(7寸分界)
4.使用最小宽度限定符,res/layout/main.xml,单面板(默认)布局,res/layout-sw600dp/main.xml,双面板布局
5.使用自动拉伸位图, .9.png
6.使用非密度制约像素,使用 dp(而非 px)指定两个视图间的间距,使用 sp 指定文字大小
7.提供备用位图
相同类型的布局文件
compile 'cat.ereza:customactivityoncrash:1.4.0'// 异常捕捉页面
CustomErrorActivity
下载地址:点击打开链接