1.AndroidUtilCode (github.com/Blankj/Andr…)
一个强大易用的安卓工具类库,它合理地封装了安卓开发中常用的函数,具有完善的 Demo 和单元测试,利用其封装好的 APIs 可以大大提高开发效率,如今它主要包括两部分模块,其一是主工具类模块:utilcode,其中的工具类是开发中常用到的;其二是子工具类模块:subutil,它包含的工具类并不是很常用,它的出现是为了防止主工具类的臃肿。
代码路径:AndroidUtilCode/lib/utilcode/src/main/java/com/blankj/utilcode/util
2.MVP框架
GitHub上有介绍MVP框架的,但是传统MVP类和接口太多,我给一个自己用过的:
直接在gradle中添加依赖compile 'com.jude:beam:3.0.1'
介绍文章:www.jianshu.com/p/ed2aa9546…
3.网络请求
比较一下Okhttp和Retrofit、Volley的优缺点——
Okhttp
优点:支持http请求,https请求、支持同步异步。 支持文件下载、加载图片、基于Http的文件上传。 使用的是HttpURLConnection,不要担心android版本的变换。使用GZIP压缩下载内容,且压缩操作对用户是透明的。
缺点:callback回来是在线程里面, 不能刷新UI,需要我们手动处理。 封装比较麻烦。
英文不好的同学可以看看这篇文章www.jianshu.com/p/5bc65d66a…
Retrofit
优点:可以配置不同HTTP client来实现网络请求,如okhttp、httpclient等请求的方法参数注解都可以定制 支持同步、异步和RxJava 超级解耦、rest风格,更安全和高效 可以配置不同的反序列化工具来解析数据,如json、xml等 使用非常方便灵活 框架使用了很多设计模式。
缺点:不能接触序列化实体和响应数据 执行的机制太严格 使用转换器比较低效 只能支持简单自定义参数类型
Volley
优点:内部提供4个网络请求线程及1个缓存调度线程辅助请求,效率高,遵循HTTP标准协议处理缓存相关策略,请求有优先级概念,支持不同类型请求的自定义扩展,支持取消已发出的请求,提供接口给用户自己实现网络请求层
缺点:对大文件下载 Volley的表现非常糟糕。 只支持http请求。
总结:Retrofit 默认是基于 OkHttp 而做的封装,所以这两者没有可比性,肯定首选 Retrofit,但是OKHTTP的知名度高,公司用的比较多,所以了解一下是有必要的。至于Volley,不用下载大文件的软件可以使用,封装的比这两个都好
4.图片加载框架
Picasso
github.com/square/pica…
Fresco
github.com/facebook/fr…
Glide
github.com/bumptech/gl…
总结:Glide能做到Picasso所能做到的一切,Picasso 比 Glide 体积小很多且图像质量比 Glide 高,但Glide 的速度比 Picasso 更快,Glide 的长处是处理大型的图片流,如 gif、video,如果要制作视频类应用,Glide 当为首选。Fresco 可以说是综合了之前图片加载库的优点,但它的包很大,用法比较复杂,API不够简洁。 Fresco 在图片较多的应用中更能凸显其价值,如果应用没有太多图片需求,还是不推荐使用 Fresco,Glide基本就能满足你的需求
5.数据库
Ormlite
github.com/j256/ormlit…
这个好像不再更新了,也没用过,中文文档不好找。使用时把jar包复制到as的libs文件夹下,并且引用jar包即可
LitePal
github.com/LitePalFram…
郭大神开源的数据库框架,他的博客也比较详细的介绍了其用法:blog.csdn.net/sinyu890807…
手机需要root再研究,慢慢啃吧
greenDAO
github.com/greenrobot/…
优点包括以下几点:1.存取速度快; 2.支持数据库加密; 3.轻量级; 4.激活实体; 5.支持缓存; 6.代码自动生成。
集成方法:添加依赖 compile ‘org.greenrobot:greendao:3.2.0’
这个效率很高,插入和更新的速度是sqlite的2倍,加载实体的速度是ormlite的4.5倍,目前git上一直在做更新维护,start数量9000多。
6.异步分发
EventBus
github.com/greenrobot/…
介绍:传统的事件传递方式包括:Handler、BroadcastReceiver、Interface回调,相比之下EventBus的有点是代码简洁,使用简单,并将事件发布和订阅充分解耦。EventBus是发布、订阅的轻量级事件总线框架,基于观察者模式的实现的线程通信框架。弄懂什么是观察者模式,就打开了新世界的大门,观察者模式介绍:juejin.cn/post/684490…
Rxjava
github.com/ReactiveX/R…
7.推送消息框架
友盟推送
developer.umeng.com/docs/67966/…
简单易用,5分钟就能做出一个demo,上面是官方安卓集成文档,支持华为、小米、OPPO、vivo等大部分手机厂商
8.其他常用框架
Butterknife
github.com/JakeWharton…
介绍:使用简单,基本没有性能损失,免去findViewById的繁琐操作,配合插件Android ButterKnife Zelezny食用。如果你用的是kotlin开发,这个就不需要了。
几行代码集成二维码扫描
介绍:支持对图片Bitmap的扫描功能,支持对UI的定制化操作,支持对条形码的扫描功能,支持生成二维码操作,支持控制闪光灯开关,非常简单
日志打印库Logger
github.com/orhanobut/l…
集成:implementation 'com.orhanobut:logger:2.2.0'
介绍:先初始化Logger.addLogAdapter(new AndroidLogAdapter());
然后使用
Logger.d("debug");
Logger.e("error");
Logger.w("warning");
Logger.v("verbose");
Logger.i("information");
Logger.wtf("What a Terrible Failure");
支持xml、json打印
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);
LIST、SET、MAP也可以直接打印Logger.d(MAP);
组件化开发ARouter
github.com/alibaba/ARo…
介绍:阿里做的组件化开发框架,适合大项目,Activity之间用标准URL跳转
BannerViewPager
最好用的Banner。简单、高效,无缝衔接Kotlin。一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
未完待续——