这篇收集Android开发常用技术,资源整合。
谈谈MVP架构
Android日志
OkHttp
-
OkHttp使用
-
OkHttp3源码分析
Retrofit2
- Retrofit2 完全解析 探索与okhttp之间的关系 ---推荐
- 深入浅出 Retrofit,这么牛逼的框架你们还不来看看?
- Retrofit + RxAndroid 实践总结
- Android Retrofit 2.0 使用-补充篇
- Android上使用retrofit+okhttp时token失效的处理方案
Rxjava
-
Rxjava中文文档
-
基础教程
- 给 Android 开发者的 RxJava 详解 ---强烈推荐 扔物线的文章 讲解非常详细
- NotRxJava懒人专用指南 -这篇入门极力推荐,手把手,深入浅出教你实现一个简易的RxJava库,更好的理解RxJava的实现思路
-
Rxjava操作符
-
其它一些不错的介绍操作符的文章
-
深入浅出RxJava系列:
-
Rxjava的总结
-
来自 小鄧子 的几篇文章
-
Rxjava处理服务器端异常
Retrofit2+Rxjava+dagger2
- RxJava 与 Retrofit 结合的最佳实践
- Rxjava+Retrofit 实现全局过期 Token 自动刷新
- 使用Retrofit和Okhttp实现网络缓存。无网读缓存,有网根据过期时间重新请求
ButterKnife
Dagger2
图片处理框架之Fresco
- Fresco中文文档 ---推荐
- Fresco正传(1):总览
- Fresco正传(2):DraweeView分析
- Fresco前传(3):之为什么图片不显示(坑爹的wrap_content)
- Fresco前传(2):源码分析 DraweeHierarchy/DraweeView/DraweeController
- Fresco前传(1):一句话搞定图片显示(同时还可以满足各种小需求哦)
- Fresco正传(4):DraweeController分析
- Fresco正传(5):请求产生和发出请求
- Fresco正传(6):如何将PhotoView与Fresco的加载机制相结合,解决超大图显示
- Android图片加载神器之Fresco-加载图片基础[详细图解Fresco的使用]
- Android图片加载神器之Fresco-圆形圆角二合一教程[Java代码实现圆形圆角效果]
- Android图片加载神器之Fresco-更灵活的设置加载特效[Java代码实现XML效果]
- fresco添加http header
- fresco自定义进度条ProgressBarImage
- 使用fresco如何获取本地缓存图片的文件
- fresco如何配合PhotoView使用实现图片缩放
- fresco 两种判断图片是否已经缓存在SD卡上的方法
- Fresco引起的在arm64位机器上找不到对应的so库
- CloseableReference: Finalized without closing
- fresco 加载本地图片失败
图片处理框架之Glide
-
Glide 系列预览
-
Glide源码解析
-
Glide图片缓存
GreenDao
需要说明的是GreenDao3与GreenDao的使用最大的区别是GreenDao3支持annotation配置,而使用GreenDao时则需要新建module
- 【greenDAO3】 项目搭建与增删改查操作
- Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite
- GreenDao官方文档翻译下
- GreenDaoUpgradeHelper GreenDao数据库升级
Gson
MVVM之DataBinding
- Android中的Data Binding初探 (一)
- Android中的Data Binding初探 (二)
- Android中的Data Binding初探 (三)
- Android Data Binding代码实战
EventBus
Android测试
- 解读Android官方MVP项目单元测试
- 单元测试利器-Mockito 中文文档
- 使用Mockito对异步方法进行单元测试
- Activity单元测试
- Android 单元测试实践
- Android测试之旅(一)
- Android测试之旅(二)
- Android产品研发(十九)-->Android studio中的单元测试
Android 地图
图片显示框架综合
LeafPic
(Github | Play Store | Difficulty: 初级)
照片墙类的app是比较常见的。你是否有想过它们是如何开发的呢?LeafPic就是一个比较好的开源照片墙类的APP。
这个项目较简单,容易上手,比较适合初级选手。值得一提的是它包含了切换主题这一功能。
Simple Calendar
(Github | Play Store | Difficulty: 初级)
这是一款用Kotlin语言编写的日历app。如果你想学Kotlin,这个开源项目绝对能帮到你。该项目还可以帮助你学习到添加桌面小工具。
Amaze File Manager
(Github | Play Store | Difficulty: 中级)
文件管理类的app也是一类比较常见的应用。
做一个能适配大部分android设备的管理类app是相当难的。你可以从这个项目中学到很多,尤其是处理SD卡上的文件。
但是不建议参考这个项目的编码,因为不够标准。
Easy Sound Recorder
(Github | Play Store | Difficulty: 初级)
这是一款简单的录音app。如果你想学关于录音方面,这个开源项目可以帮到你。
该项目只有一个Activity,代码非常好理解,并且采用的是MD设计。
MLManager
(Github | Play Store | Difficulty: 初级)
该软件可帮助管理手机里面的apps。从这个项目中可以学到如果获取软件的详细信息,导出apk,卸载软件等功能。
这个项目的编码风格很好,可以借鉴,它的简洁代码设计和MD设计都可以参考。
PhotoAffix
(Github | Play Store | Difficulty: 初级)
这款应用可以水平或者垂直合并图像。从它的代码中可以学到简单的自定义控件基础。
MovieGuide
(Github | Difficulty: 中级)
该项目采用了MVP,Clean架构进行开发。包含了RxJava和Dagger2的应用。
AnExplorer
(Github | Play Store | Difficulty: 中级)
同样是一款轻量级的文件管理器,适用于手机和平板。
root管理,loaders,自定义控件等功能都可以从这个项目中学到。
Minimal ToDo
(Github | Play Store | Difficulty: 初级)
该项目比较适合初学者学习参考。
Timber
(Github | Play Store | Difficulty: 高级)
Timber是一款设计非常漂亮的音乐播放器,如果你正在开发一款属于自己的播放器,那么正好可以参考学习一下这个。
这个项目距比较大,但是非常受欢迎。
AnotherMonitor
(Github | Play Store | Difficulty: 中级)
该项目可以帮助你了解到监控系统进程,内存使用,CPU使用等情况。
代码风格较好,简单容易理解。但是UI设计不敢恭维。
InstaMaterial
(Github | Difficulty: 初级)
该项目学习了Instagram这款应用的材料设计,正好可以帮助你提高你的MD水平。
Cocoin
(Github | Difficulty: 初级)
Cocoin是一款个人财务记账软件。该项目可以帮助你学到操作大量用户数据,绘制漂亮的表格,自定义比较酷的控件等。
OmniNotes
(Github | Play Store | Difficulty: 中级)
这是款类似于Evernote的笔记类app。
该项目由大量的功能,比如分享和收缩note,在note中可添加图片,视频,音频,sketch等附件,还可以添加提醒人。
Clip Stack
(Github | Play Store | Difficulty: 初级)
该项目是一个简洁漂亮的剪切板管理软件。
Super Clean Master
(Github | Difficulty: 高级)
这是一个模仿【清理大师】的应用。
功能较多,建议仔细研究。
Traval Mate
(Github | Difficulty: 中级)
如果你正在开发一款重度依赖位置和地图旅行类的app,那么你就可以参考该项目。
KISS
(Github | Play Store | Difficulty: 初级)
一个简单,快速,轻量级的launcher应用。
Turbo Editor
(Github | Play Store | Difficulty: 中级)
这是一款非常强大的文本编辑器。通过这个app可以编写代码,并提供语法高亮的功能。
Wally
(Github | Difficulty: 中级)
这是一款壁纸应用。
Pedometer
(Github | Difficulty: 初级)
这是一款通过传感器计步类的app。