自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 web动画之 requestAnimationFrame

web动画之 requestAnimationFramesetTimeout | setIntervalrequestAnimationFramesetTimeout | setInterval通过设定间隔时间来不断改变图像位置,达到动画效果。但是容易出现卡顿、抖动的现象;原因是:1、setTimeout | setInterval 任务被放入异步队列,只有当主线程任务执行完后才会执行队列中的任务,因此实际执行时间总是比设定时间要晚;2、settimeout的固定时间间隔不一定与屏幕刷新时间相同,会

2021-03-13 22:13:10 150

原创 Android KeyEvent事件框架总结

Android KeyEvent事件框架总结framework流程View框架处理流程framework流程首先WMS接受到inputEvent 调用 viewRoot的 dispatchInputEvent 方法通过 ViewRootHandler 发送消息 处理消息 调用 enqueueInputEvent 方法将事件入队列在 doProcessInputEvents方法中 循环处理 事件消息 其中调用 deliverInputEvent 方法分发事件deliverInputEvent 方法通

2020-10-23 14:20:59 2200

原创 Android 任务、回退栈、亲和度以及相关FLAG说明

Android 任务、回退栈、亲和度以及相关FLAG说明亲和度Intent.FLAG_ACTIVITY_NEW_TASK清除返回堆栈 Activity 3种属性亲和度任务亲和度是一个字符串,来自于根Activity的亲和度。亲和度在如下两种情况下起作用:1. 当启动 Activity 的 intent 包含 FLAG_ACTIVITY_NEW_TASK 标记时2. 当 Activity 的 allowTaskReparenting 属性设为 “true” 时Intent.FLAG_ACTIVI

2020-09-12 17:43:00 252

原创 Lifecycle与Activity Fragment绑定原理

Lifecycle与Activity Fragment绑定原理Lifecycle组件Lifecycle与Activity的绑定Lifecycle与FragmentActivity的绑定Lifecycle与ComponentActivity的绑定Lifecycle组件Lifecycle组件是基于观察者模式实现的跟踪并回调其宿主生命周期状态的组件Lifecycle具体实现类是LifecycleRegistryLifecycle基于状态和事件的变化过程实现触发观察者具体方法(每个观察者注册时也会有其状态

2020-08-11 19:14:44 640

原创 Android APP及ActivityThread启动流程的一些理解

目录系统启动的初始工作System Server进程Launcher进程六个大类ActivityThread启动流程APP启动流程ActivityManagerService相关启动流程图系统启动的初始工作1. Android 众多基于Linux内核的系统类似, 启动系统时, bootloader启动内核和init进程.2. init进程分裂出更多名为"daemons(守护进程)"的底层的Linux进程, 诸如android debug deamon, USB deamon等. 这些守护进程处理底层

2020-08-01 20:15:35 1168

原创 Android Context详解

目录Context是什么Context继承树组件中的Context获取Context对象Context是什么1. Context表示上下文,表示一个交互的场景,为组件的运行提供各种能力(加载资源、启动Activity、获取系统服务、创建View等)及环境(系统信息,必要数据、标识,自定义数据等)2. 组件必须运行在一个环境下(Context)3. Context提供了关于应用环境全局信息的接口。它是一个抽象类,它的实现由Android系统所提供。它允许获取以应用为特征的资源和类型,是一个统领一些资源

2020-07-15 11:47:24 349

原创 Android 事件分发机制详解

目录Activity dispatchTouchEventViewGroup dispatchTouchEventView dispatchTouchEventActivity dispatchTouchEvent1. Activity的dispatchTochEvent作为事件入口2. 如果事件为ACTION_DOWN(表示一整个触摸事件的开始),则调用onUserInteraction()(空方法),可重写,表示用户的一次交互3. 通过 getWindow().superDispatchTouc

2020-07-13 21:04:15 204

原创 Android Hander post与sendMessage的区别

Android Hander post与sendMessage的区别postMessage缓存相关 SDK 29post1. post方法其实与sendMassage方法一样,都会调用sendMessageDelayed(msg, 0);2. post则是通过 getPostMessage(Runnable r) 方法调用 Message.obtain() 方法从Message类中自带的缓存队列(被回收的message对象组成的链表)中获取 message对象,如果没有缓存对象,则new Mes

2020-07-11 23:38:32 896

原创 JAVA Double Float包装类0.0与-0.0 equals返回 false 问题

JAVA中 Double或者Float包装类中的equals方法与对应数值型的比较略有区别 1. equals使用了XXXToLongBits方法将浮点数转换成long型比较 2. 正数和负数转换有所区别,0.0d转换为0 ;-0.0d转换为-9223372036854775808 其他情况正数与其相反数与转换结果一一对应,也互为相反数 3. -0.0+0.0=0.0 ...

2020-03-07 22:02:48 974

原创 TCP中URG和PSH的含义及区别

1、URG紧急位URG=1,该tcp报文为紧急报文;其中的紧急数据需要直接交付给接收端的进程,而不进入缓存。剩余的数据需要进入缓存。紧急数据的长度=紧急指针;紧急数据的起始点=序号; 注意:当数据需要紧急发送时,发送端会将该数据调整到该tcp报文最前面。紧急数据的终止点=序号+紧急指针;1)在紧急数据后面的数据为普通数据,需要按序缓存2)**窗口为0也可以发送紧急数据*...

2020-03-07 21:40:22 2002

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除