目录介绍
链接:https://juejin.im/post/5d60ad5df265da03c42899f1
01.基础组件(9篇)
02.IPC机制(7篇)
03.View原理(9篇)
04.动画机制(2篇)
05.Res资源(6篇)
06.消息机制(12篇)
07.多媒体(16篇)
08.View事件(9篇)
09.多线程(12篇)
10.Window(19篇)
11.WebView(4篇)
12.网络相关(7篇)
13.注解(14篇)
14.音视频(13篇)
15.优化相关(19篇)
16.流行框架(23篇)
17.数据处理
18.framwork
19.复杂控件(12篇)
20.Bug管理
21.经典总结(16篇)
23.架构技术(13篇)
24.kotlin(29篇)
25.RecyclerView(31篇)
26.组件化(7篇)
27.路由框架(7篇)
好消息
博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计N篇[近100万字,陆续搬到网上],转载请注明出处,谢谢!
链接地址:github.com/yangchong21…
如果觉得好,可以star一下,谢谢!当然也欢迎提出建议,万事起于忽微,量变引起质变!
01.基础组件
02.Activity基础介绍
Activity生命周期,特殊情况下生命周期,Activity的启动模式,特殊情况栈交互,Activity的Flags
03.Activity启动流程
Launcher启动开启Activity,ActivityManagerService详谈,执行栈顶Activity的onPause方法,启动Activity所属的应用进程,执行启动Acitivity重点逻辑
04.Activity布局创建
handleLaunchActivity,performLaunchActivity,activity.attach,Activity的onCreate方法,setContentView源码分析
05.Activity布局绘制
Activity布局加载简介,handleResumeActivity,WindowManager作用,performTraversals()方法,Activity布局绘制总结
06.Activity探坑分析
Activity异常生命周期,后台Activity被系统回收,如何判断activity优先级,App切换到后台分析,Activity传递参数数据,Activity任务战Task
07.BroadCastReceiver1
什么是广播Broadcast,广播Broadcast作用,广播Broadcast分类,动态注册BroadCast,发送本地广播
08.BroadCastReceiver2
监听网络状态变化,监听电量变化,应用安装更新卸载监听
09.BroadCastReceiver3
广播实现原理,抽象方法onReceive(),广播的类型,内存泄漏分析
12.Fragment基础
Fragment生命周期,Fragment静态和动态使用方式,Fragment回退栈,Fragment与Activity通信,Fragment旋转场景,FragmentAdapter选择
13.Fragment进阶
什么是内存重启,onHiddenChanged回调时机,Fragment与Activity之间传值,Fragment与Fragment之间传值,为何不构造传值,FragmentManager栈视图,Fragment之懒加载使用,思考Fragment能否不依赖Activity
14.Fragment填坑
getActivity()空指针,Fragment发生重叠,Fragment高耦合性,处理返回键逻辑
16.Fragment源码
Fragment管理流程源码分析,Fragment生命周期是怎么来的,Fragment回退栈是如何实现的
32.Android混淆
什么是混淆,proguard-rules.pro文件
36.CompileSdkVersion和MinSdkVersion
CompileSdkVersion的作用,MinSdkVersion的作用,TargetSdkVersion的作用
40.Log深入解析
关于Log源码介绍
02.IPC机制
01.IPC通信方式介绍
使用Intent,使用文件共享,使用Messenger,使用AIDL,使用ContentProvider,使用Socket
02.IPC之线程进程
Android中如何控件进程,进程的重要性,Android中线程,工作线程
05.IPC之序列化
什么是IPC,开启多进程,多进程影响,Serializable,Parcelable
06.IPC之Messager
Messenger基本概述,服务端,客户端,双向通信
11.Aidl基础介绍
什么是AIDL,AIDL作用,AIDL支持数据类型,服务端和客户端,注意问题
12.Aidl通信案例
aidl通信业务需求,操作步骤伪代码,案例测试调试,可能出现的问题,aidl不要做耗时操作
03.View原理
01.View绘制流程
View绘制的流程框架,View中重要方法,自定义View优化策略
04.View之onMeasure深入介绍
Measure流程分析,MeasureSpec的确定,View的测量流程
05.View之onLayout深入分析
Layout流程,View的布局流程
06.View之onDraw深入介绍
onDraw源码分析,onDraw案例之绘制圆环 ,onDraw案例之绘制圆形ImageView 等等
07.View之Canvas,Paint,Matrix,RectF等介绍
Paint画笔介绍,图形绘制,文本绘制;Canvas画布介绍,设置属性,画图【重点】;Matrix变换矩阵介绍 ,RectF介绍 ,关于使用到这几个属性的自定义View案例
08.View之invalidate,requestLayout,postInvalidate
requestLayout、invalidate与postInvalidate作用与区别?
10.获取View宽高
为何直接获取宽高为0?onWindowFocusChanged获取宽高,view.post(runnable)获取宽高,ViewTreeObserver获取宽高,手动测量控件宽高,这几种方式的区别介绍分析。
12.自定义View控件
自定义控件步骤,创建View ,测量View(Measure) ,绘制View(Draw),与用户进行交互,优化自定义View
13.自定义ViewGroup
自定义ViewGroup步骤,创建ViewGroup,测量View(Measure),布局View(Layout),绘制View(Draw),事件分发处理,与用户进行交互,自定义控件优化
04.动画机制
01.动画机制总结
Android动画类型分类,实现方式,ValueAnimator与ObjectAnimator区别,以及补间动画原理,部分源码分析
02.动画源码解析
Animation和Animator区别,Animation运行原理和源码分析,如何计算动画数据,动画数据如何存储,Animation的调用;Animator运行原理和源码分析,属性动画新的概念,属性动画start执行流程,属性动画cancel和end执行流程,属性动画pause和resume执行流程,
07.加载json动画
如何解析json动画,加载动画优化点,加载json动画原理,部分源码解析说明,性能与常见动画分析,可能出现的异常
05.Res资源(6篇)
09.Selector选择器总结
selector创建方式,状态设置说明,义的xml文件可以作为两种资源使用:drawable和color。TextView如何设置背景和字体选择器?
10.Shape自定义图形汇总
shape可以自定义四种类型的形状,常用方法介绍
11.Style样式汇总
样式的定义,样式的用法不只是用于单个View,也能用于Activity或整个Application,如何简化样式从而分类拆分成多个文件
12.主题Theme的使用总结
style设置
13.attr属性介绍
attr属性的定义/读取/出错/使用,自定义attr属性与读取,如果在attr中不同View引用相同属性名字时出现错误的解决方法
06.消息机制
01.Handler基础使用
Handler常见使用方式,在子线程中定义Handler,Handler的post方法和view的post方法,避免子线程手动创建looper,解决Handler内存泄漏
02.Handler机制体系
Handler作用与功能,MessageQueue作用与功能,Looper作用与功能,Message作用与功能,消息机制实现的步骤
03.消息机制源码流程
Handler发送消息,Looper轮训操作,MessageQueue消息队列,MessageQueue传递消息给Handler,Handler接收消息并处理
04.Handler深度解析
Handler构造方法分析,handler.sendMessage(msg)
05.Looper深度解析
Activity如何自动绑定Looper,Looper.prepare()方法源码分析,Looper.prepare()能否调用多次,Looper中用什么存储消息,Looper.loop()方法源码分析,Activity生命周期依赖Looper,Looper死循环为何不阻塞应用卡死
06.MessageQueue
MessageQueue作用介绍,MessageQueue的定义,enqueueMessage()源码,next()方法源码分析
08.主线程中Looper的轮询死循环为何没阻塞主线程
造成ANR的原因,Looper.loop()方法无限循环,处理消息handleMessage方法,loop的循环消耗性能吗?
09.子线程更新UI
Android中子线程可以更新UI吗,子线程更新UI有哪些方式,runOnUiThread如何实现子线程更新UI,View.post(Runnable r)更新UI,子线程更新UI总结概括
12.HandlerThread
HandlerThread定义,HandlerThread几个特性,HandlerThread源码分析 ,
13.消息机制ThreadLocal
Android消息机制,ThreadLocal基础介绍,ThreadLocal分析 ,Handler为何用ThreadLocal
07.多媒体
01.图片相关整理
网络请求图片资源,保存bitmap图片,实现带有圆角的图片
03.加载图片资源介绍
加载Bitmap
04.Bitmap计算内存
如何计算占用内存?bitmap内存大小 = 图片长度 x 图片宽度 x 单位像素占用的字节数计算内存对吗?一个像素占用内存,使用API获取内存
05.Bitmap回收问题
recycle()方法,Bitmap缓存原理,Bitmap的复用,Bitmap如何复用
06.Bitmap压缩处理
Bitmap的压缩方式,Bitmap质量压缩,Bitmap采样率压缩,Bitmap缩放法压缩
07.Bitmap图片处理
Bitmap,Drawable,InputStream,Byte[]之间进行转换,将View控件转换为bitmap,Bitmap优化逻辑与原理
08.加载大图流程
网络请求图片,压缩缓存图片,填充到View控件,自定义图片控件,加载大图原理
09.SurfaceView源码分析
SurfaceView是什么,SurfaceView源码分析 ,在子线程中执行绘制操作为何不会阻塞线程?
10.Android保存多张图片到本地
实际开发保存图片遇到的问题,直接用http请求图片并保存本地,用glide下载图片保存本地,如何实现连续保存多张图片
11.Bitmap,Drawable,InputStream
Bitmap,Drawable,InputStream,Byte[ ] 之间进行转换
12.Bitmap避免OOM
Bitmap占用内存介绍,影响Bitmap占用内存因素,图像加载的方式,加载图像内存去哪里了,具体实现加载图片步骤
16.自定义阴影控件
阴影效果有哪些实现方式,实现阴影效果Api,设置阴影需要注意哪些,常见Shape实现阴影效果,自定义阴影效果控件,如何使用该阴影控件,在recyclerView中使用注意点
08.View事件
01.View事件基础
事件分发的对象是谁?事件在哪些对象间进行传递?事件分发过程涉及方法?事件分发机制方法说明?
02.View事件分发场景
事件分发背景描述,事件传递情况
03.View事件机制源码分析
Android中事件分发顺序?Activity的事件分发机制?ViewGroup事件的分发机制 ?View事件的分发机制?onTouch()和onTouchEvent()的区别?
04.View事件机制
触摸事件,分发事件,拦截事件,三个事件机制怎么向其调用者传递处理结果,滑动冲突的思路及方法 ,以及具体的滑动冲突解决方案案例
05.View的滑动冲突
通过一个滑动冲突的案例,来讲解外部拦截法解决滑动冲突,内部拦截法解决滑动冲突
07.View事件总结1
Android事件分发机制,View和ViewGroup分发事件,onTouch()、onTouchEvent()和onClick()执行顺序,View处理事件的优先级,点击事件传递过程,事件传递规则要点
08.View事件总结2
View滑动有哪些方法,Activity事件分发过程,Window事件分发过程,DecorView