- 博客(29)
- 收藏
- 关注
原创 汽车ADAS
ADAS(高级驾驶辅助系统)是一系列旨在提升驾驶安全性和舒适性的技术,通过传感器和摄像头等设备实时监测车辆周围环境,提供预警和辅助功能。这些功能通过传感器、摄像头、雷达和软件算法实现,能够减少事故、提升驾驶舒适度,并为自动驾驶技术奠定基础。
2025-02-12 11:24:35
335
原创 Android.mk编写教程
注意,Android.mk使用相对路径,如果是写成LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/src/*.cpp)在运行mma编译时就会报错。
2025-02-10 15:50:43
160
原创 android skia渲染介绍
Skia 是一个开源的 2D 图形库,它被广泛应用于 Android 的图形渲染中,负责绘制 UI 元素、文本、图像以及其他 2D 图形内容。在 Android AOSP 中,Skia 是渲染系统的核心组件之一,贯穿了整个图形绘制流程。是一个跨平台的 2D 图形库,支持多种平台和设备(如 Android、Chrome、Flutter 等)。Android 的渲染系统默认会启用硬件加速,除非开发者显式关闭(例如在。Skia 的设计目标是提供高效、跨平台的 2D 图形渲染能力。
2025-02-07 17:44:44
1052
1
原创 汽车电子相关的协议UDS、DOIP、CAN
DoIP 协议是现代汽车电子系统中一种重要的诊断和维护工具,它通过使用以太网为车辆的诊断提供更高的带宽和更快的通信速度。随着汽车电子化、智能化的进展,DoIP 将在未来的汽车诊断、故障检测和系统维护中发挥越来越重要的作用。CAN协议是一种高效、可靠、实时的通信协议,广泛应用于汽车、工业自动化、医疗设备等领域。它的高抗干扰能力、实时性和错误检测机制使其在复杂环境中表现出色。随着汽车和嵌入式系统的电子化程度不断提高,CAN协议仍将在未来的智能交通、自动驾驶等技术中发挥重要作用。
2025-01-08 21:43:46
2004
原创 android surefaceflinger
是操作系统中的一个关键系统服务,用于管理和合成显示设备上的图形内容。它的核心职责是将来自不同应用程序的图形缓冲区组合在一起,最终生成一个合成的帧并显示在屏幕上。通过以上方法,可以研究 SurfaceFlinger 的工作原理、性能优化,并解决常见问题。Perfetto 是一个强大的系统性能分析工具,可以跟踪 SurfaceFlinger 的行为。代码实现与调试的方法,包括如何研究其源码、调试流程,以及如何通过工具分析其行为。如果需要在 SurfaceFlinger 中添加自定义调试信息,可以修改。
2025-01-07 09:23:06
836
原创 Android开发里的界面布局
在 Android 开发中,布局(Layout)是用来组织和排列界面控件的容器。用于简单的界面设计,所有子控件堆叠在一起,后添加的控件会覆盖前面的控件。使子控件可以滚动(只支持一个子控件,通常是布局容器)。一个强大的布局,可以通过约束定义子控件的位置和大小。通过选择合适的布局,可以实现高效且易维护的界面设计!允许子视图相对于父布局或其他子视图进行定位。以网格形式排列子控件,支持跨行或跨列。将子视图排列成表格结构,子视图用。按顺序排列子视图,分为水平排列(通过明确指定子控件的。
2025-01-06 10:08:59
1174
原创 Android Button使用方法
可以在 XML 布局文件中定义一个Button< Button android: id = " @+id/myButton " android: layout_width = " wrap_content " android: layout_height = " wrap_content " android: text = " 点击我 " />
2025-01-06 10:05:07
781
原创 go any关键字用法介绍
any 是 Go 1.18 及以后版本对 interface{} 的替代,使代码更加语义化。例如这样的代码`map[string]any`,这是是一个键为字符串类型,值为任意类型的映射。
2024-11-16 22:10:39
299
1
原创 go设计模式教程之:单例模式
单例模式(Singleton Pattern)是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一的实例。单例模式在很多情况下都是有用的,特别是当一个对象需要跨系统共享数据时,或者当创建对象需要消耗大量资源时(如访问数据库的连接对象)。单例模式的关键是私有化其构造函数,以防止外部通过new操作符创建类的实例,同时提供一个公共的静态方法用来获取这个唯一实例。
2024-01-31 21:42:34
1385
4
原创 go设计模式教程之:观察值模式
观察者模式(Observer Pattern),也称为发布-订阅(Publish-Subscribe)模式,是一种常用的设计模式,属于行为型模式。这种模式用于建立对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。主题(Subject):主题是观察者模式中的核心。它维护一系列观察者,提供用于增加或删除观察者的方法,并在其内部状态发生变化时通知所有观察者。观察者(Observer):观察者订阅主题的状态变化。
2024-01-31 21:35:21
902
1
原创 go泛型介绍
在 Go 1.18 版本中,Go 语言引入了对泛型的支持,这是一种在类型之间共享代码的方式。泛型是一种编程语言特性,允许开发者在多种类型之间共享代码。这意味着开发者可以创建一个函数或类型,而不必指定所有可能的输入类型。相反,这些类型可以在函数或类型被实际使用时指定。这允许更高的代码重用性和类型安全性。
2023-11-09 21:30:08
173
1
原创 数据库的列索引有什么作用,怎么设置,有哪些要求
创建索引:在表的列上创建索引,可以使用数据库管理系统提供的命令或者图形界面工具来完成。一般来说,可以通过指定要创建索引的列名和索引类型来创建索引。修改索引:可以修改索引的定义,例如修改索引的列、索引类型等。需要注意的是,过多或不必要的索引可能会导致性能下降和额外的存储开销。选择性越高,索引的效果越好。删除索引:如果不再需要某个索引,可以使用数据库管理系统提供的命令或者图形界面工具来删除索引。频繁修改索引列的值会导致索引的维护成本增加。唯一性:索引的值必须是唯一的,即每个索引值只能对应一个数据行。
2023-08-29 22:10:30
364
1
原创 服务端开发时,数据库记录删除为什么采用逻辑删除不用物理删除
在某些情境中,逻辑删除是最佳选择,而在其他情境中,物理删除可能更为合适。: 新的开发人员可能不知道逻辑删除的概念或如何正确处理逻辑删除的记录,这可能导致数据的不一致或其他问题。: 通过先进行逻辑删除,然后在低流量时段批量进行物理删除,可以确保应用的性能不会在高峰时段受到影响。: 物理删除是永久性的,而逻辑删除为开发者和数据库管理员提供了一个安全网,以防止不正确的删除操作。: 在关系型数据库中,如果一个表的记录作为其他表的外键存在,那么物理删除可能会引发外键约束问题。
2023-08-29 21:50:16
779
1
原创 gorm学习笔记01
(3) 定义结构体(参考gorm.io文档的预览tab页内容),使用AutoMigrate将go结构体同步到数据库表结构,注意在定义结构体时,默认需要添加一个参数。是一个用于快速同步数据模型与数据库表结构的工具,但在部署到生产环境之前,建议仔细检查和测试迁移。go mod初始化 go mod init gostudy2023。结构体,并确保数据库中存在相应的表和列。(1) 配置全局logger。
2023-08-28 23:17:30
235
1
原创 mysql如何查询数据库里的表
要在MySQL中查询数据库里的所有表,你可以使用。使用命令行工具登录到MySQL数据库。来选择你要查询的数据库。来查看该数据库中的所有表。
2023-08-28 23:08:33
6748
2
转载 golang package教程
Go语言中支持模块化的开发理念,在Go语言中使用包(package)来支持代码模块化和代码复用。一个包是由一个或多个Go源码文件(.go结尾的文件)组成,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmtosio等。例如,在之前的章节中我们频繁使用了fmt这个内置包。") }上面短短的几行代码就涉及到了如何定义包以及如何引入其它包两个内容,接下来我们依次介绍一下它们。我们可以根据自己的需要创建自定义包。一个包可以简单理解为一个存放.go文件的文件夹。该文件夹下面的所有.go。
2023-04-08 20:00:13
538
1
原创 grpc的四种数据流
grpc 中的 stream,srteam 顾名思义 就是 一种 流,可以源源不断的 推送 数据,很适合 传输一些大数据,或者 服务端 和 客户端 长时间 数据交互,比如 客户端 可以向 服务端 订阅 一个数据,服务端 就 可以利用 stream ,源源不断地 推送数据。
2023-03-28 22:08:27
408
原创 go gRPC入门
先安装protoc链接下载后将bin目录添加到pathprotoc本身并不支持Golang,需要额外安装对应的插件方法1,使用go install @latest安装方法2,在一个已经包含go.mod文件的项目里使用安装成功后,会在$GOPATH/bin目录下生成两个2进制文件参考 https://blog.youkuaiyun.com/weixin_42216109/article/details/125273585proto文件。
2023-03-27 23:44:20
145
1
转载 Go语言基础之map
Go语言中map其中,KeyType:表示键的类型。ValueType:表示键对应的值的类型。map类型的变量默认初始值为nil,需要使用make()函数来分配内存。其中cap表示map的容量,该参数虽然不是必须的,但是我们应该在初始化map的时候就为其指定一个合适的容量。
2022-11-07 16:16:16
242
转载 Go语言基础之切片
其中,name:表示变量名T:表示切片中的元素类型// 声明切片类型 var a [ ] string //声明一个字符串切片 var b = [ ] int {} //声明一个整型切片并初始化 var c = [ ] bool {false , true } //声明一个布尔切片并初始化 var d = [ ] bool {
2022-11-07 15:37:56
261
原创 go数组用法
go支持数组类型,数组是同一种数据类型元素的集合。使用时可以修改数组成员,但是数组大小不可变化。数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1,访问越界(下标在合法范围之外),则触发访问越界,会panic。
2022-11-07 12:34:18
399
转载 go语言基础之基本数据类型
Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。
2022-11-07 10:42:02
105
原创 go开发环境安装
Go 语言是由谷歌公司在 2007 年开始开发的一门语言,目的是能在多核心时代高效编写网络应用程序。Go 语言的创始人 Robert Griesemer、Rob Pike 和 Ken Thompson 都是在计算机发展过程中作出过重要贡献的人。自从 2009 年 11 月正式公开发布后,Go 语言迅速席卷了整个互联网后端开发领域,其社区里不断涌现出类似 vitess、Docker、etcd、Consul 等重量级的开源项目。
2022-11-04 13:12:39
1534
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人