
智能座舱
文章平均质量分 94
以实战为索引, 将整个智能座舱的应用框架层、framework层、硬件驱动层、MCU等串起来
lansus
早起入行智能座舱的技术学习者, 不断学习以及深耕智能座舱系统架构知识
展开
-
智能座舱进阶-FrameWork-PMS/WMS/AMS
系统中的一个系统服务,控制着窗口的显示和操作,它是WindowManager的实现类,处理窗口的实现、更新、删除等操作。就是在view的添加后, view的更新走到RootViewImpl的类中的view操作方法, 大家可以看https://blog.youkuaiyun.com/lansus/article/details/144744203?会通过Binder通信的方式发送id和content内容, WMS服务接收到后,就会将其添加到对应的层级SurfaceView上。每个activity只有一个主线程。原创 2025-01-07 11:22:12 · 672 阅读 · 0 评论 -
智能座舱进阶-FrameWork-系统启动流程
Zygote 进程都是通过fock 自身来创建子进程的,这样Zygote 进程以及它的子进程都可以进入app_main.cpp的main函数,因此main函数中为了区分当前运行在哪个进程,会在注释1处判断参数arg中是否包含了“–zygote”,如果包含了则说明main函数是运行在Zygote进程中的并在注释2处将zygote设置为ture。.等等,源码太长我就不放了。从目录上大致可以猜测,这两个init.rc使用场景不一样,一个是刷机用到的,也就是进入recorvery模式,一个是正常启动用到的;原创 2025-01-06 15:04:28 · 1059 阅读 · 0 评论 -
智能座舱进阶-应用框架层-Window&Activity渲染、View渲染&事件传递
今天这里我们聊四个话题:1. Activity的界面渲染过程;2. 子view的添加刷新过程3. WindowManager的添加渲染过程 【比如添加一个子window】4. view的渲染流程5. view的事件传递过程话题1:Activity的界面渲染过程。原创 2024-12-26 14:52:36 · 583 阅读 · 0 评论 -
智能座舱进阶-应用框架层-Handler分析
首先明确, handler是为了解决单进程内的线程之间的通信问题的。我也需要理解Android系统中进程和线程的概念, APP启动后,会有三四个线程启动起来,其中,有一条mainUITread的线程,专门用来处理UI事件,以及显示组件的生命周期,多个Activity的线程都是同一个。此外还要知晓,单进程内的多线程是共享内存、信号量、运行指令。如下图:除了私有栈区,不能相互共享, 代码的方法指令、数据都可以在进程内任意线程执行。这里大家先记住这点, 在后面的问题3的解释中会用到。原创 2024-12-20 17:31:19 · 1144 阅读 · 0 评论 -
智能座舱进阶-应用框架层-Jetpack主要组件
大家还是不要把ViewBinding和DataBinding这两个不要混淆了.ViewBindling 这是一个负责绑定View到代码,减少 findViewId降低空引用资源ID错误。使用起来也较为简单, 流程是:Android{第二就是需要在使用的Activity、fragment、view里面去初始化一下,inflate“) {第三步就可以直接引用使用了注意: viewBinding 目前能够支持所有Xml的控件进行自动绑定, 包含Activity、Fragment以及其他View等。原创 2024-12-19 11:58:35 · 1261 阅读 · 0 评论 -
智能座舱进阶-应用框架层-RecyclerView进阶
官方定义:RecyclerView 可以让您轻松高效地显示大量数据。您提供数据并定义每个列表项的外观,而 RecyclerView 库会根据需要动态创建元素。顾名思义,RecyclerView 会回收这些单个的元素。当列表项滚动出屏幕时,RecyclerView 不会销毁其视图。相反,RecyclerView 会对屏幕上滚动的新列表项重用该视图。RecyclerView 可提升性能和应用的响应速度,并降低功耗。具体如何使用,可以直接参考上面的Android官网链接, 我只赘述后面的不分原理部分。原创 2024-12-17 16:12:57 · 717 阅读 · 0 评论