- 博客(18)
- 收藏
- 关注
原创 Android帧绘制流程深度解析 (二)
整个帧绘制的流程还是比较复杂的,但是我也在这个过程中,对消息机制等知识点,在流程中进行更加详细的分析和讲解。其中可能也存在理解不到位的地方,还希望大家多多指正。
2024-06-13 00:00:36
932
1
原创 理解lambda表达式
这里就是一个场景加一个方法的组合,场景是有困难,然后方法时去找师兄师姐,但是场景很多啊,你可能刚上手就不会,也可能是做到一半遇到问题,亦或者是做到最后一步,不知道怎么总结,那你请教的内容必然也不会相同。这里的talks方法是无参函数,所以就直接传一个 () 再加上符号 -> 然后通过{}将方法体包含住,所以在看到lambda表达式的时候,如果还不熟悉,不理解其含义,可以先将其逆转为匿名内部类,这样就会好理解很多。这里反而是到使用的时候再定义,这不就可以根据我们的场景来定义方法的功能了嘛。
2024-05-31 23:15:49
652
原创 addWindow的宏观概念
3、 然后在屏幕上显示窗口的时候需要有一个先后顺序,所以对WindowState也会有一定的排序,而且在使用窗口的时候,还会把相同类型的窗口聚类到一块,通过一个WindowState的容器进行统一的管控,即统一的类WindowToken,不过WindowToken是系统窗口的聚类,应用窗口的聚类则是ActivityRecord。在前一节讲了窗口的排序逻辑,分别是应用窗口、系统窗口、和子窗口,但是这里讲的比较散,没有一个宏观的概念。关于DisplayContent中排序的算法,最好的方法就是直接看代码。
2024-05-10 23:56:56
702
1
原创 WindowManager#addView_2
WindowManagerService是SystemServer中的一个服务,主要功能是管控窗口的服务,在各个应用进程中都有自己的代理,WindowManager(也可以说WindowManagerGlobal), WindowManager和WindowManagerService之间的沟通则是通过IWindowSession的子类Session类完成,在ViewRootImpl类中会持有一个IWindowSession类型的对象mWindowSession。
2024-05-09 01:30:40
1745
原创 Java继承学习笔记
静态类是在类加载的时候就会初始化,static方法会存放在静态区,这个方法是属于类的,可以通过类名去访问。深入点的解释就是,通过super调用到父类方法后,其实栈帧还是在子类对象中,所以在父类方法中调用到其他方法时,查寻方法表的时候,查的还是子类的方法表。Java中规定,实例化子类对象的时候,必须调用父类的构造方法,再调用子类的构造方法,所以其实在子类的构造方法的第一行是有一个隐式的调用super()的, 我理解的应该是子类要想继承父类的方法和属性,所以必须先有一个父类,所以必须先初始化父类?
2024-05-07 01:16:27
280
原创 Android消息机制
综上,举个例子,再线程A中希望发送一个消息给到线程B,那需要做什么呢?1、 创建一个Handler,关联到线程B的Looper,这里有两个方案:直接再Handler构造函数中传入B的looper、 再线程B中创建Looper再从线程A中获取到该Handler B;2、 生成需要的Message消息;3、 通过和线程B的Looper关联的Handler B,将消息发送出去;
2024-05-04 01:52:28
580
1
原创 addView方法的不同实现
关于addView方法,我说下我的理解,首先说明下这个方法的起源,addView方法的声明在ViewManager.java中。这里插入一个类图,方便起见我就用自己之前画的一张图,可以看到,有两个类都继承自ViewManager类,分别是ViewGroup和WindowManager。根据子类的实现分别看下他们继承了addView之后是怎么实现该方法的。
2024-04-30 02:19:54
455
原创 连续调用两次setContentView操作UI界面
其实这个问题从trace文件就可以看出来了,再onCreate方法,其实在perffeto中就很容易就看到了,在启动的trace中onCreate这个Tag是在帧绘制之前就完成的,那我们看到界面的前提不是得是帧绘制完成了嘛,所以在onCreate方法中的setContentView是可以修改应用界面的布局,但是他只是修改界面的布局的参数,这时候界面还没绘制,界面最终的显示,还需要将这个布局参数交付给doFrame流程进行绘制和SF进行合成渲染最后送显完成显示。
2024-04-27 16:56:17
174
3
原创 WindowManager家族的复杂关系
这是因为Window就是一个抽象的类,我们要管理Window,自然就想到了WindowManager了,顾名思义嘛,window的管理者。所以这里也有个addView方法是从ViewGroup这里继承来的,所以ViewGroup其实和WindowManager的addView方法都继承自ViewManager,他们就像兄弟一样的关系,只不过ViewGroup里的addView方法添加的是View,WindowManager里的addView方法添加的是Window罢了。这里方法实现太长,只看关键部分。
2024-04-27 16:30:21
902
原创 一文搞懂Activity、Window和View的关系
对了,那window就可以类比成一张纸,在纸上我们就可以画画了,那画是不是就可以比作我们看到的手机界面了。那这里就涉及到了一个管理的类了,WindowManager,WindowManager是接口,所以需要实现后才能实例化,而唯一实现这个接口的就是WindowManagerImpl类,不过WindowManagerImpl类其实就是你那个什么都不会的领导,最后的活都是苦*的你来干,也就是WindowManagerGlobal,这里要是再详细说就要一点功夫了,今天先说到这。理解了这些概念就该看代码了。
2024-04-26 01:45:10
1002
1
原创 ViewRootImpl到底是什么
看这里,FrameLayout就是继承自ViewGroup,而ViewGroup又实现了ViewParent,其实我们常见的View都是继承自View并且实现了ViewParent,所以这里就可以看到ViewRootImpl和View是不一样的东西,而ViewRootImpl之所以能作为DecorView的ParentView就是因为他实现了ViewParent,所以他是可以作为View的父节点的,因为父节点的类型只要是ViewParent就行。然后再看到这里,很明显了吧,已经把view赋值给root了。
2024-04-24 01:16:26
292
原创 2020-12-01
写代码时碰到一个问题,想问问各位大佬为什么,下面的步骤是U的行列式是-1,V是-1, 2U*2V却等于3? Eigen::JacobiSVD<Eigen::Matrix3d> svd_slover(covge,Eigen::ComputeFullU | Eigen::ComputeFullV); MatXX U = svd_slover.matrixU(); MatXX V = svd_slover.matrixV(); MatXX D = svd_slover.singularValu
2020-12-01 11:09:38
113
原创 Jetson Xavier刷机以及安装ros
Jetson Xavier刷机以及安装sdkmanager最近入手一个xavier,刚到手随意弄了下,然后不知道怎么了就出了问题,sudo apt-get update报错,问了技术人员他们也不清楚,所以推荐我刷机…(很无语,如同网管的重启).于是我开启了自己的刷机之路,不断摸索花了我三天时间(主要是慢,而且报错,客服不理…)所以这里把自己踩得坑说一下,防止大家踩坑.这里参考了两篇博客,很不错的https://zhenkai.blog.csdn.net/article/details/1007023
2020-08-14 14:51:04
538
原创 在ubuntu16.04中通过vins-fusion跑含有gps信号的kitti数据集
在ubuntu16.04中通过vins-fusion跑含有gps信号的kitti数据集安装vins-fusion这里是vins-fusion的github连接:https://github.com/HKUST-Aerial-Robotics/VINS-Fusion这里没有什么问题,按照连接的指示来就行运行kitti数据集首先是下载kitti数据集,这部分必须翻墙,如果不想翻墙也可以通过我分享的百度云链接:复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.
2020-07-23 21:00:41
4552
35
原创 用小觅双目相机跑ORB-SLAM2
用小觅双目相机跑ORB-SLAM2首先是安装ros和小觅相机的SDK,安装ros这里就不再说明,其他博客都有,SDK也是在小觅官网上的,安装好了以后,创建工作空间,随意在一个文件夹下打开终端,输入mkdir catkin_wscd catkin_wsmkdir srccd srcgit clone https://github.com/slightech/MYNT-EYE-ORB-SL...
2019-12-05 14:14:53
1779
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人