目录介绍
链接: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的事件分发,根View的事件分发

09.多线程

00.Android多线程

Android中的线程,线程交互之Handler机制,线程切换的类,java中的多线程,线程池管理多线程,Handler和AsyncTask,线程安全问题

01.频繁创建Thread缺点

遇到的问题分析,多线程实现Runnable弊端

02.AsyncTask介绍

先看下AsyncTask用法,AsyncTask源码深入分析 ,异步机制的实现,不同的SDK版本区别

03.AsyncTask缺陷问题

AsyncTask对应线程池,AsyncTask生命周期问题,AsyncTask内存泄漏问题,AsyncTask结果丢失问题,AsyncTask并行还是串行问题

04.IntentService使用

使用步骤,IntentService作用,IntentService使用场景

05.IntentService源码分析

IntentService的作用,使用场景,源码分析,整体源码展示及归纳,如何单独开启1个新的工作线程,IntentService如何将Intent传递给服务并且依次插入到工作队列中,IntentService与其他线程对比,HandlerThread深入分析

08.线程池基础

ThreadPoolExecutor类介绍,关于线程池的分类,线程池一般用法,线程创建规则

09.线程池案例测试

使用线程池管理线程的优点,以及案例代码测试效率

10.Android中几种进程

在安卓系统中:当系统内存不足时,Android系统将根据进程的优先级选择杀死一些不太重要的进程,优先级低的先杀死。进程优先级从高到低如下。

15.Android线程池封装库

轻量级线程池封装库,支持线程执行过程中状态回调监测(包含成功,失败,异常等多种状态);支持创建异步任务,并且可以设置线程的名称,延迟执行时间,线程优先级,回调callback等;可以根据自己需要创建自己需要的线程池,一共有四种;线程异常时,可以打印异常日志,避免崩溃。

10.Window

01.Activity、Window、View三者关系

深入分析Activity、Window、View三者之间的关系

02.Toast源码深度分析

最简单的创建,简单改造避免重复创建,show()方法源码分析,scheduleTimeoutLocked吐司如何自动销毁的,TN类中的消息机制是如何执行的,普通应用的Toast显示数量是有限制的,用代码解释为何Activity销毁后Toast仍会显示,Toast偶尔报错Unable to add window是如何产生的,Toast运行在子线程问题,Toast如何添加系统窗口的权限等等

03.DialogFragment源码分析

最简单的使用方法,onCreate(@Nullable Bundle savedInstanceState)源码分析,重点分析弹窗展示和销毁源码,使用中show()方法遇到的IllegalStateException分析

04.Dialog源码分析

AlertDialog源码分析,通过AlertDialog.Builder对象设置属性,Dialog生命周期,Dialog中show方法展示弹窗分析,Dialog的dismiss销毁弹窗,Dialog弹窗问题分析等等

05.PopupWindow源码分析

显示PopupWindow,注意问题宽和高属性,showAsDropDown()源码,dismiss()源码分析,PopupWindow和Dialog有什么区别?为何弹窗点击一下就dismiss呢?

06.Snackbar源码分析

最简单的创建,Snackbar的make方法源码分析,Snackbar的show显示与点击消失源码分析,显示和隐藏中动画源码分析,Snackbar的设计思路,为什么Snackbar总是显示在最下面

07.弹窗常见问题

DialogFragment使用中show()方法遇到的IllegalStateException,什么常见产生的?Toast偶尔报错Unable to add window,Toast运行在子线程导致崩溃如何解决?

09.onAttachedToWindow和onDetachedFromWindow

onAttachedToWindow的调用过程,onDetachedFromWindow可以做什么?

10.DecorView介绍

什么是DecorView,DecorView的创建,DecorView的显示,深度解析

11.弹窗问题总结

PopupWindow和Dialog区别

15.窗口管理框架概述

Android显示系统分为3层,Android显示框架里几个角色

18.窗口管理服务WMS

Window窗口介绍 ,WindowManager介绍,Window的添加流程,Window的删除流程,Window的更新流程

19.布局解析者Inflater

LayoutInflater介绍,PhoneLayoutInflater介绍,inflate源码分析,获取XmlResourceParser,解析View树操作步骤,解析View操作步骤

11.WebView

01.WebView基础使用

WebView的常用方法,WebView常用类的介绍,WebView注意事项,WebView滑动监听,为WebView自定义错误显示界面,判断WebView是否已经滚动到页面底端

02.WebView和js交互

Android去调用JS的代码方式,JS去调用Android的代码方式,Android 调用HTML中的javascript脚本并传递参数,HTML中的javascript脚本调用Android本地代码并传递参数,什么时候注入js探索

03.WebView防坑总结

WebView页面中播放音视频,退出Activity后仍然有声音,后台无法释放js导致发热耗电,301/302业务场景及白屏问题,WebSettings.setJavaScriptEnabled安全问题,加载证书错误,WebView内存泄漏问题场景和解决办法,如何处理加载错误(Http、SSL、Resource)?,如何操作cookie?H5页面如何处理登录失效问题?,H5页面有混合http和https的链接,5.0以上系统不支持混合模式,需要通过配置来开启

04.WebView源码分析

loadurl,LoadData ,loadDataWithBaseURL分析

12.网络相关

01.网络基础笔记

Http无连接与无状态区别,HTTP的缓存机制,HTTP协议Keep-Alive模式等等

02.Retrofit基本使用和源码解析

Retrofit详细使用方法介绍,Retrofit与RxJava结合,Form表单提交与multipart/form-data,源码分析

03.Http和Https区别

http和https之间的区别,以及其他相关知识点

04.TCP和UDP详细介绍

TCP和UDP的区别,三次握手建立连接,四次握手断开连接,Socket文件传输

05.网络请求详解

Http请求与响应 ,Http请求方式 ,get和post请求的区别

06.Cookie、Session、Token笔记整理

关于cookie,session,和token使用场景介绍,以及它们之间有何区别

07.Http状态码详解

属于整理内容,十分全面,方便查询状态码含义

13.注解

01.Annotation注解详细介绍
02.Dagger2深入分析,待更新
03.注解详细介绍

什么是注解,注解分类有哪些?自定义注解分类?运行注解案例展示分析,以一个最简单的案例理解注解……使用注解替代枚举,使用注解限定类型

04.APT技术详解

什么是apt?理解注解处理器的作用和用途……android-apt被替代?annotationProcessor和apt区别? 什么是jack编译方式?

06.自定义annotation注解

@Retention的作用?@Target(ElementType.TYPE)的解释,@Inherited注解可以被继承吗?Annotation里面的方法为何不能是private?

07.注解之兼容kotlin

后期更新

08.注解之处理器类Processor

处理器类Processor介绍,重要方法,Element的作用,修饰方法的注解和ExecutableElement,了解修饰属性、类成员的注解和VariableElement……

10.注解遇到问题和解决方案

无法引入javax包下的类库,成功运行一次,修改代码后再运行就报错

11.注解代替枚举

在做内存优化时,推荐使用注解代替枚举,因为枚举占用的内存更高,如何说明枚举占用内存高呢?这是为什么呢?

13.Android之注解问题

13.0.0.1 什么是注解?系统内置的标准注解有哪些?SuppressWarnings用过没?Android中提供了哪些与线程相关的注解?
13.0.0.2 什么是apt?apt的难点和优势?什么是注解处理器?抽象处理器中四个方法有何作用?annotationProcessor和apt区别?
13.0.0.3 注解是怎么分类的?自定义注解又是怎么分类的?运行期注解原理是什么?实际注解案例有哪些?
13.0.0.4 在自定义注解中,Annotation里面的方法为何不能是private?Annotation里面的方法参数有哪些?
13.0.0.5 @Inherited是什么意思?注解是不可以继承的,这是为什么?注解的继承这个概念该如何理解?
13.0.0.6 什么是依赖注入?依赖注入案例举例说明,有哪些方式,具备什么优势?依赖查找和依赖注入有什么区别?
13.0.0.7 路由框架为何需要依赖注入,不用的话行不行?路由用什么方式注入,这些注入方式各具何特点,为何选择注解注入?
13.0.0.8 实际开发中使用到注解有哪些,使用注解替代枚举?如何通过注解限定传入的类型?为何说枚举损耗性能?

14.音视频

1.0.1 如何扫描本地音频或者视频
1.0.2 深入学习酷狗,混沌大学那种锁屏页面原理
1.0.3 为什么要捕获/丢弃音频焦点详细讲解
1.0.4 耳机声控,以及耳机拔出或者插入控制播放暂停
1.0.5 音视频编码解码深入分析总结
1.0.6 实现音视频1.5倍,2倍播放速率
1.0.7 音频的加密与解密案例实践深入总结
1.0.8 音频基础知识和概念的介绍
1.0.9 [音视频混合案例介绍]后期更新
1.1.0 如何构建知识图谱,重点
1.1.1 完整视频播放器案例总结与分析
1.1.2 关于博客笔记大汇总
1.1.3 Android编码规范
1.1.4 Notification通知控制播放

15.优化相关(19篇)

01.内存泄漏优化

常见的内存泄漏场景分析,原理分析,及解决办法,比如:错误使用单例造成的内存泄漏,错误使用静态变量,Handler使用不当造成的内存泄漏,非静态内部类创建静态实例造成的内存泄漏,资源未关闭造成的内存泄漏,动画资源未释放导致内存泄漏等等。

02.网络优化

图片分类优化,获取网络数据优化,网络请求异常拦截优化

03.布局优化

常见布局优化方法,使用include标签,ViewStub深度解析,视图层级

04.懒加载优化

ViewPager+Fragment组合,当Fragment处理可见时,才去请求网络数据,同时onLazyLoad()加载数据条件,以及部分源码分析

05.代码优化

lint检查去除无效代码,代码规范优化,View异常优化,去除淡黄色警告优化,合理使用集合,Activity不可见优化,节制的使用Service

06.App线程优化

创建Thread弊端,为何要用线程池,那些地方使用线程池

07.App启动页优化

存在白屏问题,解决白屏的办法,Application启动速度优化,启动页面屏蔽返回按键

08.图片优化

bitmap优化,glide加载优化

09.静态变量优化

不要用静态变量保存核心数据,实际开发中遇到的问题

10.APP瘦身优化

APK组成,如何压缩优化apk,如何检测哪些无效代码

11.App卡顿原因

Android卡顿原理,复杂的视图树,频繁的requestlayout(),UI线程被阻塞,内存抖动

12.对象池Pools优化

什么是对象池,glide哪里用到对象池,多条件key缓存bitmap,glide对象池总结,学以致用对象池,对象池的容量

14.轮询操作优化

轮询操作是啥,轮训请求实践,与长连接相关的轮训请求,与页面相关的轮训请求

15.网络异常优化

网络请求异常分类,开发中注意问题,原始的处理方式,如何减少代码耦合性,异常统一处理步骤

16.注解替代枚举

使用注解限定传入类型,使用注解替代枚举

17.四种引用优化

软引用使用场景,弱引用使用场景,使用场景分析

19.去除重复依赖库优化

如何查询重复库,如何代码去重配置

20.状态管理优化

界面状态有哪些,采用include方式管理,在Base类中处理逻辑,如何降低偶性和入侵性,封装低入侵性状态库

31.优化分析工具

Studio Profiler介绍,CPU分析器,内存分析器,网络分析器,TraceView

19.复杂控件

01.ScrollView详细介绍

ScrollView滚动到顶部,ScrollView判断是否滑动到顶部或者底部,ScrollView在最顶部或者最底部的时候不消费事件

02.NestedScrollView

NestedScrollView滚动到顶部,NestedScrollView为何有时滚不到顶部,NestedScrollView子布局有时候显示不出高度,NestedScrollView中嵌套ViewPager

07.自定义TabLayout

原生TabLayout局限,TabLayout源码解析,设置自定义tabView选项卡,自定义指示器的长度,设置滑动改变选项卡颜色,使用反射的注意要点

09.CoordinatorLayout使用

CoordinatorLayout是什么,如何搭配使用,CoordinatorLayout属性,AppBarLayout属性,Toolbar属性

10.CoordinatorLayout源码

CoordinatorLayout类源码说明,Behavior的初始化操作,CoordinatorLayout的测量布局,CoordinatorLayout中依赖监听,CoordinatorLayout的TouchEvent

11.AppBarLayout

AppBarLayout是什么,AppBarLayout属性介绍

12.CollapsingToolbarLayout

CollapsingToolbarLayout是什么,CollapsingToolbarLayout属性,其他注意要点说明

14.自定义Behavior

CoordinatorLayout滑动抖动问题描述,滑动抖动问题分析,自定义AppBarLayout.Behavior说明,CoordinatorLayout滑动抖动解决方案

15.CoordinatorLayout问题

CoordinatorLayout+ViewPager滑动问题,AppbarLayout+ViewPager滑动问题

20.ViewPager懒加载

ViewPager简单介绍,ViewPager弊端分析,ViewPager预加载,懒加载出现问题,如何实现预加载机制

21.PagerAdapter

PagerAdapter简单介绍,PagerAdapter抽象方法,PagerAdapter原理介绍,PagerAdapter缓存和销毁,自定义PagerAdapter

20.bug管理

00.常见的异常

分别列举了实际开发中大部分的异常,主要包括1.异常Exception和2.异常Error
针对开发中异常问题,大概记录的是:该板块是持续更新!!

  • A.详细崩溃日志信息
  • B.查看崩溃类信息
  • C.项目中异常分析
  • D.引发崩溃日志的流程分析
  • F.解决办法
  • G.其他延申
    复制代码
    01.崩溃bug日志总结1

1.1 java.lang.UnsatisfiedLinkError找不到so库异常
1.2 java.lang.IllegalStateException非法状态异常
1.3 android.content.res.ResourcesNotFoundException1.4java.lang.IllegalArgumentException参数不匹配异常1.5IllegalStateException:Can′tcompressarecycledbitmap1.6java.lang.NullPointerException空指针异常1.7android.view.WindowManagerNotFoundException 1.4 java.lang.IllegalArgumentException参数不匹配异常 1.5 IllegalStateException:Can't compress a recycled bitmap 1.6 java.lang.NullPointerException空指针异常 1.7 android.view.WindowManagerNotFoundException1.4java.lang.IllegalArgumentException参数不匹配异常1.5IllegalStateException:Can′tcompressarecycledbitmap1.6java.lang.NullPointerException空指针异常1.7android.view.WindowManagerBadTokenException异常
1.8 java.lang.ClassCastException类转化异常
1.9 Toast运行在子线程问题,handler问题

02.崩溃bug日志总结2

1.1 java.lang.ClassNotFoundException类找不到异常
1.2 java.util.concurrent.TimeoutException连接超时崩溃
1.3 java.lang.NumberFormatException格式转化错误
1.4 java.lang.IllegalStateException: Fragment not attached to Activity
1.5 ArrayIndexOutOfBoundsException 角标越界异常
1.6 IllegalAccessException 方法中构造方法权限异常
1.7 android.view.WindowManager$BadTokenException,dialog弹窗异常
1.8 java.lang.NoClassDefFoundError 找不到类异常
1.9 Android出现:Your project path contains non-ASCII characters.

03.崩溃bug日志总结3

1.1 OnErrorNotImplementedException【 Can’t create handler inside thread that has not called Looper.prepare()】
1.2 adb.exe,start-server’ failed – run manually if necessary
1.3 java.lang.IllegalStateException: ExpectedBEGIN_OBJECT but was STRING at line 1 column 1 path $
1.4 android.content.ActivityNotFoundException: No Activity found to handle Intent
1.5 Package manager has died导致崩溃
1.6 IllegalArgumentException View添加窗口错误
1.7 IllegalStateException: Not allowed to start service Intent异常崩溃
1.8 java.lang.IllegalStateException:Can not perform this action after onSaveInstanceState
1.9 在Fragment中通过getActivity找不到上下文,报null导致空指针异常

21.经典总结

02.Aidl进程间通信详细介绍

Aidl相关属性介绍,实际开发中案例操作,部分源码解析,客户端绑定服务端service原理

03.Scheme协议详细介绍

Scheme协议格式解释,Scheme如何使用 ,Scheme在短信息中注意要点

04.加密和解密

对称加密和非对称加密 ,加密和解密代码展示,非对称加密用途,RSA非对称加解密案例代码分析,注意RSA加密填充方式,RSA加密内容长度限制问题, 加解密效率测试

05.系统日志写入文件

自定义log工具类,一边打印日志一边写入文件,可以清除7天或者n天之前的日志文件

06.数据序列化总结

序列化简单介绍,Parcelable与Serializable的性能比较,性能测试方法分析

07.关于Activity跳转动画大汇总

关于Activity实现切换的方式,使用overridePendingTransition方法实现Activity跳转动画,使用ActivityOptions切换动画实现Activity跳转动画

08.Android屏幕适配方案

屏幕适配定义,相关重要的概念 ,Android适配问题及本质 ,通配符适配困境,传统dp适配困境,今日头条适配方案等等

09.Android编码规范

包命名,类和接口命名,方法的命名,变量命名,成员变量命名,常量命名,异常命名等等;注释,类注释,方法注释,类成员变量和常量注释等等;代码风格,简单实用的规范文档

10.上传提交代码到jcenter

详细的方法流程步骤

11.产品开发流程

属于整理性文章

13.Notification通知栏

github.com/yangchong21…

14.轮询操作

简单理解就是App端每隔一定的时间重复请求的操作就叫做轮训请求,比如:App端每隔一段时间上报一次定位信息,App端每隔一段时间拉去一次用户状态等,这些应该都是轮训请求。

31.App滑动标题栏渐变

目前改变渐变颜色方式,ScrollView实现滑动渐变,RecyclerView滑动渐变,AppBarLayout滑动渐变

21.经典总结(4篇)

01.Android技术架构
02.设计靠谱MVP架构

什么是MVP?什么是MVC?开始进行MVP搭建,MVP进阶处理逻辑

03.MVC架构详细介绍

MVC原理介绍,Android应用场景,MVC最简单例子,通俗理解MVC,MVC缺陷分析

04.MVP架构详细介绍

MVP简单介绍,MVP工作原理,MVP最简单例子,MVP架构优缺点

23.架构技术

01.Android技术架构

MVC架构简单介绍,MVC缺陷,MVP架构简单介绍,如何设计一个靠谱MVP架构,以及MVC和MVP之间比较,结合实际代码分析,避免过度设计

02.Android组件化开发实践和案例分享

为什么要组件化,创建组件化框架,组件化实践的开源项目,本博客已经授权鸿洋大神推荐!

03.ARouter路由解析

ARouter路由框架一层层的解析,ARouter的工作流程

11.设计路由条件

为何需要路由?实现路由方式有哪些,这些方式各有何优缺点?使用注解实现路由需要具备的条件以及简单原理分析……

12 通过注解去实现路由跳转

自定义Router注解,Router注解里有path和group,这便是仿照ARouter对路由进行分组。然后看看注解生成的代码,手写路由跳转代码。

13 自定义路由Processor编译器

Processor介绍,重要方法,Element的作用,修饰方法的注解和ExecutableElement

14 利用apt生成路由映射文件

在Activity类上加上@Router注解之后,便可通过apt来生成对应的路由表,那么究竟是如何生成的代码呢?
在组件化开发中,有多个module,为何要在build.gradle配置moduleName,又是如何通过代码拿到module名称?
process处理方法如何生成代码的,又是如何写入具体的路径,写入文件的?
看完这篇文章,应该就能够理解上面这些问题呢!

15 路由框架的设计和初始化

编译期是在你的项目编译的时候,这个时候还没有开始打包,也就是你没有生成apk呢!路由框架在这个时期根据注解去扫描所有文件,然后生成路由映射文件。这些文件都会统一打包到apk里,app运行时期做的东西也不少,但总而言之都是对映射信息的处理,如执行执行路由跳转等。那么如何设计框架呢?
生成的注解代码,又是如何把这些路由映射关系拿到手,或者说在什么时候拿到手比较合适?为何注解需要进行初始化操作?
如何得到得到路由表的类名,如何得到所有的routerAddress—activityClass映射关系?

16 路由框架设计注意要点

需要注意哪些要点?

17 为何需要依赖注入

有哪些注入的方式可以解耦,你能想到多少?路由框架为何需要依赖注入?路由为何用注解进行依赖注入,而不是用反射方式注入,或者通过构造方法注入,或者通过接口方式注入?

18 Activity属性注入

在跳转页面时,如何传递intent参数,或者如何实现跳转回调处理逻辑?

24.kotlin学习

02.Kotlin基本语法

常量和变量,函数,空安全,修饰符,运算符重载

03.Kotlin类的扩展

使用companion object,通过闭包减少接口类,object对象声明

04.Kotlin函数

with函数说明,apply函数说明,内联函数,自定义访问器

06.条件循环和区间

If表达式,When表达式,for循环,While 和 do/while 循环,Ranges

07.Kotlin类介绍

kotlin如何表示类,默认是finial修饰,internal inner是啥,匿名内部类,枚举类

08.Kotlin构造函数

没有构造参数的类,主构造函数,次构造函数,主构造函数之init方法

09.抽象类与接口

接口定义,抽象类定义,抽象方法与默认方法,抽象属性

10.类继承和实现

kotlin类默认finial,继承接口和实现抽象类,覆盖方法,属性覆盖,如何多个实现

11.函数操作符
12.扩展函数和属性

扩展函数,扩展属性,不可重写的扩展函数,拓展函数问题思考

13.Kotlin可空性

可空性,安全调用运算符:?.,Elvis运算符:?:,安全转换运算符:as?,非空断言:!!,let函数说明

15.kotlin字符串
16.类型的检查

类型检查,智能转换,不安全的转换操作符,安全的转换操作符

18.懒加载初始化

by lazy作用,lazy使用场景,lateinit作用,by lazy和lateinit的区别

19.集合和数组

只读集合与可变集合,集合与 Java,只读集合的可变性,

20.kotlin中缀调用

中缀调用,解构声明

22.Lambda表达式

Lambda作用,Lambda的使用场景,在作用域中访问变量

23.kotlin异常

Kotlin 中异常处理的基本形式和 Java 类似

25.FindViewId空指针

不用手写findViewById,插件实现的原理分析,fragment中注意事项

26.kotlin协程使用

什么是协程,协程应用场景,线程和协程区别,协程用法,协程优势

30.kotlin开销探索

lazy()委托属性,伴生对象开销,基本类型数组

31.NPE强规则

Java中判断方式,kotlin中判空,导致NPE的场景

25.RecyclerView(25篇)

00.RecyclerView复杂封装库

几乎融合了该系列博客中绝大部分的知识点,欢迎一遍看博客一遍实践,一步步从简单实现功能强大的库

01.RecyclerView

RecycleView的结构,RecyclerView简单用法介绍

02.Adapter

RecyclerView.Adapter扮演的角色,一般常用的重写方法说明,数据变更通知之观察者模式,查看.notifyChanged();源码

03.ViewHolder

ViewHolder的作用,如何理解对于ViewHolder对象的数量“够用”之后就停止调用onCreateViewHolder方法,ViewHolder简单封装

04.LayoutManager

LayoutManager作用是什么?setLayoutManager源码分析

05.SnapHelper

SnapHelper作用,什么是Fling操作 ,SnapHelper类重要的方法,

06.ItemTouchHelper
07.SpanSizeLookup

SpanSizeLookup如何使用,同时包含列表,2列的网格,3列的网格如何优雅实现?

08.ItemDecoration

ItemDecoration的用途,addItemDecoration()源码分析

09.RecycledViewPool

RecyclerViewPool用于多个RecyclerView之间共享View。

10.ItemAnimator

官方有一个默认Item动画类DafaultItemAnimator,其中DefaultItemAnimator继承了SimpleItemAnimator,在继承了RecyclerView.ItemAnimator,它是如何实现动画呢?

11.RecyclerView上拉加载

添加recyclerView的滑动事件,上拉加载分页数据,设置上拉加载的底部footer布局,显示和隐藏footer布局

12.RecyclerView缓存原理

RecyclerView做性能优化要说复杂也复杂,比如说布局优化,缓存,预加载,复用池,刷新数据等等

13.SnapHelper源码分析

SnapHelper旨在支持RecyclerView的对齐方式,也就是通过计算对齐RecyclerView中TargetView 的指定点或者容器中的任何像素点。

16.自定义SnapHelper

自定义SnapHelper

18.ItemTouchHelper 实现交互动画

需要自定义类实现ItemTouchHelper.Callback类

19.自定义ItemDecoration分割线

需要自定义类实现RecyclerView.ItemDecoration类,并选择重写合适方法

21.RecyclerView优化处理

RecyclerView滑动卡顿原因有哪些?如何解决嵌套布局滑动冲突?如何解决RecyclerView实现画廊卡顿?

22.RecyclerView问题汇总

getLayoutPosition()和getAdapterPosition()的区别

23.RecyclerView滑动冲突

01.如何判断RecyclerView控件滑动到顶部和底部
02.RecyclerView嵌套RecyclerView 条目自动上滚的Bug
03.ScrollView嵌套RecyclerView滑动冲突
04.ViewPager嵌套水平RecyclerView横向滑动到底后不滑动ViewPager
05.RecyclerView嵌套RecyclerView的滑动冲突问题
06.RecyclerView使用Glide加载图片导致图片错乱问题解决

24.ScrollView嵌套RecyclerView问题

要实现在NestedScrollView中嵌入一个或多个RecyclerView,会出现滑动冲突,焦点抢占,显示不全等。如何处理?

25.RecyclerView封装库和综合案例

自定义支持上拉加载更多【加载中,加载失败[比如没有更多数据],加载异常[无网络],加载成功等多种状态】,下拉刷新,可以实现复杂的状态页面,支持自由切换状态【加载中,加载成功,加载失败,没网络等状态】的控件,拓展功能[支持长按拖拽,侧滑删除]可以选择性添加。具体使用方法,可以直接参考demo案例。

  1. RecyclerView瀑布流优化

瀑布流实现,瀑布流上拉加载,给瀑布流设置分割线,如何避免刷新抖动,为何有时出现跳动,瀑布流图片优化,onBindViewHolder优化,瀑布流item点击事件优化,Glide加载优化,建议指定图片的宽高

26.组件化(7篇)

01.为何组件化

APP迭代维护成本增高,APP架构方式是单一工程模式,业务规模扩大,那就涉及到多人协作问题……

02.组件化概念

什么是组件化,区分模块化与组件化,区分组件化和插件化,application和library,组件化优势好处,注意第三方sdk拆分问题

03.组件化框架

传统APP架构图,组件化需要考虑问题,组件化架构图,组件通信是通过路由转发,业务组件的生命周期

05.组件化案例

如何创建模块,如何建立依赖,如何统一配置文件,组件化的基础库包含哪些,组件和集成模式如何切换,组件初始化问题

06.组件化填坑

Fragment通信难点,组件化解决重复依赖,业务组件联动导致耦合,组件化之数据库分离,组件化时资源名冲突,butterKnife使用问题

07.选择合适路由

选择那个开源路由库,阿里Arouter基础原理,使用Arouter注意事项

27.路由框架

01.设计路由条件

为何需要路由,实现路由方式,路由具备要点,ARouter简单案例,路由实现原理

02.通过注解实现路由跳转

首先看ARouter注解实现方案,自定义Router注解,查看生成的注解代码,倒推生成代码如何产生的

03.生成路由映射文件

前沿介绍,定义注解处理器,如何拿到module名称,process处理方法,生成的文件

04.框架设计与初始化

看阿里ARouter整体设计,这样设计框架目的,仿照ARouter设计自己框架,为何需要初始化操作,初始化操作逻辑,如何得到得到路由表的类名

05.路由参数传递接收
06.依赖注入详解

什么是依赖注入,依赖注入案例,依赖查找和依赖注入,路由框架为何需要依赖注入,路由用什么方式注入

07.Activity属性传递

依赖注入实现,注解实现分析,AbstractProcessor,如何注入属性,注入源码分析

其他介绍
01.关于博客汇总链接

1.技术博客汇总
2.开源项目汇总
3.生活博客汇总
4.喜马拉雅音频汇总
5.其他汇总

02.关于我的博客

github:github.com/yangchong21…
知乎:www.zhihu.com/people/yczb…
简书:www.jianshu.com/u/b7b2c6ed9…
csdn:my.csdn.net/m0_37700275
喜马拉雅听书:www.ximalaya.com/zhubo/71989…
开源中国:my.oschina.net/zbj1618/blo…
泡在网上的日子:www.jcodecraeer.com/member/cont…
邮箱:yangchong211@163.com
阿里云博客:yq.aliyun.com/users/artic… 239.headeruserinfo.3.dT4bcV
segmentfault头条:segmentfault.com/u/xiangjian…
掘金:juejin.im/user/593943…

作者:杨充
链接:https://juejin.im/post/5d60ad5df265da03c42899f1
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Android博客大汇总相关推荐

  1. 优秀Android博客大全,整理了国内外大神博客/Github地址,是学习Android进阶的首选[转]

    [转]国内外优秀Android博客大全,覆盖了国内外大神博客地址,Github地址,是学习Android进阶的首选 国内: 昵称 Github 博客 介绍 邓凡平   http://blog.csdn ...

  2. ANDROID内存优化(大汇总——中)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

  3. ANDROID内存优化(大汇总——全)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

  4. android博客导航总结,以及个人常用android免费学习干货(文章,视频,矢量图,字体等)资源分享?

    android博客导航总结与资源分享 1.博客总结 1.mob平台的使用 2.QMUI部分功能实现 3.XUI部分功能实现 4.其他功能 5.Flutter博客总结: 2.资源分享 1.文章类型资源分 ...

  5. ANDROID内存优化(大汇总——上)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...

  6. 关于我的Android 博客

    我是曹新雨,我为自己代言.现在的菜鸟,3年以后我就是大神.为自己加油.微信:aycaoxinyu 关于我的Android博客,都是我当初遇到困难,克服之后,写上去的.后来,有人加我微信,问我一些问题, ...

  7. 安信可博客导航一站式搜索(所有博客的汇总帖)

    安信可博客导航一站式搜索(所有博客的汇总帖) 文章目录 安信可博客导航一站式搜索(所有博客的汇总帖) 开源团队简介 安信可优势 Ai-WB2模组专题 ESP系列IDE开发环境搭建 ESP8266模组专 ...

  8. 从团购网的漏洞看网站安全性问题 -- 安全 -- IT技术博客大学习 -- 共学习 共进步!...

    从团购网的漏洞看网站安全性问题 -- 安全 -- IT技术博客大学习 -- 共学习 共进步!: "" (Via.) 转载于:https://www.cnblogs.com/devo ...

  9. 《团队作业》五小福团队--UNO的博客链接汇总

    <团队作业>五小福团队--UNO的博客链接汇总 <团队作业第一周>五小福团队作业--UNO <团队作业第二周>五小福团队作业--UNO <团队作业第三.第四周 ...

最新文章

  1. 数据蒋堂 | 数据分布背后的逻辑
  2. python程序设计与科学计算pdf_用Python做科学计算 pdf版
  3. 常用的sublime text 3插件
  4. Math.signbit()
  5. UI设计灵感|有声读物APP界面设计
  6. Unable to run Kiwi tests on iOS8 device
  7. python坐标轴拉伸_python-Matplotlib垂直拉伸histogram2d
  8. springboot指定属性返回_Spring Boot 最最最常用的注解梳理
  9. 网站开发执行文档(页面界面和功能说明文档)编写方法
  10. KISSsoft03-2018F SP6,计算和重新分析机器零件
  11. firefox使用掘金插件_谷歌浏览器常用插件
  12. 基于智能手机的物流管理系统
  13. Python项目:Django员工管理系统
  14. 一条机器“龙”,堪称史上最快异形机器人!
  15. CVPR2019 | 论文分类汇总(190611 更新)
  16. 原来微信“对方正在输入”在这种情况下才显示
  17. 论文阅读-WARP: Word-level Adversarial ReProgramming
  18. 分析C语言的声明——《C专家编程》
  19. linux运行fuzzbunch,方程式0day ETERNALBLUE复现之Empire ampamp; Msfconsole下的she...
  20. CSUST 2007 我爱吃烧烤 题解(状压dp)

热门文章

  1. 电脑连蓝牙耳机,放音乐是用蓝牙耳机,浏览器不能用蓝牙耳机,用的扬声器,解决方案:
  2. Linux中No such file or directory但文件存在的解决办法
  3. idea actiBPM插件生成png文件 右键BPMN转变后缀的XML文件时没有Diagrams选项问题
  4. 洛谷P1088 火星人
  5. RPC编程:Hessian RPC一个老的RPC框架(一)
  6. 产品宣传手册是如何制作的?
  7. maven总结(二)--基本操作之编译java文件
  8. python从ftp下载文件时问题解决
  9. QT设置窗口折叠效果QPropertyAnimation
  10. 苹果手机怎么编辑word文档_办公软件入门到精通:文档WORD文本编辑