- Android 自定义View的各种姿势1
- Activity的显示之ViewRootImpl详解
- Activity的显示之ViewRootImpl初探
- Activity的显示之Window和View
- Android系统的创世之初以及Activity的生命周期
- 图解Android事件分发机制(深入底层源码)
- Android 自定义View的各种姿势2
- Android 内存泄漏分析与解决
- Android消息机制
- Android Binder(也许是最容易理解的)
- Android 彻底掌握Binder
- Android序列化
- Android Fragment详解
- Android Fragment最佳实践
- Android TabLayout+ViewPager+Fragment
- Android ListView
- Android RecyclerView
- Android ListView与RecyclerView项目实战
- Android 动画
- Android 动画(续)
- Android HTTP
- 首个hybird商业项目踩坑总结
- Android并发编程 开篇
- Android并发编程 多线程与锁
- Android并发编程 原子类与并发容器
- SystemServer启动过程(framework)
- ListView复用View原理分析
- Android创建绑定服务的3种方法
- 管理应用内存
- DecorView显示过程
- Activity setContentView过程分析
- VelocityTracker用法
- Android中View的测量measure过程
- Android WatchDog原理分析
- Android事件传递流程-从ViewRootImpl到View
- ViewManager接口分析
- Android平台开源log工具-Logger
- Android进程优先级和oom_adj
- 使用gradle减少apk大小
- Zyote启动之framework
- 常见的apk签名方式
- Volley源码分析
- SystemServer启动过程(native)
- Context、Application和ActivityThread
- AndroidManifest.xml中applicaiton属性介绍
- Android播放器音乐信息乱码及其解决方法
- Zygote启动之native
- 管理 Activity 生命周期
- Android中ViewGroup的布局layout过程
- GestureDetector用法
- LeakCanary和常见内存泄漏场景
- apk反编译与二次打包
- Android性能分析工具Systrace
- Android常见技巧
- Activity launchMode和taskaffinity
- Kotlin 知识梳理(13) – 运行时的泛型
- Dagger2 知识梳理(3) – 使用 dependencies 和 @SubComponent 完成依赖注入
- Android 知识梳理目录 – 好吧,这是一个很”干”的标题
- 面试算法知识梳理(11) – 二叉树算法第一部分
- Glide 知识梳理(4) – 自定义animate
- RxJava2 实战知识梳理(5) – 简单及进阶的轮询操作
- 性能优化工具知识梳理(5) – MAT
- Kotlin 知识梳理(1) – Kotlin 基础
- 插件化知识梳理(2) – Small 框架之如何引入公共库插件
- 面试算法知识梳理(7) – 数组第四部分
- 图片压缩知识梳理(8) – WebP 使用详解
- Activity 知识梳理(2) – Activity 栈
- Framework 源码解析知识梳理(1) – 应用程序与 AMS 的通信实现
- RxJava2 实战知识梳理(11) – 检测网络状态并自动重试请求
- 插件化知识梳理(7) – 类的动态加载入门
- 性能优化技巧知识梳理(1) – 布局优化
- View 绘制体系知识梳理(2) – setContentView 源码解析
- Architecture Components 知识梳理(1) – Lifecycle 示例&原理
- Material Design 控件知识梳理(9) – TextInputLayout
- 设计模式知识梳理(5) – 结构型 – 外观模式
- RecyclerView 知识梳理(2) – Adapter
- 零散知识点总结(3) – Android 状态栏知识点总结
- 性能优化技巧知识梳理(3) – 如何排查列表卡顿问题
- RxJava2 实战知识梳理(14) – 在 token 过期时,刷新过期 token 并重新发起请求
- 多线程知识梳理(9) – ThreadLocal
- 面试算法知识梳理(8) – 二分查找算法及其变型
- Android 数据存储知识梳理(1) – SQLiteOpenHelper 源码解析
- Java&Android 基础知识梳理(5) – 类加载&对象实例化
- Loader 知识梳理(3) – 自定义Loader
- 图片基础知识梳理(1) – ImageView 的 ScaleType 属性解析
- 插件化知识梳理(5) – Small 框架之如何不将插件打包到宿主中
- RxJava2 实战知识梳理(8) – 使用 publish + merge 优化先加载缓存,再读取网络数据的请求过程
- 插件化知识梳理(4) – Small 框架之如何实现插件更新
- Android 异步任务知识梳理(3) – AsyncQueryHandler 源码解析
- Framework 源码解析知识梳理(3) – 应用进程之间的通信实现
- Canvas&Paint 知识梳理(2) – Canvas 的保存和恢复
- 面试算法知识梳理(9) – 链表算法第一部分
- Material Design 控件知识梳理(5) – DrawerLayout && NavigationView
- Material Design 控件知识梳理(2) – AppBarLayout & CollapsingToolbarLayout
- Kotlin 知识梳理(12) – 泛型类型参数
- 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 基础
- Kotlin 知识梳理(3) – 类、对象和接口
- 零散知识点总结(2) – Ubuntu下切换JDK版本
- Java&Android 基础知识梳理(3) – 内存区域
- Dagger2 知识梳理(2) – @Qulifier 和 @Named 解决依赖注入迷失
- Java&Android 基础知识梳理(10) – SparseArray 源码解析
- 多线程知识梳理(4) – synchronized 三部曲之等待/通知模型
- Java&Android 基础知识梳理(13) – 反射
- Android 数据存储知识梳理(2) – Android存储目录
- RecyclerView 知识梳理(4) – ItemDecoration
- Canvas&Paint 知识梳理(6) – 绘制路线 Path 基本用法
- 性能优化工具知识梳理(3) – 调试GPU过度绘制 & GPU呈现模式分析
- 图片基础知识梳理(3) – Bitmap&BitmapFactory 解析
- Activity 知识梳理(1) – Activity生命周期
- Kotlin 知识梳理(11) – 内联函数
- Java&Android 基础知识梳理(8) – 容器类
- View 绘制体系知识梳理(8) – obtainStyledAttributes 详解
- 组件化知识梳理(3) – Arouter 源码分析之运行时 SDK
- Fragment 知识梳理(2) – Fragment 状态保存和恢复
- 组件化知识梳理(2) – Arouter 源码分析之 Complier SDK
- 我是如何准备 Android 技术面试的~
- Kotlin 知识梳理(6) – Kotlin 的可空性
- Glide 知识梳理(1) – 基本用法
- 动画体系知识梳理(2) – 转场动画 ContentTransition 实践篇
- Android 知识梳理目录 – To do
- 面试算法知识梳理(6) – 数组第三部分
- View 事件传递体系知识梳理(1) – 事件分发机制
- 图片压缩知识梳理(9) – 选择合适的图片格式
- 面试算法知识梳理(3) – 字符串算法第二部分
- 面试算法知识梳理(2) – 字符串算法第一部分
- 插件化知识梳理(6) – Small 源码分析之 Hook 原理
- 面试算法知识梳理(4) – 数组第一部分
- 设计模式知识梳理(2) – 结构型 – 桥接模式
- RxJava 知识梳理(1) – RxJava 基本思想
- 面试算法知识梳理(1) – 排序算法
- View 绘制体系知识梳理(3) – 绘制流程之 Measure 详解
- Fragment 知识梳理(4) – FragmentPagerAdapter 和 FragmentStatePagerAdapter 解析
- OkHttp 知识梳理(2) – OkHttp 源码解析之异步请求 & 线程调度
- Kotlin 知识梳理(7) – Kotlin 的类型系统
- 插件化知识梳理(9) – 资源的动态加载示例及源码分析
- Kotlin 知识梳理(9) – 委托属性
- Android 面试文档分享
- NDK 知识梳理(2) – 使用 CMake 进行 NDK 开发之如何编写 CMakeLists.txt 脚本
- 多线程知识梳理(6) – 线程池四部曲之 ThreadPoolExecutor
- 多线程知识梳理(5) – 线程池四部曲之 Executor 框架
- Java&Android 基础知识梳理(9) – LruCache 源码解析
- 多线程知识梳理(7) – ConcurrentHashMap 实现原理
- 多线程知识梳理(2) – synchronized 三部曲之基本使用
- 性能优化工具知识梳理(4) – Hierarchy Viewer
- 架构设计知识梳理(2) – Flux
- RxJava2 实战知识梳理(3) – 优化搜索联想功能
- 设计模式知识梳理(6) – 结构型 – 享元模式
- Java&Android 基础知识梳理(12) – 泛型
- RxJava2 实战知识梳理(4) – 结合 Retrofit 请求新闻资讯
- Android 版本适配问题
- 性能优化技巧知识梳理(2) – 内存优化
- Retrofit 知识梳理(1) – 流程分析
- Volley 知识梳理 – Volley解析
- NDK 知识梳理(1) – 使用 CMake 进行 NDK 开发之初体验
- Activity 知识梳理(3) – Activity状态保存和恢复
- 多线程知识梳理(10) – 死锁的概念
- OkHttp 知识梳理(3) – OkHttp 之缓存基础
- RxJava2 实战知识梳理(9) – 使用 timer/interval/delay 实现任务调度
- View 绘制体系知识梳理(4) – 绘制过程之 Layout 详解
- 插件化知识梳理(8) – 类的动态加载源码分析
- Material Design 控件知识梳理(6) – Snackbar
- Canvas&Paint 知识梳理(5) – Paint#setShader
- Canvas&Paint 知识梳理(3) – 颜色合成 Paint#setColorFilter
- Java&Android 基础知识梳理(7) – Android 虚拟机
- Kotlin 知识梳理(4) – 数据类、类委托 及 object 关键字
- View 事件传递体系知识梳理(2) – 嵌套滑动
- Material Design 控件知识梳理(8) – TabLayout
- RxJava2 实战知识梳理(2) – 计算一段时间内数据的平均值
- Retrofit 知识梳理(2) – Retrofit 动态代理内部实现
- Framework 源码解析知识梳理(7) – Handler 的 async 标志位
- 组件化知识梳理(1) – Arouter 的基本使用
- 图片压缩知识梳理(1) – PNG 原理
- Material Design 控件知识梳理(4) – FloatingActionButton
- Glide 知识梳理(6) – Glide 源码解析之流程剖析
- RxJava2 实战知识梳理(12) – 实战讲解 publish & replay & share & refCount & autoConnect
- 图片基础知识梳理(2) – Bitmap 占用内存分析
- View 绘制体系知识梳理(6) – 绘制过程之 requestLayout 和 invalidate 详解
- 面试算法知识梳理(14) – 数字算法
- 设计模式知识梳理(7) – 结构型 – 代理模式
- View 绘制体系知识梳理(5) – 绘制过程之 Draw 详解
- 架构设计知识梳理(1) – Dagger2
- Broadcast 知识梳理(1) – BroadcastReceiver 基本概念
- 动画体系知识梳理(1) – 转场动画 ContentTransition 理论篇
- Kotlin 知识梳理(5) – lambda 表达式和成员引用
- Android 异步任务知识梳理(1) – AsyncTask 源码解析
- Dagger2 知识梳理(1) – Dagger2 依赖注入的两种方式
- 性能优化工具知识梳理(8) – Lint
- Kotlin 知识梳理(10) – 高阶函数:Lambda 作为形参或返回值
- Java&Android 基础知识梳理(2) – 序列化
- Weex 知识梳理(1) – 环境搭建
- Kotlin 知识梳理(8) – 运算符重载及其他约定
- View 绘制体系知识梳理(1) – LayoutInflater#inflate 源码解析
- 插件化知识梳理(10) – Service 插件化实现及原理
- 零散知识点总结(1) – Gradle 使用配置总结
- Canvas&Paint 知识梳理(4) – 图像合成 Paint#setXfermode
- 面试算法知识梳理(12) – 二叉树算法第二部分
- 性能优化工具知识梳理(2) – Systrace
- 图片压缩知识梳理(0) – 图片压缩学习计划
- Java&Android 基础知识梳理(4) – 垃圾收集器与内存分配策略
- Java&Android 基础知识梳理(0) – Java 基础知识大纲
- Android 异步任务知识梳理(2) – HandlerThread 源码解析
- 性能优化工具知识梳理(7) – LeakCanary
- 性能优化工具知识梳理(1) – TraceView
- 面试算法知识梳理(13) – 二叉树算法第三部分
- 多线程知识梳理(8) – volatile 关键字
- RxJava 知识梳理(3) – RxJava2 基础知识小结
- Java&Android 基础知识梳理(6) – 字节输入输出流
- Android 数据存储知识梳理(4) – 数据库升级操作的处理策略
- Fragment 知识梳理(3) – FragmentPagerAdapter 和 FragmentStatePagerAdapter 的数据更新问题
- Material Design 控件知识梳理(1) – Android Design Support Library 是什么
- 图片压缩知识梳理(5) – VectorDrawable 简介
- 图片压缩知识梳理(2) – 减小 PNG 大小
- Android 数据存储知识梳理(3) – SharedPreference 源码解析
- 图片压缩知识梳理(6) – VectorDrawable 及 AnimatedVectorDrawable 使用详解
- 设计模式知识梳理(3) – 结构型 – 组合模式
- Java&Android 基础知识梳理(11) – 浅拷贝 Vs 深拷贝
- Dagger2 知识梳理(4) – @Scope 注解的使用
- RxJava 知识梳理(2) – RxJava2 操作符实战
- Glide 知识梳理(3) – 自定义transform
- 面试算法知识梳理(10) – 二叉查找树
- 面试算法知识梳理(5) – 数组第二部分
- Material Design 控件知识梳理(3) – BottomSheet && BottomSheetDialog && BottomSheetDialogFragment
- 性能优化工具知识梳理(6) – Memory Monitor & Heap Viewer & Allocation Tracker
- 不“误”正业地弄了个人博客,欢迎访问
- Framework 源码解析知识梳理(4) – 从源码角度谈谈 Handler 的应用
- Java&Android 基础知识梳理(1) – 注解
- RxJava2 实战知识梳理(7) – 基于 combineLatest 实现的输入表单验证
- Material Design 控件知识梳理(7) – BottomNavigationBar
- Kotlin 知识梳理(2) – 函数的定义与调用
- OkHttp 知识梳理(1) – OkHttp 源码解析之入门
- RecyclerView 知识梳理(1) – 综述
- 插件化知识梳理(3) – Small 框架之宿主分身
- RxJava2 实战知识梳理(10) – 屏幕旋转导致 Activity 重建时恢复任务
- RecyclerView 知识梳理(3) – LayoutManager
- Glide 知识梳理(5) – 自定义GlideModule
- 多线程知识梳理(3) – synchronized 三部曲之锁优化
- Architecture Components 知识梳理(2) – LiveData 示例
- Glide 知识梳理(2) – 自定义Target
- Framework 源码解析知识梳理(2) – 应用进程与 WMS 的通信实现
- View 绘制体系知识梳理(7) – getMeasuredWidth 和 getWidth 的区别
- 多线程知识梳理(1) – 并发编程的艺术笔记
- 设计模式知识梳理(4) – 结构型 – 装饰模式
- RecyclerView 知识梳理(5) – ItemTouchHelper
- 组件化知识梳理(4) – IOC & AOP 思想在 Arouter 中的应用
- 插件化知识梳理(1) – Small 框架之如何引入应用插件
- 设计模式知识梳理(1) – 结构型 – 适配器模式
- 奇技淫巧之-Android监听键盘弹出与隐藏事件
- RxImagePicker:从零实现灵活且可高度定制的Android图片选择架构
- Android6.0权限适配及兼容库的实现
- MVP 笔记
- 【Android】快速开发偷懒必备(二) 支持DataBinding啦~爽炸,一行实现花式列表
- 逆向思考,优化/重构你的代码逻辑
- Android自定义ClockView实现时钟效果
- Android 实现无网络页面切换
- 完全自定义控件-自定义绚丽水波纹效果
- 开发工具总结(8)之图文并茂全面总结上百个AS好用的插件(下)
- glide 一个强大的图片加载框架
- 听说你Binder机制学的不错,来面试下这几个问题(二)
- Android——MVP——封装一个通用的Module
- Android适配全面总结(三)—-ROM适配
- Android 刘海屏适配总结
- 谷歌Flutter1.0正式版发布
- Android应用坐标系统全面详解
- 活在android之观察者模式
- Linux环境下Android开发常用命令
- Android 拍照获取缩略图以及完整图片(适配androidN)
- [译]使用MVI打造响应式APP(一):Model到底是什么
- Android实现沉浸模式的体验
- Android Handle解析
- 一个根据代码自动生成UML的插件,助你看源码事半功倍
- Groovy学习笔记4:特殊注解
- 观察者模式学习
- OkHttp基础学习(五),文件上传
- 躺着过坑—断电导致AVD和SDK Manager无法正常启动
- Android 一起来看看 ThreadLocal
- 万能的dialog库(包括类似popwindow效果)
- Android 自定义View学习(十四)——View滑动学习
- 手把手教你从零开始做一个好看的 APP – Day four
- Android——RecyclerView入门学习之DiffUtil(四)
- 一次使用Kotlin实现酷炫多选操作的尝试
- Android 带你撸一个好玩的 DoodleView(涂鸦)
- 十分钟了解Android触摸事件原理(InputManagerService)
- Android 自定义view,画图板练习
- Android 打造一个丝滑的自动轮播控件
- Android Camera 系列(三)Camera API 详解
- 设计模式(一) 工厂模式 五种写法总结
- 我的 2017
- RxJava常用操作符
- Android 自定义view相关
- 为你的Android Studio打造帅气的LogCat配色
- 编辑距离 (Levenshtein Distance算法)
- Android 自定义View学习(十三)——View触控事件学习
- Android DEPPLINK、APPLink原理简析
- 不要打破链式调用!一个极低成本的RxJava全局Error处理方案
- Flutter基础篇(7)– Flutter更新错误全面解决方案(图文+视频讲解)
- Android 读取联系人数据库
- 简单图片加载框架的打造-(了解如何设计一个图片加载框架)
- Android 解锁 Gradle 依赖新姿势
- Android官方架构组件DataBinding双向绑定篇: 观察者模式的殊途同归
- 当Android遇到单例模式
- Http基础知识学习(一)
- 面试必备:LinkedList源码解析(JDK8)
- [译]Android开发从Dagger2迁移至Kodein的感受
- SQL定义
- Material Design学习:DrawerLayout+NavigationView
- Android窗口管理分析(1):View如何绘制到屏幕上的主观理解
- Android动手实现一个侧滑删除控件,支持Recyclerview
- 使用友盟分享和登陆以及使用时要注意的坑
- 活在Android之Builder模式
- OkHttp基础学习(一),Get请求
- Linux工具命令之crontab
- DiskLruCache简介
- 完全自定义控件-简单环形进度条制作
- 手把手教你从零开始做一个好看的 APP – Day five
- Flutter基础篇(1)– 跨平台开发框架和工具集锦
- Android——RecyclerView入门学习之ItemDecoration(一)
- Android硬件加速(二)-RenderThread与OpenGL GPU渲染
- Flutter进阶篇(5)– 使用Flutter创建插件详解并发布到Pub库
- Java多边型无序点排序(地图绘制多边形)
- Gradle学习笔记(一)基本配置
- gson解析assets目录下的json文件(给新手看的)
- 仿淘宝、京东拖拽商品详情(可嵌套ViewPager、ListView、WebView、FragmentTabhost)
- Swift 与 Kotlin 的简单对比,简直是太像了
- RxJava——基础学习(六),过滤操作符
- Android官方架构组件Paging-Ex:为分页列表添加Header和Footer
- Android匿名共享内存(Ashmem)原理
- Android 开发中零散知识点记录
- 正则表达式学习(上)
- 理解RxJava(四)Subject用法及原理分析
- Android 一起来看看面试必问的消息机制
- [译]Java将Powermock和Mockito搭配进行单元测试
- Android内容服务ContentService原理浅析
- 程序猿Skr —– Flutter之歌
- Android Bitmap变迁与原理解析(4.x-8.x)
- Material Design学习:CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout
- 告别Dagger2模板代码:DaggerAndroid原理解析
- 教你打造Android揭面水波动画库-AnimationHelper
- Flutter 开发遇到问题
- Android——CoordinatorLayout之Behavior入门学习(下)
- Android状态模式的几种应用场景
- 简单几行代码让ViewPager实现垂直滑动效果
- Android 一起来看看 HttpURLConnection 和 HttpClient 的区别
- Zxing二维码扫描和那些坑
- 我的 2018
- 认识Concurrent包中的 CAS
- Android自定义View:MeasureSpec的真正意义与View大小控制
- Android中gradle的implementation和api指令的区别
- Android meta-data知识介绍及应用
- 从几行代码学习Java类加载机制-从懵逼到放弃
- Android面试:主线程中的Looper.loop()一直无限循环为什么不会造成ANR?
- 闲散整理,带你走进Android短信源码
- Android在string.xml中加粗文字
- Java 打印心形
- Android 计时的两种思路
- Android中的内存泄漏和内存溢出.md
- 全面总结侧滑菜单的5种实现方式
- JNI源码分析 (并实现JNI动态注册)
- Material Design学习:ToolBar 开发使用简介
- CalendarListView 日历列表
- Android 撸起袖子,自己封装 DialogFragment
- TitleItemDecoration
- 最全的BAT大厂面试题整理
- 一行Java代码实现RecyclerView的Adapter?一行都不需要!
- 程序员漫画系列-Linux内核里面的那些小企鹅们
- Android 动画基础知识学习(上)
- Activity生命周期函数理解
- 手把手教你从零开始做一个好看的 APP – Day one
- 设计模式(二) 三种适配器模式 总结和使用场景
- 程序员在简书|一个小城市,小公司的小程序员
- 程序员的江湖,黑话一定要牢记
- Android 神兵利器Dagger2使用详解(三)MVP架构下的使用
- 2017年你绝对想尝试的25个新安卓库(持续更新中…)
- 小知识-Android一个应用多个图标的几种实现方式
- 【游客必看】 博主所有文章目录
- Android 自定义View学习(二)——开始了解Canvas和Paint
- Java编程思想第21章并发读书笔记(下)
- 常用Java并发数据结构
- Flutter进阶篇(4)– Flutter的Future异步详解
- 教你如何最快写出酷炫的dialog对话框
- 开发工具总结(5)之Markdown语法图文全面详解及其工具介绍
- AndroidStudio基本debug调试技巧纵览
- 动态图解&实例 ConstraintLayout Chain
- Android 一起来看看 7.0 的新特性 FileProvider
- Android 一个另类的显示圆形图片方式
- Android8.0适配前台定位服务service
- Android 实习 | 如何在春招中拿到满意的 offer
- Android浅析SurfaceView
- Gradle学习笔记(三)管理依赖
- OkHttp基础学习(四),无网络读取本地缓存,有错误,待改正
- Android 滑动选择身高体重控件——RulerView
- 10分钟学会ikvStockChart制作K线图(股票走势图)
- Android —— 微信Sqlite数据库框架WCDB学习
- 当Android遇见工厂模式
- Android 自定义View学习(一)——准备
- WebView深度学习(一)之WebView的基本使用以及Android和js的交互
- 一个工程带你学会简单使用RxJava+Retrofit
- Android 简易签名板
- 【Android】你可能不知道的Support(一) 0步自动定向刷新SortedList
- 【Android】ListView、RecyclerView、ScrollView里嵌套ListView 相对优雅的解决方案:NestFullListView
- 优化Android Studio/Gradle构建
- 针对Android中类的重载方法很多时的几种优化解决方案
- 几步教你怎么写MVP
- 封装工厂类创建BottomNavigationBar的addItem
- [译]使用MVI打造响应式APP(三):状态折叠器
- Android 一款十分简洁、优雅的日记 APP
- 开发工具总结(4)之Android Studio3.0填坑指南
- Android插件化开发核心类ClassLoader相关详解
- Android 神兵利器Dagger2使用详解(一)基础使用
- Android面试官装逼失败之:Activity的启动模式
- 从Toast显示原理初窥Android窗口管理
- Android——RecyclerView入门学习之RecyclerView.Adapter(三)
- Java——Thread线程基础知识学习
- ItemTouchHleper实现RecyclerView侧滑删除
- Android官方架构组件Lifecycle:生命周期组件详解&原理分析
- 告别Dagger2,Android的Kotlin项目中使用Kodein进行依赖注入
- Java——单例模式
- 使用MVVM尝试开发Github客户端及对编程的一些思考
- 多线程学习未解决的Bug
- Android Camera 系列(一)拍照和录制视频
- Android 自定义View学习(十六)——PathMeasure学习
- Android.mk中那些编译参数总结
- RxJava+Retrofit2缓存库:RxCache中文文档
- Android:签名打包后关闭Log打印
- 程序员漫画系列-数据库注入式攻击
- Java基础算法:堆排,快排,二分查找
- Android自定义view——PasswordInputEdt密码输入框
- Android 自定义View学习(十二)——自定义View的分类
- Android 自定义View学习(四)——Paint 关于ColorMatrix学习
- 可以代替 onActivityResult 的办法
- Android Handler与Looper原理浅析
- 宛如as和ce间的鸿沟–还在使用ListView?RecyclerView的使用简介
- LinearLayout measure流程学习
- RxJava——基础学习(五),变换操作符
- Kotlin 语言下设计模式的不同实现
- 关于架构思想的看法
- 一起来写一个具备手势放大缩小功能的自定义ImageView
- Dart的语法详解系列篇(四)– 泛型、异步、库等有关详解
- Android Camera 系列(二)控制Camera
- 兄弟你知道 while(1)和for(;;)两个死循环有什么区别么
- JavaBean和Xml互相转换—XStream
- 老司机带你重构Android的v4包的部分源码
- Android——CoordinatorLayout之Behavior入门学习(上)
- 阿里巴巴Java编程规约学习记录-提升协作效率、提高代码质量
- Builder建造者模式记录(挖坑)
- Python爬取QQ空间留言板
- 自定义ProgressBar(一)
- 理解RxJava(三)线程调度原理分析
- 程序员谨防加班猝死之十大建议
- [译]使用MVI打造响应式APP(五):轻而易举地Debug
- Groovy学习笔记3:接口,布尔判断,操作符重载
- 教你手写一个贝塞尔曲线效果的Loading View
- 【Android】仿斗鱼滑动拼图验证码控件
- 正则表达式学习(下)
- Android进程保活-自“裁”或者耍流氓
- RxJava——基础学习(二)
- Android Bitmap知识梳理学习
- ionic和cordova初探–从安装到运行首个app
- 2018我的博客历程:你带来微笑,我有幸得到
- OkHttp基础学习(二),Post请求
- 简单说说ART和Dalvik区别
- Java——注解(Annotation)入门学习
- Flutter进阶篇(1)– 手把手带你快速上手调试Flutter项目
- 断点(上线版) – 阿韦