Android TabLayout+ViewPager+Fragment
Android ListView与RecyclerView项目实战
Android事件传递流程-从ViewRootImpl到View
Context、Application和ActivityThread
AndroidManifest.xml中applicaiton属性介绍
Activity launchMode和taskaffinity
Dagger2 知识梳理(3) – 使用 dependencies 和 @SubComponent 完成依赖注入
Android 知识梳理目录 – 好吧,这是一个很”干”的标题
RxJava2 实战知识梳理(5) – 简单及进阶的轮询操作
插件化知识梳理(2) – Small 框架之如何引入公共库插件
Framework 源码解析知识梳理(1) – 应用程序与 AMS 的通信实现
RxJava2 实战知识梳理(11) – 检测网络状态并自动重试请求
View 绘制体系知识梳理(2) – setContentView 源码解析
Architecture Components 知识梳理(1) – Lifecycle 示例&原理
Material Design 控件知识梳理(9) – TextInputLayout
RecyclerView 知识梳理(2) – Adapter
RxJava2 实战知识梳理(14) – 在 token 过期时,刷新过期 token 并重新发起请求
Android 数据存储知识梳理(1) – SQLiteOpenHelper 源码解析
Java&Android 基础知识梳理(5) – 类加载&对象实例化
图片基础知识梳理(1) – ImageView 的 ScaleType 属性解析
插件化知识梳理(5) – Small 框架之如何不将插件打包到宿主中
RxJava2 实战知识梳理(8) – 使用 publish + merge 优化先加载缓存,再读取网络数据的请求过程
插件化知识梳理(4) – Small 框架之如何实现插件更新
Android 异步任务知识梳理(3) – AsyncQueryHandler 源码解析
Framework 源码解析知识梳理(3) – 应用进程之间的通信实现
Canvas&Paint 知识梳理(2) – Canvas 的保存和恢复
Material Design 控件知识梳理(5) – DrawerLayout && NavigationView
Material Design 控件知识梳理(2) – AppBarLayout & CollapsingToolbarLayout
RxJava2 实战知识梳理(6) – 基于错误类型的重试请求
Fragment 知识梳理(1) – Fragment 源码解析
Service 知识梳理(1) – Service 问题整理
Loader 知识梳理(1) – LoaderManager初探
Loader 知识梳理(2) – initLoader和restartLoader的区别
Architecture Components 知识梳理(3) – ViewModel 示例
OkHttp 知识梳理(4) – OkHttp 之缓存源码解析
RxJava2 实战知识梳理(1) – 后台执行耗时操作,实时通知 UI 更新
RxJava2 实战知识梳理(15) – 实现一个简单的 MVP + RxJava + Retrofit 应用
RxJava2 实战知识梳理(13) – 如何使得错误发生时不自动停止订阅关系
Canvas&Paint 知识梳理(1) – Canvas 基础
Dagger2 知识梳理(2) – @Qulifier 和 @Named 解决依赖注入迷失
Java&Android 基础知识梳理(10) – SparseArray 源码解析
多线程知识梳理(4) – synchronized 三部曲之等待/通知模型
Android 数据存储知识梳理(2) – Android存储目录
RecyclerView 知识梳理(4) – ItemDecoration
Canvas&Paint 知识梳理(6) – 绘制路线 Path 基本用法
性能优化工具知识梳理(3) – 调试GPU过度绘制 & GPU呈现模式分析
图片基础知识梳理(3) – Bitmap&BitmapFactory 解析
Activity 知识梳理(1) – Activity生命周期
View 绘制体系知识梳理(8) – obtainStyledAttributes 详解
组件化知识梳理(3) – Arouter 源码分析之运行时 SDK
Fragment 知识梳理(2) – Fragment 状态保存和恢复
组件化知识梳理(2) – Arouter 源码分析之 Complier SDK
动画体系知识梳理(2) – 转场动画 ContentTransition 实践篇
插件化知识梳理(6) – Small 源码分析之 Hook 原理
View 绘制体系知识梳理(3) – 绘制流程之 Measure 详解
Fragment 知识梳理(4) – FragmentPagerAdapter 和 FragmentStatePagerAdapter 解析
OkHttp 知识梳理(2) – OkHttp 源码解析之异步请求 & 线程调度
NDK 知识梳理(2) – 使用 CMake 进行 NDK 开发之如何编写 CMakeLists.txt 脚本
多线程知识梳理(6) – 线程池四部曲之 ThreadPoolExecutor
多线程知识梳理(5) – 线程池四部曲之 Executor 框架
Java&Android 基础知识梳理(9) – LruCache 源码解析
多线程知识梳理(7) – ConcurrentHashMap 实现原理
多线程知识梳理(2) – synchronized 三部曲之基本使用
性能优化工具知识梳理(4) – Hierarchy Viewer
RxJava2 实战知识梳理(4) – 结合 Retrofit 请求新闻资讯
NDK 知识梳理(1) – 使用 CMake 进行 NDK 开发之初体验
Activity 知识梳理(3) – Activity状态保存和恢复
RxJava2 实战知识梳理(9) – 使用 timer/interval/delay 实现任务调度
View 绘制体系知识梳理(4) – 绘制过程之 Layout 详解
Material Design 控件知识梳理(6) – Snackbar
Canvas&Paint 知识梳理(5) – Paint#setShader
Canvas&Paint 知识梳理(3) – 颜色合成 Paint#setColorFilter
Java&Android 基础知识梳理(7) – Android 虚拟机
Kotlin 知识梳理(4) – 数据类、类委托 及 object 关键字
Material Design 控件知识梳理(8) – TabLayout
RxJava2 实战知识梳理(2) – 计算一段时间内数据的平均值
Retrofit 知识梳理(2) – Retrofit 动态代理内部实现
Framework 源码解析知识梳理(7) – Handler 的 async 标志位
Material Design 控件知识梳理(4) – FloatingActionButton
Glide 知识梳理(6) – Glide 源码解析之流程剖析
RxJava2 实战知识梳理(12) – 实战讲解 publish & replay & share & refCount & autoConnect
View 绘制体系知识梳理(6) – 绘制过程之 requestLayout 和 invalidate 详解
View 绘制体系知识梳理(5) – 绘制过程之 Draw 详解
Broadcast 知识梳理(1) – BroadcastReceiver 基本概念
动画体系知识梳理(1) – 转场动画 ContentTransition 理论篇
Kotlin 知识梳理(5) – lambda 表达式和成员引用
Android 异步任务知识梳理(1) – AsyncTask 源码解析
Dagger2 知识梳理(1) – Dagger2 依赖注入的两种方式
Kotlin 知识梳理(10) – 高阶函数:Lambda 作为形参或返回值
View 绘制体系知识梳理(1) – LayoutInflater#inflate 源码解析
插件化知识梳理(10) – Service 插件化实现及原理
Canvas&Paint 知识梳理(4) – 图像合成 Paint#setXfermode
Java&Android 基础知识梳理(4) – 垃圾收集器与内存分配策略
Java&Android 基础知识梳理(0) – Java 基础知识大纲
Android 异步任务知识梳理(2) – HandlerThread 源码解析
RxJava 知识梳理(3) – RxJava2 基础知识小结
Java&Android 基础知识梳理(6) – 字节输入输出流
Android 数据存储知识梳理(4) – 数据库升级操作的处理策略
Fragment 知识梳理(3) – FragmentPagerAdapter 和 FragmentStatePagerAdapter 的数据更新问题
Material Design 控件知识梳理(1) – Android Design Support Library 是什么
图片压缩知识梳理(5) – VectorDrawable 简介
Android 数据存储知识梳理(3) – SharedPreference 源码解析
图片压缩知识梳理(6) – VectorDrawable 及 AnimatedVectorDrawable 使用详解
Java&Android 基础知识梳理(11) – 浅拷贝 Vs 深拷贝
Dagger2 知识梳理(4) – @Scope 注解的使用
RxJava 知识梳理(2) – RxJava2 操作符实战
Material Design 控件知识梳理(3) – BottomSheet && BottomSheetDialog && BottomSheetDialogFragment
性能优化工具知识梳理(6) – Memory Monitor & Heap Viewer & Allocation Tracker
Framework 源码解析知识梳理(4) – 从源码角度谈谈 Handler 的应用
RxJava2 实战知识梳理(7) – 基于 combineLatest 实现的输入表单验证
Material Design 控件知识梳理(7) – BottomNavigationBar
OkHttp 知识梳理(1) – OkHttp 源码解析之入门
RxJava2 实战知识梳理(10) – 屏幕旋转导致 Activity 重建时恢复任务
RecyclerView 知识梳理(3) – LayoutManager
Glide 知识梳理(5) – 自定义GlideModule
多线程知识梳理(3) – synchronized 三部曲之锁优化
Architecture Components 知识梳理(2) – LiveData 示例
Framework 源码解析知识梳理(2) – 应用进程与 WMS 的通信实现
View 绘制体系知识梳理(7) – getMeasuredWidth 和 getWidth 的区别
RecyclerView 知识梳理(5) – ItemTouchHelper
组件化知识梳理(4) – IOC & AOP 思想在 Arouter 中的应用
插件化知识梳理(1) – Small 框架之如何引入应用插件
RxImagePicker:从零实现灵活且可高度定制的Android图片选择架构
【Android】快速开发偷懒必备(二) 支持DataBinding啦~爽炸,一行实现花式列表
开发工具总结(8)之图文并茂全面总结上百个AS好用的插件(下)
Android 拍照获取缩略图以及完整图片(适配androidN)
[译]使用MVI打造响应式APP(一):Model到底是什么
躺着过坑—断电导致AVD和SDK Manager无法正常启动
Android 自定义View学习(十四)——View滑动学习
手把手教你从零开始做一个好看的 APP – Day four
Android——RecyclerView入门学习之DiffUtil(四)
Android 带你撸一个好玩的 DoodleView(涂鸦)
十分钟了解Android触摸事件原理(InputManagerService)
Android Camera 系列(三)Camera API 详解
为你的Android Studio打造帅气的LogCat配色
Android 自定义View学习(十三)——View触控事件学习
不要打破链式调用!一个极低成本的RxJava全局Error处理方案
Flutter基础篇(7)– Flutter更新错误全面解决方案(图文+视频讲解)
Android官方架构组件DataBinding双向绑定篇: 观察者模式的殊途同归
[译]Android开发从Dagger2迁移至Kodein的感受
Material Design学习:DrawerLayout+NavigationView
Android窗口管理分析(1):View如何绘制到屏幕上的主观理解
Android动手实现一个侧滑删除控件,支持Recyclerview
手把手教你从零开始做一个好看的 APP – Day five
Android——RecyclerView入门学习之ItemDecoration(一)
Android硬件加速(二)-RenderThread与OpenGL GPU渲染
Flutter进阶篇(5)– 使用Flutter创建插件详解并发布到Pub库
仿淘宝、京东拖拽商品详情(可嵌套ViewPager、ListView、WebView、FragmentTabhost)
Android官方架构组件Paging-Ex:为分页列表添加Header和Footer
[译]Java将Powermock和Mockito搭配进行单元测试
Android Bitmap变迁与原理解析(4.x-8.x)
Material Design学习:CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout
告别Dagger2模板代码:DaggerAndroid原理解析
教你打造Android揭面水波动画库-AnimationHelper
Android——CoordinatorLayout之Behavior入门学习(下)
Android 一起来看看 HttpURLConnection 和 HttpClient 的区别
Android自定义View:MeasureSpec的真正意义与View大小控制
Android中gradle的implementation和api指令的区别
Android面试:主线程中的Looper.loop()一直无限循环为什么不会造成ANR?
Material Design学习:ToolBar 开发使用简介
Android 撸起袖子,自己封装 DialogFragment
一行Java代码实现RecyclerView的Adapter?一行都不需要!
Android 神兵利器Dagger2使用详解(三)MVP架构下的使用
Android 自定义View学习(二)——开始了解Canvas和Paint
Flutter进阶篇(4)– Flutter的Future异步详解
开发工具总结(5)之Markdown语法图文全面详解及其工具介绍
动态图解&实例 ConstraintLayout Chain
Android 一起来看看 7.0 的新特性 FileProvider
Android 实习 | 如何在春招中拿到满意的 offer
OkHttp基础学习(四),无网络读取本地缓存,有错误,待改正
10分钟学会ikvStockChart制作K线图(股票走势图)
Android —— 微信Sqlite数据库框架WCDB学习
WebView深度学习(一)之WebView的基本使用以及Android和js的交互
【Android】你可能不知道的Support(一) 0步自动定向刷新SortedList
【Android】ListView、RecyclerView、ScrollView里嵌套ListView 相对优雅的解决方案:NestFullListView