Android精品文章合集

  • 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项目
  • 断点(上线版) – 阿韦

你可能感兴趣的:(Android精品文章合集)