Boyikia
码龄9年
关注
提问 私信
  • 博客:36,755
    36,755
    总访问量
  • 45
    原创
  • 484,742
    排名
  • 2
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2016-04-03
博客简介:

BoyiKia的博客

博客描述:
在路上
查看详细资料
个人成就
  • 获得7次点赞
  • 内容获得10次评论
  • 获得37次收藏
创作历程
  • 13篇
    2020年
  • 29篇
    2019年
  • 3篇
    2018年
  • 1篇
    2017年
成就勋章
TA的专栏
  • 算法
    9篇
  • Android
    30篇
  • javaEE
    4篇
  • Flutter
    1篇
  • 小技巧
    1篇
兴趣领域 设置
  • 数据结构与算法
    数据结构
  • 移动开发
    kotlinflutterandroid studio
  • 软件工程
    性能优化
  • 学习和成长
    面试
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

源码 解读事件分发机制

文章目录源码角度 解读事件分发View 的事件分发 (View.dispatchTouchEvent())1.流程2.源码stopNestedScroll()onTouchEvent(MotionEvent event);1. performClickInternal();2.checkForLongClick()ViewGoup 事件分发( ViewGroup.dispatchTouchEven...
原创
发布博客 2020.04.27 ·
409 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

热修复原理分析

文章目录类加载机制类加载器双亲委派机制:类加载器加载步骤Android 中的类加载器PathClassLoader 和 DexClassLoader 对比Android 中的类加载分析BootClassLoader 引导类加载器:手机启动后,加载操作系统中的预加载类。PatchClassLoader :加载时序图热修复切入点解决方案类加载机制类加载器在类加载阶段,在虚拟机外部。通过一个类的...
原创
发布博客 2020.04.17 ·
254 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LiveData+LifeCycle

谷歌组件LifeCycle:感知生命周期使用LiveData:绑定生命周期的数据持有类api注册观察者通知观察者SetValue(T data)postValue(T value)移除观察者LiveData 和ModelView 共同使用创建ViewModel注册观察者发送事件LifeCycle:感知生命周期LifeCycle : 绑定了activity的生命周期,通过注册观察者,可以用来监...
原创
发布博客 2020.03.16 ·
620 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

组件架构ViewModel

组件架构ViewModel1.What?2.使用方法1.创建需要保存的ViewModel2.创建Provider ,通过provider,获取保存在ViewModelStore 中的 ViewModel 实例3.ViewModel1. 关联application的ViewModel4.ViewModelProvider构造函数Factory获取ViewModel 实例5.ViewModelStor...
原创
发布博客 2020.03.15 ·
336 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

字典序算法

字典序算法字典序就是按照字典中出现的先后顺序进行排序单个字符在计算机中,25个字母以及数字字符,字典排序如下:字母 : ABCDE~XYZ数字:12345678~多个字符两个字符串比较大小,是按照从左到右的顺序进行比较,如果第1位相等,就比较第2位,直至有一位可以比较出大小来,则不再继续比较。全排列的字典给定多个字符或者字符,可以按照任意顺序进行排列,所有排列称为全排列。...
原创
发布博客 2020.02.21 ·
1201 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

选择排序

选择排序算法原理 : 第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 public static void sort(int[] datas){ //第一轮循环是 选择设置对应位置的数据 ...
原创
发布博客 2020.02.18 ·
255 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

桶排序

桶排序桶排序是一种线性时间排序算法。类似于计数排序所创建的统计数组,桶排序需要创建若干个桶协助排序。步骤1.确定桶数,确定桶的区间范围;2.遍历原始数据,把元素对号入座放入各个桶里;3.堆每个桶内部元素分别进行排序;4.遍历所有桶,一次输出所有元素; public static float[] bucketSort(float[] datas){ float m...
原创
发布博客 2020.02.17 ·
121 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

计数排序

计数排序计数排序,是利用数组下标来确定元素的正确位置。基本算法对于 序列 {2, 1, 2, 3, 7, 9, 0, 7, 8, 6, 5},元素的取值范围 是【0,9】。因此,可以采用空间置换时间的想法,定义一个长度为10的数组C,这样可以保证 序列中的元素值 ,可以依次对应到 数组的下标中。通过遍历序列,我们可以将序列中元素出现的次数依次 定义到数组C中 。出现次数1...
原创
发布博客 2020.02.17 ·
508 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

堆排序

堆排序指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点二叉堆的知识点原理:不管是最大堆还是最小堆,通过若干 将堆顶元素 和 有效 尾部元素替换,重新调整生成新的堆顶的过程。 每个过程,都是将堆顶(最大或最小值) 移动到数组 的尾部,因此。当所有堆顶元素都置换到 集合的尾部时。集合则是一个和堆相...
原创
发布博客 2020.02.16 ·
115 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

二叉堆

二叉堆堆堆,本质上是一种完全二叉树。分为,最大堆和最小堆。 它的物理存储结构是 数组。因此:左孩子节点的 索引值= 它的父节点索引值2+1;右孩子节点的索引值=它的父节点索引值2+2;堆的分类最大堆: 任何一个父节点的值都大于或等于它的左右孩子节点的值。最小堆:任何一个父节点的值都小于或等于它的左右孩子节点。二叉堆的构建把一个无序的完全二叉树调整为二叉堆。本质...
原创
发布博客 2020.02.15 ·
107 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

快排算法

快排算法快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。简而言之,快排算法,就是我们常说的二分法。 通过基准值,将数字序列 分为 小于临界值的部分,和大于临界值的部分...
原创
发布博客 2020.02.14 ·
880 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

冒泡排序

冒泡排序冒泡排序:1.在一组无序的数字序列中,通过从序列的开始到结尾,相邻的的元素进行两两比较,当元素大于右侧的元素的时候,交换彼此的位置。最终经过每轮比较可以将数字大的数字移动到数列的尾部。2. 每轮的比较结果,都会确定出对应的有序区长度。例如:经过第一轮比较,我们,我们可以确定出序列的最大值(有序区长度 =1) ,经过第二轮比较,可以确定出第二大的值(有序区长度=2),第三轮确定出 第...
原创
发布博客 2020.02.13 ·
360 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

二叉树遍历(递归 +迭代)

二叉树的遍历二叉树——是一种 典型的非线性 数据结构。 而 在计算机程序中,遍历本身是一种线性操作。因此,二叉树的遍历,本质是非线性关联的节点转换成 一个线性 的序列,再 进行线性遍历。遍历类型深度遍历前序遍历(根-> 左-> 右)中序遍历( 左->根-> 右)后续遍历( 左-> 右->根)广度遍历层序遍历(一层一层的 遍历)...
原创
发布博客 2020.02.11 ·
240 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Window 源码解读(二)——View 的移除,添加,更新

通过 Window 源码解读(一),我们了解到。Activity 中 ,Window 的实际实现类是 PhoneWindow。WindowManager 继承自 ViewManager ,实际实现类是 WindowManagerImpl。Window 中,View 的添加是通过 WindowManagerGlobal 来完成本章我们来梳理View 的Tina阿基,移除,更新过程...
原创
发布博客 2019.12.16 ·
880 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Window源码 解读(一)

Window 源码解读Window 是一个窗口概念。它是所有view 的载体。在Widow 机制中,会接触到这几个类如下面类图。我们按照这个思路,梳理一下源码WindowAbstract base class for a top-level window look and behavior policy. Aninstance of this class should be us...
原创
发布博客 2019.12.16 ·
876 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

AttachInfo(源码解析)

/** * A set of information given to a view when it is attached to its parent * window. */ final static class AttachInfo { //回调接口 interface Callbacks { ...
原创
发布博客 2019.12.12 ·
787 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

ViewParent(源码解析)

ViewParent定义将成为视图父类的类的职责。视图想要和父类视图交互的ApIpublic interface ViewParent { /** * Called when something has changed which has invalidated the layout of a * child of this view parent. Th...
原创
发布博客 2019.12.11 ·
655 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Choreographer ——编舞者

Choreographer(编舞者)官方解释/** * Coordinates the timing of animations, input and drawing. * <p> * The choreographer receives timing pulses (such as vertical synchronization) * from the display ...
原创
发布博客 2019.11.16 ·
724 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

Android的16ms和垂直同步以及三重缓存

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
转载
发布博客 2019.11.06 ·
413 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Handler机制(View.post(Runnable action)原理)

Handler机制(View.post(Runnable action)原理)场景实际开发的过程中,我们一定会遇到.当在Activity 的onCreate() 中,通过 view.getTop()/ View.getWidth() 等方法来获取,控件的长宽等距离属性的时候。往往,事与愿违,获取的结果为0:。原因: 当我们在获取的时候,View 并没有完成,测量,布局等操作。因此,通过这些...
原创
发布博客 2019.11.05 ·
542 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多