Android伸手党系列之四:Android项目开发常用技术
这篇收集Android开发常用技术
谈谈MVP架构
- 浅谈 MVP in Android --推荐
- 不要再给MVP中Presenter写接口了
- T-MVP:泛型深度解耦下的MVP大瘦身
- Android框架模式(1)-MVP入门
Android日志
- Log最佳实践
OkHttp
OkHttp使用
- Android OkHttp完全解析 是时候来了解OkHttp了 --推荐
- Android Https相关完全解析 当OkHttp遇到Https --推荐
- OkHttp学习系列一:入门和简单使用
- OkHttp学习系列二:谈谈Android中使用的坑
- OkHttp3之Cookies管理及持久化
- OkHttpUtils一个专注于让网络请求更简单的框架
OkHttp3源码分析
- OkHttp3源码分析[综述]
- OkHttp3源码分析[复用连接池]
- OkHttp3源码分析[缓存策略]
- OkHttp3源码分析[DiskLruCache]
- OkHttp3源码分析[任务队列]
- OKHttp源码解析
Retrofit2
- Retrofit2 完全解析 探索与okhttp之间的关系 ---推荐
- 深入浅出 Retrofit,这么牛逼的框架你们还不来看看?
- Retrofit + RxAndroid 实践总结
- Android Retrofit 2.0 使用-补充篇
- Android上使用retrofit+okhttp时token失效的处理方案
Rxjava
Rxjava中文文档
- ReactiveX/RxJava文档中文版---推荐
基础教程
- 给 Android 开发者的 RxJava 详解 ---强烈推荐 扔物线的文章 讲解非常详细
- NotRxJava懒人专用指南 -这篇入门极力推荐,手把手,深入浅出教你实现一个简易的RxJava库,更好的理解RxJava的实现思路
Rxjava操作符
- RxJava操作符(一)Creating Observables
- RxJava操作符(二)Transforming Observables
- RxJava操作符(三)Filtering
- RxJava操作符(四)Combining
- RxJava操作符(五)Error Handling
- RxJava操作符(六)Utility
- RxJava操作符(七)Conditional and Boolean
- RxJava操作符(八)Aggregate
- RxJava操作符(九)Connectable Observable Operators
- RxJava操作符(十)自定义操作符
其它一些不错的介绍操作符的文章
- 行云流水的博客
- Android RxJava使用介绍(二) RxJava的操作符
深入浅出RxJava系列:
- 深入浅出RxJava(一:基础篇)
- 深入浅出RxJava ( 二:操作符 )
- 深入浅出RxJava ( 三--响应式的好处 )
- 深入浅出RxJava ( 四-在Android中使用响应式编程 )
Rxjava的总结
- RxJava 的周末狂欢
- 可能是东半球最全的RxJava使用场景小结
- RxJava+Retrofit实现全局过期token自动刷新Demo篇
来自 小鄧子 的几篇文章
- 【译】避免打断链式结构:使用.compose( )操作符
- 【译】使用RxJava实现延迟订阅
- 【译】使用RxJava从多个数据源获取数据
- 【译】RxJava变换操作符:.concatMap( )与.flatMap( )的比较
- 【译】对RxJava中.repeatWhen()和.retryWhen()操作符的思考
Rxjava处理服务器端异常
- 使用RxJava优雅的处理服务器返回异常
Retrofit2+Rxjava+dagger2
- RxJava 与 Retrofit 结合的最佳实践
- Rxjava+Retrofit 实现全局过期 Token 自动刷新
- 使用Retrofit和Okhttp实现网络缓存。无网读缓存,有网根据过期时间重新请求
ButterKnife
- 绝对不容错过,ButterKnife使用详谈
- 深入理解 ButterKnife,让你的程序学会写代码
- Github项目解析(六)-->自定义实现ButterKnife框架
Dagger2
- 详解Dagger2系列之开始篇:磨刀不误砍柴工
- 详解Dagger2系列之撸码篇:横看成岭侧成峰
Android:dagger2让你爱不释手-基础依赖注入框架篇
Android:dagger2让你爱不释手-重点概念讲解、融合篇
Android:dagger2让你爱不释手-终结篇
dagger 2 详解
Android常用开源工具(1)-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图片框架内部实现原理探索
- Fresco 使用要点(不定期更新)
- Fresco对Listview等快速滑动时停止加载
- fresco添加http header
- fresco自定义进度条ProgressBarImage
- 使用fresco如何获取本地缓存图片的文件
- fresco如何配合PhotoView使用实现图片缩放
- fresco 两种判断图片是否已经缓存在SD卡上的方法
- Fresco引起的在arm64位机器上找不到对应的so库
- CloseableReference: Finalized without closing
- fresco 加载本地图片失败
图片处理框架之Glide
Glide 系列预览
- 开始!
- 加载进阶
- ListAdapter(ListView, GridView)
- 占位符 和 渐现动画
- 图片重设大小 和 缩放
- 显示 Gif 和 Video
- 缓存基础
- 请求优先级
- 缩略图
- 回调:SimpleTarget 和 ViewTarget 用于自定义视图类
- 加载图片到通知栏和应用小部件中
- 异常:调试和错误处理
- 自定义转换
- 用 animate() 自定义动画
- 集成网络栈
- 用 Module 自定义 Glide
- Module 实例:接受自签名证书的 HTTPS
- Module 实例:自定义缓存
- Module 实例:用自定义尺寸优化加载的图片
- 动态使用 Model Loader
- 如何旋转图像
- 系列综述
Glide源码解析
- Android Glide源码解析
Glide图片缓存
- Android图片缓存之初识Glide(三)
- Android图片缓存之Glide进阶(四)
Glide其它文章
- Glide 展示 gif 动态图的介绍和走过的坑
- 详细解释强力的图片加载框架 Glide的配置(顺便补充下CollapsingToolbarLayout的一些功能)
GreenDao
需要说明的是GreenDao3与GreenDao的使用最大的区别是GreenDao3支持annotation配置,而使用GreenDao时则需要新建module
- 【greenDAO3】 项目搭建与增删改查操作
- Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite
- GreenDao官方文档翻译下
- GreenDaoUpgradeHelper GreenDao数据库升级
Gson
- 你真的会用Gson吗?Gson使用指南(一)
- 你真的会用Gson吗?Gson使用指南(二)
- 你真的会用Gson吗?Gson使用指南(三)
- 你真的会用Gson吗?Gson使用指南(四)
MVVM之DataBinding
- Android-MVVM架构-Data Binding的使用
- Data Binding(数据绑定)用户指南
- DBinding权威使用指南
- DataBinding最佳实践
- Android中的Data Binding初探 (一)
- Android中的Data Binding初探 (二)
- Android中的Data Binding初探 (三)
- Android Data Binding代码实战
EventBus
- Android EventBus实战 没听过你就out了
- Android EventBus源码解析 带你深入理解EventBus
- Android 框架炼成 教你如何写组件间通信框架EventBus
Android测试
- 解读Android官方MVP项目单元测试
- 单元测试利器-Mockito 中文文档
- 使用Mockito对异步方法进行单元测试
- Activity单元测试
- Android 单元测试实践
- Android测试之旅(一)
- Android测试之旅(二)
- Android产品研发(十九)-->Android studio中的单元测试
Android 地图
- Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!
图片显示框架综合
- 随意切换图片框架,Android-Universal-Image-Loader, picasso, glide随意切换
LeafPic
(Github | Play Store | Difficulty: 初级)
照片墙类的app是比较常见的。你是否有想过它们是如何开发的呢?LeafPic就是一个比较好的开源照片墙类的APP。这个项目较简单,容易上手,比较适合初级选手。值得一提的是它包含了切换主题这一功能。
- 1
- 2
- 3
- 4
Simple Calendar
(Github | Play Store | Difficulty: 初级)
这是一款用Kotlin语言编写的日历app。如果你想学Kotlin,这个开源项目绝对能帮到你。该项目还可以帮助你学习到添加桌面小工具。
- 1
- 2
Amaze File Manager
(Github | Play Store | Difficulty: 中级)
文件管理类的app也是一类比较常见的应用。做一个能适配大部分android设备的管理类app是相当难的。你可以从这个项目中学到很多,尤其是处理SD卡上的文件。但是不建议参考这个项目的编码,因为不够标准。
- 1
- 2
- 3
- 4
- 5
- 6
Easy Sound Recorder
(Github | Play Store | Difficulty: 初级)
这是一款简单的录音app。如果你想学关于录音方面,这个开源项目可以帮到你。该项目只有一个Activity,代码非常好理解,并且采用的是MD设计。
- 1
- 2
- 3
- 4
MLManager
(Github | Play Store | Difficulty: 初级)
该软件可帮助管理手机里面的apps。从这个项目中可以学到如果获取软件的详细信息,导出apk,卸载软件等功能。这个项目的编码风格很好,可以借鉴,它的简洁代码设计和MD设计都可以参考。
- 1
- 2
- 3
- 4
PhotoAffix
(Github | Play Store | Difficulty: 初级)
这款应用可以水平或者垂直合并图像。从它的代码中可以学到简单的自定义控件基础。
- 1
- 2
MovieGuide
(Github | Difficulty: 中级)
该项目采用了MVP,Clean架构进行开发。包含了RxJava和Dagger2的应用。
- 1
- 2
AnExplorer
(Github | Play Store | Difficulty: 中级)
同样是一款轻量级的文件管理器,适用于手机和平板。root管理,loaders,自定义控件等功能都可以从这个项目中学到。
- 1
- 2
- 3
- 4
Minimal ToDo
(Github | Play Store | Difficulty: 初级)
该项目比较适合初学者学习参考。
- 1
- 2
Timber
(Github | Play Store | Difficulty: 高级)
Timber是一款设计非常漂亮的音乐播放器,如果你正在开发一款属于自己的播放器,那么正好可以参考学习一下这个。这个项目距比较大,但是非常受欢迎。
- 1
- 2
- 3
- 4
AnotherMonitor
(Github | Play Store | Difficulty: 中级)
该项目可以帮助你了解到监控系统进程,内存使用,CPU使用等情况。代码风格较好,简单容易理解。但是UI设计不敢恭维。
- 1
- 2
- 3
- 4
InstaMaterial
(Github | Difficulty: 初级)
该项目学习了Instagram这款应用的材料设计,正好可以帮助你提高你的MD水平。
- 1
- 2
Cocoin
(Github | Difficulty: 初级)
Cocoin是一款个人财务记账软件。该项目可以帮助你学到操作大量用户数据,绘制漂亮的表格,自定义比较酷的控件等。
- 1
- 2
OmniNotes
(Github | Play Store | Difficulty: 中级)
这是款类似于Evernote的笔记类app。该项目由大量的功能,比如分享和收缩note,在note中可添加图片,视频,音频,sketch等附件,还可以添加提醒人。
- 1
- 2
- 3
- 4
Clip Stack
(Github | Play Store | Difficulty: 初级)
该项目是一个简洁漂亮的剪切板管理软件。
- 1
- 2
Super Clean Master
(Github | Difficulty: 高级)
这是一个模仿【清理大师】的应用。功能较多,建议仔细研究。
- 1
- 2
- 3
- 4
Traval Mate
(Github | Difficulty: 中级)
如果你正在开发一款重度依赖位置和地图旅行类的app,那么你就可以参考该项目。
- 1
- 2
KISS
(Github | Play Store | Difficulty: 初级)
一个简单,快速,轻量级的launcher应用。
- 1
- 2
Turbo Editor
(Github | Play Store | Difficulty: 中级)
这是一款非常强大的文本编辑器。通过这个app可以编写代码,并提供语法高亮的功能。
- 1
- 2
Wally
(Github | Difficulty: 中级)
这是一款壁纸应用。
- 1
- 2
Pedometer
(Github | Difficulty: 初级)
这是一款通过传感器计步类的app。
更多相关文章
- Instrumentation 框架简介
- [记录点滴]在Ionic和Android中上传Blob图片
- android 实现保存图片到相册
- android图片裁剪
- android 动画框架
- Android 中保存图片的代码
- android之将图片转化为圆形图片
- Android 使用decodeFile方法加载手机磁盘中的图片文件