×
广告

技术博客汇总

96
潇湘剑雨_
2018.06.30 07:57* 字数 10814

关于我的博客大汇总整理

目录介绍

  • Java博客大汇总
    • 01.Java基础
    • 02.面向对象
    • 03.数据结构
    • 04.IO流知识
    • 05.Java多线程
    • 06.网络编程
    • 07.类的加载
    • 08.反射原理
    • 09.数据算法
    • 10.Java异常
    • 11.Java深入
  • Android博客大汇总
    • 01.开源项目
    • 02.基础组件
    • 03.View事件
    • 04.动画机制
    • 05.View事件
    • 06.消息机制
    • 07.多媒体
    • 08.滑动冲突
    • 09.多线程
    • 10.Window
    • 11.WebView
    • 12.网络相关
    • 13.组件化
    • 14.音视频
    • 15.优化相关
    • 16.设计模式
    • 20.零碎笔记
    • 21.kotlin学习
    • 22.源码分析
    • 23.架构技术
  • bug分析大汇总
    • 01.崩溃bug日志总结1
    • 02.崩溃bug日志总结2
    • 03.崩溃bug日志总结3
    • 04.崩溃bug日志总结4
    • 05.崩溃bug日志总结5
    • 06.崩溃bug日志总结6
  • 面试题整理
    • 01.Java问题大整理
    • 02.Android问题大整理
  • 算法
    • 01.递归和回溯
    • 02.栈
    • 03.链表
    • 04.队列
    • 05.树
    • 06.排序
    • 07.查找
    • 08.选择
    • 09.散列
    • 10.字符串
    • 11.数组
  • 其他技术笔记
  • Python学习笔记
  • Go学习笔记
  • 生活博客汇总
  • 喜马拉雅汇总
  • 关于其他内容介绍
    • 01.关于博客汇总链接
    • 02.关于我的博客

好消息

  • 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计47篇[近20万字],转载请注明出处,谢谢!
  • 链接地址:https://github.com/yangchong211/YCBlogs
  • 如果觉得好,可以star一下,谢谢!当然也欢迎提出建议,万事起于忽微,量变引起质变!
  • 重点推荐:
    • 关于未来需求,可能值得我们这些小伙子思考……
    • 关于坚持的价值
    • 还有就是如果觉得好,可以收藏这篇文章,免得以后找不到,😄。我相信当你看到这篇文章后,定会了解到作者耗费了多少的心血,当然也会存在不足之处,我会持续完善!我入行较晚,从入行之前,就有记录笔记的习惯,不仅仅是技术类的笔记,生活所见所思,看新闻思考,读书笔记等等,一直在前行的路上……后来偶然的一次机会看到鸿洋大神的todo工作法,深受大神很大的影响,也在不断的学习。博客开始无人问津,也十分感谢鸿洋大神,郭霖大神,码个蛋等等部分博客推荐,后来慢慢有了一点阅读量……
    • 当然,我认为不一定非要成为像任主席,鸿洋那样的大神才去分享,或者达到郭神那样级别去写书。也可以在成长的同时,记录点滴的笔记,分享出来,说不定就帮助某个人解决了问题……哈哈!

Java博客大汇总

01.Java基础

  • 01.Java 关键字汇总
    • 常见的关键字,重要关键字说明,持续汇总中。
  • 02.Java基础知识
    • 知识点:基础知识点总结,标识符规则,进制,字符编码,运算符,方法,内存分配以及栈和堆
  • 03.泛型
    • 知识点:泛型高级之通配符,泛型作用,使用方法,泛型方法和泛型类的比较,泛型擦除解析
  • 04.常见的API方法
    • 知识点:常用api
  • 05.String类深入理解
    • 知识点:String的创建机理,StringBuffer/StringBuilder,String字符串是如何设计与实现考量的?String不可变的好处?
  • 06.int和Integer深入分析
    • 知识点:Integer的值缓存的原理,理解自动装箱和拆箱,如何验证int类型是否线程安全,Java 原始数据类型和引用类型局限性,原始类型线程安全问题等等
  • 07.基础类型缓存池概念
    • new Integer(123) 与 Integer.valueOf(123) 的区别,基本类型对应的缓冲池

02.面向对象

  • 01.面向对象基础
    • 面向对象的思想【思想,特征】,类和对象及其应用,对象的内存图,成员变量和局部变量区别等等
  • 02.封装继承多态
    • 封装继承多态,面向对象之static关键字的特点,静态变量和成员变量的区别,方法重写,方法重载,多态的弊端和好处
  • 03.抽象类和接口
    • 抽象类特点,接口特点,抽象类与接口的区别
  • 04.包和权限修饰符
    • 包的定义及package,四种权限修饰符的测试,类及其组成所使用的常见修饰符
  • 05.匿名内部类和其他
    • 内部类概述和访问特点,匿名内部类,为什么内部类调用的外部变量必须是final修饰的?

03.数据结构

  • 01.常见的数据结构
    • 常见的数据类型,数组,集合,栈,堆,链表,图,队列,树。主要是罗列开发中比较常见的数据类型……
  • 02.Java常用数据结构深度解析
    • 集合概括与总结,集合的遍历,迭代器的原理,List集合如何选择合适的
  • 03.List集合深度解析
    • ArrayList,Vector,LinkedList等集合的特点与区别。ArrayList的扩容消耗,List怎么实现排序?System.arraycopy()和Arrays.copyOf()方法区别与联系,list集合读写机制和读写效率,ArrayList核心源代码分析等等
  • 04.Set集合深度解析
    • HashSet,LinkedHashSet,TreeSet等集合特点和区别
  • 05.Map集合深度解析
    • HashMap,LinkedHashMap,TreeMap等集合深入分析
  • 06.Map集合深度解析
    • Map集合源码分析,容量和负载因子,线程安全性,扩容等
  • 07.ConcurrentHashMap深度解析
    • HashMap和HashTable困境,ConcurrentHashMap应用场景 ,ConcurrentHashMap基本原理锁分段技术,待完善

04.IO流知识

  • 01.IO流基础知识
    • IO流整体介绍,输入流和输出流分类,IO流案例,Buffer缓冲数据流,字节流四种方式复制MP3并测试效率
  • 02.IO流其他知识
    • String中的编解码问题,字符流的5种写数据的方式,字符流的2种读数据的方式,高效流FileWriter和FileReader,IO流的练习题

05.Java多线程

  • 01.线程基础知识
    • 多线程程序实现的方式,线程调度,线程控制,卖电影票案例线程安全分析
  • 02.线程池深入理解
    • 线程池的api介绍与使用
  • 03.线程池封装库
    • 轻量级线程池封装库,支持线程执行过程中状态回调监测(包含成功,失败,异常等多种状态);支持创建异步任务,并且可以设置线程的名称,延迟执行时间,线程优先级,回调callback等;可以根据自己需要创建自己需要的线程池,一共有四种;线程异常时,可以打印异常日志,避免崩溃。
  • 04.Synchronize深入解析
    • Synchronize深入解析,sychonized method 和 synchonized代码块的效率问题
  • 05.Thread关闭方法
    • 使用interrupt()方法终止线程,使用stop方法终止线程区别和使用场景
  • 06.Synchronize和ReentrantLock区别
    • Synchronize和ReentrantLock区别,Synchronize在编译时如何实现锁机制,ReentrantLock锁机制测试案例分析,公平锁和非公平锁有何区别等等
  • 07.死锁的发生,定位与修复
    • 死锁的概念和产生死锁的根本原因是什么?死锁的预防策略中资源有序分配策略是什么。死锁发生的场景,死锁的危害,出现死锁需要满足条件分析,如何预防死锁,如何定位死锁,以及死锁修复方案分析等等

06.网络编程

  • 01.网络编程基础知识
    • 网络模型7层概述,网络编程端口,协议,Socket通信原理图解
  • 02.网络基础笔记
    • Http相关知识点,无连接与无状态,HTTP的缓存机制,短连接与长连接,HTTPS为什么安全,HTTP协议Keep-Alive模式 ,Keep-Alive方式下如何判断消息内容/长度的大小?
  • 03.TCP和UDP详细介绍
    • TCP和UDP的区别 ,UDP协议传输数据 ,TCP协议传输数据 ,为什么建立连接需要三次握手,四次握手断开连接

07.类的加载

  • 01.Java类加载器
  • 02.类的加载机制
    • Java对象的创建过程 ,Java内存区域 ,Java对象的访问定位方式 ,Java对象销毁分析 ,类的加载过程。类信息,常量,变量,方法分别放到内存中哪里?本地方法栈和Java虚拟机栈有什么区别?本地方法栈在什么情况下会造成OOM?Java对象访问定位方式有哪些?主要有什么区别?为什么说使用指针效率更高?

08.反射原理

  • 01.反射详细介绍
    • 反射的使用,相关方法介绍,以及原理和性能分析,try、catch、finally语句块的执行顺序,处理异常机制深入理解
  • 02.反射进阶
    • 如何防止反射序列化攻击单例

09.数据算法

10.Java异常

11.Java深入

  • 01.四种引用比较与源码分析
    • 强引用,软引用,弱引用,虚引用的使用场景与区别,软引用SoftReference源码,弱引用WeakReference源码,虚引用PhantomReference源码分析
  • 02.Java内存分配机制及内存泄漏
    • Java采用GC进行内存管理思维导图,JVM内存分配的几种策略,GC简单介绍,内存泄漏带来的影响,GC回收机制,垃圾回收思路及方法
  • 03.Hash和HashCode深入理解
    • Hash的定义,Hash的使用场景,HashCode是什么,为什么要重写HashCode,可直接用hashcode判断两个对象是否相等吗,Hash表是什么 ,Hash中的算法应用 ,Hash在Java中的应用场景

Android博客大汇总

01.开源项目

01.1.开源项目思维导图

01.2.开源综合案例

  • 如果你感觉还行,请给一个star,如果你觉得哪里有问题,也可以直接把问题提给我,我会修改的。业余的小案例,定期更新,持续更新
  • 代码地址:https://github.com/yangchong211/LifeHelper
  • 说明及截图
  • 模块:新闻,音乐,视频,图片,唐诗宋词,快递,天气,记事本,阅读器等等
  • 接口:七牛,阿里云,天行,干货集中营,极速数据,追书神器等等
  • 架构:采用MVP+Rx+Retrofit+Desgin+Dagger2+阿里VLayout+腾讯X5等架构模式。
  • 写于16年,当时主要是为了练手,由于精力有限暂停更新

01.3.开源视频播放器封装库

  • 视频播放器封装库案例,仿照优酷,爱奇艺视频播放器,可以添家视频观看权限,试看模式,类似优酷试看功能。基于ijkplayer,支持网络视频或者本地视频播放,滑动调节亮度或者音量,快进快退,记录播放位置。可以设置边观看变缓存,支持全屏播放,小窗口,正常播放等模式;还支持列表播放,切换分辨率,还可以自定义视频播放器,拓展性强
  • 关于视频播放器封装思路已经作了详细介绍,可以看这篇文章:https://blog.csdn.net/m0_37700275/article/details/79074671
  • 代码地址:https://github.com/yangchong211/YCVideoPlayer
  • 说明及截图
  • 具体详细的开发说明文档,可以直接查看上面链接说明

01.4.开源状态切换管理器封装库

01.5.开源复杂类型type封装库

  • 自定义支持上拉加载更多,下拉刷新,可以自定义头部和底部,可以添加多个headAdapter,使用一个原生recyclerView就可以搞定复杂界面。支持自由切换状态【加载中,加载成功,加载失败,没网络等状态】的控件,可以自定义状态视图View。!已经用于投资界,沙丘大学项目中
  • 代码地址:https://github.com/yangchong211/YCRefreshView
  • 说明及截图
  • 具体详细的开发说明文档,可以直接查看上面链接说明
  • 关于对应的博客链接是:https://blog.csdn.net/m0_37700275/article/details/79624491

01.6.开源自定义对话框封装库

  • 自定义对话框,其中包括:仿ios底部弹窗;自定义Toast;自定义DialogFragment弹窗(功能很强大),自定义PopupWindow弹窗【采用builder模式,可以自定义位置,背景,自定义布局(支持嵌套recyclerView)等等,拓展性强】,目前已经用于新芽和投资界正式项目中。!
  • 代码地址:https://github.com/yangchong211/YCDialog
  • 说明及截图
  • 具体详细的开发说明文档,可以直接查看上面链接说明

01.7.list页面item整体侧滑动画封装库

01.8.开源工具常用类封装库

  • 开发过程中常用功能总结,包括自定义模糊视图,Loading加载,自定义Switch控件,自定义webview,支持滑动监听,并且优雅处理302重定向和处理回退栈问题,优雅处理Fragment返回监听,自定义ScrollView常用控件等等。
  • 代码地址:https://github.com/yangchong211/YCUtils
  • 说明及截图
  • 具体详细的开发说明文档,可以直接查看上面链接说明

01.9.开源轻量级线程池封装库

  • 轻量级线程池封装库,支持线程执行过程中状态回调监测(包含成功,失败,异常等多种状态);支持创建异步任务,并且可以设置线程的名称,延迟执行时间,线程优先级,回调callback等;可以根据自己需要创建自己需要的线程池,一共有四种;线程异常时,可以打印异常日志,避免崩溃
  • 重用线程池中的线程,避免频繁地创建和销毁线程带来的性能消耗;有效控制线程的最大并发数量,防止线程过大导致抢占资源造成系统阻塞;可以对线程进行一定地管理。
  • 支持线程执行过程中状态回调监测(包含成功,失败,异常等多种状态)
  • 支持线程异常检测,并且可以打印异常日志
  • 支持设置线程属性,比如名称,延时时长,优先级,callback
  • 支持异步开启线程任务,支持监听异步回调监听
  • 方便集成,方便使用,可以灵活选择创建不同的线程池
  • 代码位置
  • https://github.com/yangchong211/YCThreadPool
  • 关于线程池封装笔记博客,共计3篇
  • https://blog.csdn.net/m0_37700275/article/details/79979097

01.10.开源轮播图封装库【支持引导页】

  • 轮播图,支持多种自定义属性,可以设置轮播红点或者轮播数字,支持设置引导页。可以根据不同使用场景,可以选择无限循环,静态管理或者动态管理adapter。还可以设置暂停和开始轮播。目前已经用于投资界,新芽等正式项目中!!
  • 主要功能
  • 1.1 自定义轮播图,可以设置轮播红点或者轮播数字,多种指示器,并且灵活设置位置
  • 1.2 支持多种轮播图适配器,无限轮播adapter,静态管理adapter,和动态管理adapter。支持多种场合使用。
  • 1.3 支持自定义hintView,十分灵活,拓展性强
  • 1.4 无限循环自动轮播、手指按下暂停轮播、抬起手指开始轮播
  • 1.5 优化:在页面onPause中调用停止轮播,在页面onResume中调用开始轮播
  • 1.6 支持监听item点击事件,支持轮播图中ViewPager的滑动监听事件
  • 1.7 不仅支持轮播图,还支持引导页面,十分方便
  • 代码位置
  • https://github.com/yangchong211/YCBanner

01.11.开源音频播放器

1.关于音频基础博客

02.基础组件

  • 这个部分比较简单,是16年初刚学习的时候记录的笔记。可以直接跳过
  • 02.Service深入解读
    • Service启动方式 ,startService源码分析 ,ActivityThread启动 ,bindService源码分析 ,Service中如何开启Activity,直接在Activity中创建一个thread跟在service中创建一个thread之间恩区别?
  • 09.Selector选择器总结
    • selector创建方式,状态设置说明,义的xml文件可以作为两种资源使用:drawable和color。TextView如何设置背景和字体选择器?
  • 10.Shape自定义图形汇总
    • shape可以自定义四种类型的形状,常用方法介绍
  • 11.Style样式汇总
    • 样式的定义,样式的用法不只是用于单个View,也能用于Activity或整个Application,如何简化样式从而分类拆分成多个文件
  • 12.主题Theme的使用总结
    • style设置
  • 13.attr属性介绍
    • attr属性的定义/读取/出错/使用,自定义attr属性与读取,如果在attr中不同View引用相同属性名字时出现错误的解决方法
  • 16.CompileSdkVersion和MinSdkVersion
    • CompileSdkVersion的作用,MinSdkVersion的作用,TargetSdkVersion的作用
  • 17.Log深入解析
    • 关于Log源码介绍,Log日志的种类,底层都是调用了println方法是如何实现日志打印的

03.View事件

  • 02.View事件机制
    • 触摸事件,分发事件,拦截事件,三个事件机制怎么向其调用者传递处理结果,滑动冲突的思路及方法 ,以及具体的滑动冲突解决方案案例
  • 06.View之onDraw深入介绍
    • onDraw源码分析,onDraw案例之绘制圆环 ,onDraw案例之绘制圆形ImageView 等等
  • 07.View之Canvas,Paint,Matrix,RectF等介绍
    • Paint画笔介绍,图形绘制,文本绘制;Canvas画布介绍,设置属性,画图【重点】;Matrix变换矩阵介绍 ,RectF介绍 ,关于使用到这几个属性的自定义View案例

04.动画机制

  • 01.动画机制总结
    • Android动画类型分类,实现方式,ValueAnimator与ObjectAnimator区别,以及补间动画原理,部分源码分析
  • 02.动画源码解析
    • Animation和Animator区别,Animation运行原理和源码分析,如何计算动画数据,动画数据如何存储,Animation的调用;Animator运行原理和源码分析,属性动画新的概念,属性动画start执行流程,属性动画cancel和end执行流程,属性动画pause和resume执行流程,

05.View事件

06.消息机制

  • 00.Android异步消息机制
    • 如何在子线程中定义Handler,主线程如何自动调用Looper.prepare(),Looper.prepare()方法源码分析,Looper中用什么存储消息,Looper.loop()方法源码分析,runOnUiThread如何实现子线程更新UI等等
  • 01.Handler消息机制
    • 为什么不允许在子线程中访问UI,Handler消息机制作用,避免子线程手动创建looper,ActivityThread源码分析,ActivityThread源码分析,Looper死循环为什么不会导致应用卡死,会消耗大量资源吗?
  • 02.Looper深度解析
  • 03.ThreadLocal深入分析

07.多媒体

  • 01.图片相关整理
    • 加载图片的压缩处理技术,网络url图片转换Bitmap保存到本地 ,保存bitmap图片到本地文件夹,实现带有圆角的图片 ,轮播图背景做高斯模糊,高斯模糊可能会造成的崩溃以及解决办法
  • 03.Bitmap相关
    • Bitmap,Drawable,InputStream,Byte[ ] 之间进行转换,Bitmap图片压缩,将View控件转换为bitmap,Bitmap优化逻辑与原理,如何计算bitmap占用内存大小

08.滑动冲突

09.多线程

  • 01.线程池基础介绍
    • ThreadPoolExecutor类介绍,关于线程池的分类,线程池一般用法,线程创建规则
  • 02.线程池封装库
    • 轻量级线程池封装库,支持线程执行过程中状态回调监测(包含成功,失败,异常等多种状态);支持创建异步任务,并且可以设置线程的名称,延迟执行时间,线程优先级,回调callback等;可以根据自己需要创建自己需要的线程池,一共有四种;线程异常时,可以打印异常日志,避免崩溃。
  • 03.AsyncTask异步任务类
    • AsyncTask是如何实现异步机制的,底层原理是什么?AsyncTask调用execute方法时,如果不是运行在主线程中会出现什么情况,如何解决?为什么异步任务对象不能执行多次,即不能创建一个对象执行多次execute方法?AsyncTask的执行策略是并行还是串行的?AsyncTask对应线程池是如何操作的?它有什么弊端?
  • 04.IntentService源码分析
    • IntentService的作用,使用场景,源码分析,整体源码展示及归纳,如何单独开启1个新的工作线程,IntentService如何将Intent传递给服务并且依次插入到工作队列中,IntentService与其他线程对比,HandlerThread深入分析

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运行在子线程导致崩溃如何解决?

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.网络相关

13.组件化

14.音视频

15.优化相关

  • 01.内存泄漏优化
    • 常见的内存泄漏场景分析,原理分析,及解决办法,比如:错误使用单例造成的内存泄漏,错误使用静态变量,Handler使用不当造成的内存泄漏,非静态内部类创建静态实例造成的内存泄漏,资源未关闭造成的内存泄漏,动画资源未释放导致内存泄漏等等
  • 02.ANR深入介绍
    • 哪些情况会发生ANR,以及发生ANR后如何排查错误,及解决方案分析
  • 04.Android 懒加载优化
    • ViewPager+Fragment组合,当Fragment处理可见时,才去请求网络数据,同时onLazyLoad()加载数据条件,以及部分源码分析
  • 07.Android优化总结
    • 性能优化,内存泄漏优化,布局优化,代码优化,网络优化,线程优化
  • 08.静态代码分析实战
    • Lint静态代码分析工具,移除无效代码

16.设计模式

  • 01.单例模式
    • 单例模式的实现方式,大概7种,懒汉式,饿汉式,DCL双重校验模式,静态内部类单例模式,枚举单例等等
  • 02.Builder模式
    • Builder模式使用场景,简单案例,Builder模式实际案例Demo展示,看看AlertDialog.Builder源代码如何实现,为什么AlertDialog要使用builder模式呢?builder模式优缺点分析。
    • 关于builder模式经典的案例可以参考我的弹窗封装库:https://github.com/yangchong211/YCDialog
  • 03.观察者模式
    • 观察者使用场景,简单实现,观察者从哪里来的,查看setAdapter源代码,EventBus事件总线
  • 04.访问者模式
    • 访问者模式定义,访问者模式简单案例分析,访问者模式之Android源码分析之注解,注解之ButterKnife源码分析
  • 05.装饰者模式
  • 06.适配器模式

20.零碎笔记

  • 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.产品开发流程
    • 属于整理性文章

21.kotlin学习

22.源码分析【待完善】

  • 01.Json源码解析与使用
    • Gson对象创建,生成Json字符串,fromJson和toJson的使用,序列化【model对象转变成json字符串】,反序列化【将json字符串转变成model对象】,TypeAdapter,JsonSerializer序列化接口,sonDeserializer反序列化接口
  • 02.Vlayout使用详细介绍
    • 主要功能介绍,使用方法与案例,相关类说明,和相关属性说明
  • 03.adb使用技巧
    • 遇到问题及解决方案,什么是ADB?adb 服务程序模块,ADB常用的命令
  • 04.RecyclerView源码分析
    • RecycleView的结构,RecyclerView.Adapter扮演的角色与代码分析,notifyDataSetChanged()刷新数据之观察者模式,ViewHolder的作用,复用原理,以及简单封装,setLayoutManager(LayoutManager layout)源码,addItemDecoration()源码分析 ,ItemAnimator动画,Recycler && RecycledViewPool概念,RecyclerView嵌套方案滑动冲突解决方案 ,RecyclerView复杂布局封装库案例
  • 05.DownloadManager源码分析
  • 06.Retrofit源码分析
    • Retrofit创建中用了哪些设计模式,为什么设置baseUrl的时候,会以/结尾,如果没有/会出现什么问题?如何理解动态代理的机制。retrofit是如何加载接口类ApiService的,为什么这个类要设置成接口?call调用enqueue异步方法中源码是如何实现异步切换线程的?原理是怎样的?网络传输都是二进制流,那么解析数据时,如何通过ServiceMethod使用Converter转换成Java对象进行数据解析?
  • 08.ButterKnife源码分析
  • 09.glide源码分析
  • 10.EventBus用法及源码解析
    • EventBus的四种ThreadMode(线程模型),register(this)注册源码解析,订阅者的注册过程,EventBus事件分发解析,EventBus取消注册解析,总结一下EventBus的工作原理。
  • 11.App启动流程
    • 什么是Zygote进程,Zygote进程的启动流程 ,SystemServer进程启动流程 ,启动服务流程源码分析,
  • 12.SnapHelper源码深度解析
    • SnapHelper作用,SnapHelper源码分析 ,attachToRecyclerView入口方法,SnapHelper的抽象方法,自定义SnapHelper类

23.架构技术

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

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.Resources$NotFoundException
    • 1.4 java.lang.IllegalArgumentException参数不匹配异常
    • 1.5 IllegalStateException:Can't compress a recycled bitmap
    • 1.6 java.lang.NullPointerException空指针异常
    • 1.7 android.view.WindowManager$BadTokenException异常
    • 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导致空指针异常
  • 04.崩溃bug日志总结4
  • 05.崩溃bug日志总结5
  • 06.崩溃bug日志总结6
  • 07.崩溃bug日志总结7
  • 08.ANR深入介绍
    • ANR简单介绍,ANR的产生需要满足哪些条件,ANR发生场景有哪些,ANR发生的原理分析,ANR有哪些具体案例,看anr日志分析是cpu问题还是gc问题,一些防止anr的良心建议。问答题:ANR有异常日志吗?或者说ANR在第三方bugly崩溃日志中有日志吗?
  • 09.OOM异常介绍
    • 常见OOM分析思路介绍,常见发生的场景 ,常见的解决办法 ,减小对象的内存占用,内存对象的重复使用,避免内存泄漏,内存优化策略

面试题整理

  • 00.面试问题大汇总
    • 汇总齐全的各种问题,虽然网上有很多这类型的博客,但是个人觉得,在实际面试过程中,面试官一般都比较喜欢追问……
    • 许多的问题,在回答过程中,面试官也会根据面试者的回答,再进行提问。所以如果只是单纯的去刷题,而不是很深入理解问题的原理,最终也会面试不顺利。

算法

01.递归和回溯

02.栈

03.链表

04.队列

05.树

06.排序

  • 01.冒泡排序
    • 冒泡排序基本思想,排序过程,简单优化思路
  • 02.插入排序
    • 插入排序基本思想,排序过程,以及代码展示
  • 03.选择排序
    • 选择排序基本思想,排序过程,以及代码展示,树形选择排序
  • 04.快速排序
    • 快速排序基本思想,排序过程,以及代码展示。
  • 05.希尔排序
    • 希尔排序基本思想,排序过程,以及代码展示
  • 06.归并排序
    • 归并排序基本思想,排序过程,以及代码展示

07.查找

  • 01.二分查找
    • 无需数组是否能用二分查找?二分查找基本思想,查找过程,以及代码展示

08.选择

09.散列

10.字符串

11.数组

其他技术笔记

  • 01.Git 使用技巧总结
    • git上传代码步骤 ,初始化配置,克隆代码库指令,查看代码库信息,拉取,提交与推送操作,分支操作,远程同步等等

生活博客汇总

目录介绍

  • 第一部分:博客目录
  • 第二部分:博客内容

第一部分:博客目录

  • 01.关于写博客的初衷
  • 02.关于生活中思考
  • 03.关于小时候的回忆
  • 04.关于碎片化阅读
  • 05.关于未来需求
  • 06.关于换位思考感悟
  • 07.关于对武侠思考
  • 08.关于古人畅怀作乐
  • 09.关于坚持的价值
  • 10.关于写博客那回事
  • 11.关于打麻将那回事
  • 12.关于朋友圈的点滴
  • 13.关于什么是稳定
  • 14.关于输入和输出
  • 15.关于如何看待网络暴力
  • 16.关于靠谱那回事
  • 17.关于如何看待人脉
  • 18.关于认知困境讨论
  • 19.关于如何看待“抢”文化
  • 20.关于中产阶级困扰
  • 21.关于道德高点的爱
  • 22.关于武侠爱情箴言
  • 23.关于有趣绕口令
  • 24.如何性子直与自私
  • 25.关于构建知识图谱
  • 26.关于目标分解完成
  • 27.关于大学毕业后差距
  • 28.关于人格破产这回事
  • 29.关于看书提升能力
  • 30.关于打造自己世界
  • 31.关于撩和追的区别
  • 32.关于知识付费学习
  • 33.关于修养与教养
  • 34.关于如何看待加班
  • 35.关于女生经济独立
  • 36.关于社交恐惧
  • 37.关于慎独时教养
  • 38.关于闲时莫论是非
  • 39.关于人情这回事
  • 40.关于提升说话技巧
  • 41.关于看待朋友圈营销
  • 42.关于老年人生活探讨
  • 43.关于道德与善良
  • 44.关于礼物的价格
  • 45.关于借钱和讨债
  • 46.关于赚钱和值钱
  • 47.关于朋友间的样子
  • 48.关于看客的热闹

由于文章太长有限制,这里只是添加链接,详情可以看:https://blog.csdn.net/m0_37700275/article/details/79832978

关于其他内容介绍

image

01.关于博客汇总链接

02.关于我的博客

于LICENSE

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Android
Web note ad 1