当前位置: 首页 > news >正文

20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识

20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识
2025/1/18 15:12


缘起:做飞凌OK3588-C开发板/核心板【Linux R4】的时候,测试/生产要求没有开机LOGO【飞凌/Rockchip】
要求:黑屏或者中性界面。
这次决定也这样干。结果Vysor可以进Android的UI界面,LCD屏进不了。
于是将Rockchip给的BMP文件在WIN10自带的画图中给直接涂黑了!
【可能的原因:荣品不让拿掉LOGO文件 或者是 Android13系统要求的】使用ACD See 5.0很容易知道logo.bmp和logo_kernel.bmp都是256色的BMP文件。【654x270x256色】
如果使用WIN10自带的画图工具编辑之后保存成为24bit的BMP文件也是可以正常使用的。


https://doc.rpdzkj.cn/#/zh_cn/%E7%91%9E%E8%8A%AF%E5%BE%AE%E7%B3%BB%E5%88%97/%E7%91%9E%E8%8A%AF%E5%BE%AE%E9%80%9A%E7%94%A8%E6%96%87%E6%A1%A3/%E5%BC%80%E6%9C%BALogo%E4%B8%8E%E5%8A%A8%E7%94%BB
我们这边是建议修改中性的或者黑屏logo 
板子首先跑 uboot 接着跑kernel 再跑到系统,最后加载对应的应用,这个开机log 是在板子跑进系统前展示的画面,去不去掉并不影响开机时间,建议不要改显示的部分.直接去掉反而会对稳定性有影响


Xshell 8 (Build 0065)
Copyright (c) 2024 NetSarang Computer, Inc. All rights reserved.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 192.168.3.250:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-130-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 * Introducing Expanded Security Maintenance for Applications.
   Receive updates to over 25,000 software packages with your
   Ubuntu Pro subscription. Free for personal use.

     https://ubuntu.com/pro

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '22.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Your Hardware Enablement Stack (HWE) is supported until April 2025.
Last login: Sat Jan 18 11:03:55 2025 from 192.168.3.199
rootroot@rootroot-X99-Turbo:~$ cd Android13.0/
rootroot@rootroot-X99-Turbo:~/Android13.0$ ll
total 1160488
drwxrwxrwx  37 rootroot rootroot       4096 12月 10 16:32 ./
drwxr-xr-x  32 rootroot rootroot       4096 1月  18 14:47 ../
lrwxrwxrwx   1 rootroot rootroot         19 12月 10 10:06 Android.bp -> build/soong/root.bp
drwxrwxr-x  37 rootroot rootroot       4096 12月 10 10:06 art/
drwxrwxr-x  14 rootroot rootroot       4096 12月 10 10:06 bionic/
drwxrwxr-x   4 rootroot rootroot       4096 12月 10 10:06 bootable/
lrwxrwxrwx   1 rootroot rootroot         26 12月 10 10:06 bootstrap.bash -> build/soong/bootstrap.bash*
drwxrwxr-x   8 rootroot rootroot       4096 12月 10 10:06 build/
lrwxrwxrwx   1 rootroot rootroot         23 12月 10 10:06 BUILD -> build/bazel/bazel.BUILD
-rwxrwxr-x   1 rootroot rootroot      27397 12月 10 10:06 build.sh*
-rwxrwxr-x   1 rootroot rootroot      14109 12月 10 10:06 .classpath*
drwxrwxr-x  13 rootroot rootroot       4096 12月 10 10:06 cts/
drwxrwxr-x   7 rootroot rootroot       4096 12月 10 10:06 dalvik/
drwxrwxr-x   5 rootroot rootroot       4096 12月 10 10:06 developers/
drwxrwxr-x  20 rootroot rootroot       4096 12月 10 10:06 development/
drwxrwxr-x  11 rootroot rootroot       4096 12月 10 10:06 device/
drwxrwxr-x 385 rootroot rootroot      12288 1月  16 09:42 external/
drwxrwxr-x  16 rootroot rootroot       4096 12月 10 10:07 frameworks/
drwxrwxr-x   8 rootroot rootroot       4096 12月 10 10:12 .git/
-rw-rw-r--   1 rootroot rootroot         14 12月 10 10:06 .gitignore
drwxrwxr-x  19 rootroot rootroot       4096 12月 10 10:07 hardware/
-rw-rw-r--   1 rootroot rootroot        162 12月 10 10:07 javaenv.sh
drwxrwxr-x   5 rootroot rootroot       4096 12月 10 10:07 kernel/
drwxrwxr-x  26 rootroot rootroot       4096 1月  14 18:07 kernel-5.10/
-rw-rw-r--   1 rootroot rootroot 1128659893 12月 10 13:49 kernel-5.10b.tgz
drwxrwxr-x  19 rootroot rootroot       4096 12月 10 10:07 libcore/
drwxrwxr-x   9 rootroot rootroot       4096 12月 10 10:07 libnativehelper/
drwxrwxr-x  10 rootroot rootroot       4096 12月 10 10:07 mkcombinedroot/
-rwxrwxr-x   1 rootroot rootroot      10437 12月 10 10:07 mkimage_ab.sh*
-rwxrwxr-x   1 rootroot rootroot       8581 12月 10 10:07 mkimage.sh*
drwxrwxr-x  13 rootroot rootroot       4096 1月  18 11:07 out/
drwxrwxr-x   9 rootroot rootroot       4096 12月 10 10:08 packages/
drwxrwxr-x   5 rootroot rootroot       4096 12月 10 10:08 pdk/
drwxrwxr-x  10 rootroot rootroot       4096 12月 10 10:08 platform_testing/
drwxrwxr-x  32 rootroot rootroot       4096 12月 10 10:12 prebuilts/
-rwxrwxr-x   1 rootroot rootroot        519 12月 10 10:12 restore_patches.sh*
-rwxrwxr-x   1 rootroot rootroot      11096 12月 10 16:28 rk3566_android_serial*
-rwxrwxr-x   1 rootroot rootroot      11096 12月 10 13:59 rk3566_android_serial1*
-rwxrwxr-x   1 rootroot rootroot      11096 12月 10 14:09 rk3566_android_serial2*
-rwxrwxr-x   1 rootroot rootroot      11096 12月 10 15:31 rk3566_android_serial3*
drwxrwxr-x   9 rootroot rootroot       4096 1月  14 18:03 rkbin/
drwxrwxr-x   4 rootroot rootroot       4096 12月 10 10:06 RKDocs/
drwxrwxr-x   4 rootroot rootroot       4096 12月 10 10:12 rkst/
drwxrwxr-x   5 rootroot rootroot       4096 12月 10 10:06 RKTools/
drwxrwxr-x  13 rootroot rootroot       4096 1月  14 18:14 rockdev/
drwxrwxr-x  20 rootroot rootroot       4096 12月 10 10:12 sdk/
drwxrwxr-x  45 rootroot rootroot       4096 12月 10 10:12 system/
drwxrwxr-x  10 rootroot rootroot       4096 12月 10 10:12 test/
drwxrwxr-x   4 rootroot rootroot       4096 12月 10 10:12 toolchain/
drwxrwxr-x  23 rootroot rootroot       4096 12月 10 10:12 tools/
drwxrwxr-x  27 rootroot rootroot       4096 1月  14 18:08 u-boot/
-rw-rw-r--   1 rootroot rootroot   59383681 12月 10 13:48 u-boot1.tgz
drwxrwxr-x   4 rootroot rootroot       4096 12月 10 10:12 vendor/
lrwxrwxrwx   1 rootroot rootroot         27 12月 10 10:06 WORKSPACE -> build/bazel/bazel.WORKSPACE
rootroot@rootroot-X99-Turbo:~/Android13.0$ 
rootroot@rootroot-X99-Turbo:~/Android13.0$ 
rootroot@rootroot-X99-Turbo:~/Android13.0$ cd kernel-5.10/arch/arm64/boot/dts/
rootroot@rootroot-X99-Turbo:~/Android13.0/kernel-5.10/arch/arm64/boot/dts$ ll
total 532
drwxrwxr-x 34 rootroot rootroot   4096 1月  14 09:42 ./
drwxrwxr-x  3 rootroot rootroot   4096 1月  14 18:07 ../
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 actions/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 allwinner/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 altera/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 amazon/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 amd/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 amlogic/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 apm/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 arm/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 bitmain/
drwxrwxr-x  4 rootroot rootroot   4096 12月 10 10:07 broadcom/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 cavium/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 exynos/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 freescale/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 hisilicon/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 intel/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 lg/
-rw-rw-r--  1 rootroot rootroot    630 12月 10 10:07 Makefile
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 marvell/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 mediatek/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 microchip/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 nvidia/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 qcom/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 realtek/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 renesas/
drwxrwxr-x  3 rootroot rootroot   4096 12月  3 17:38 rockchip/
drwxrwxr-x  8 rootroot rootroot  32768 12月 10 10:07 rockchip00/
-rwx------  1 rootroot rootroot 110928 12月  3 17:51 rockchip14zuixiao_rongpin3566.tar.gz*
-rw-rw-r--  1 rootroot rootroot 125211 12月 14 17:13 rockchip15.tar.gz
-rw-rw-r--  1 rootroot rootroot 127495 1月  14 09:42 rockchip16.tar.gz
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 socionext/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 sprd/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 synaptics/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 ti/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 toshiba/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 xilinx/
drwxrwxr-x  2 rootroot rootroot   4096 12月 10 10:07 zte/
rootroot@rootroot-X99-Turbo:~/Android13.0/kernel-5.10/arch/arm64/boot/dts$ 
rootroot@rootroot-X99-Turbo:~/Android13.0/kernel-5.10/arch/arm64/boot/dts$ 
rootroot@rootroot-X99-Turbo:~/Android13.0/kernel-5.10/arch/arm64/boot/dts$ cd rockchip
rootroot@rootroot-X99-Turbo:~/Android13.0/kernel-5.10/arch/arm64/boot/dts/rockchip$ ll
total 228
drwxrwxr-x  3 rootroot rootroot   4096 12月  3 17:38 ./
drwxrwxr-x 34 rootroot rootroot   4096 1月  14 09:42 ../
-rwx------  1 rootroot rootroot  12808 12月  2 18:43 Makefile*
-rwx------  1 rootroot rootroot   1205 12月  2 18:43 rk3566.dtsi*
-rwx------  1 rootroot rootroot   1902 12月  2 18:43 rk3568-android.dtsi*
-rwx------  1 rootroot rootroot  11079 12月  2 18:43 rk3568-dram-default-timing.dtsi*
-rwx------  1 rootroot rootroot 105152 12月  2 18:43 rk3568.dtsi*
-rwx------  1 rootroot rootroot  62429 12月  2 18:43 rk3568-pinctrl.dtsi*
drwxrwxr-x  2 rootroot rootroot   4096 1月  14 18:03 rk356x/
-rwx------  1 rootroot rootroot   8206 12月  2 18:43 rockchip-pinconf.dtsi*
rootroot@rootroot-X99-Turbo:~/Android13.0/kernel-5.10/arch/arm64/boot/dts/rockchip$ 
rootroot@rootroot-X99-Turbo:~/Android13.0/kernel-5.10/arch/arm64/boot/dts/rockchip$ 
rootroot@rootroot-X99-Turbo:~/Android13.0/kernel-5.10/arch/arm64/boot/dts/rockchip$ grep bmp . -R
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,uboot = "logo.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,kernel = "logo_kernel.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,uboot = "logo.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,kernel = "logo_kernel.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,uboot = "logo.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,kernel = "logo_kernel.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,uboot = "logo.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,kernel = "logo_kernel.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,uboot = "logo.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,kernel = "logo_kernel.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,uboot = "logo.bmp";
./rk356x/.pro-rk3566.dtb.dts.tmp:    logo,kernel = "logo_kernel.bmp";
Binary file ./rk356x/pro-rk3566.dtb matches
./rk3568.dtsi:                logo,uboot = "logo.bmp";
./rk3568.dtsi:                logo,kernel = "logo_kernel.bmp";
./rk3568.dtsi:                logo,uboot = "logo.bmp";
./rk3568.dtsi:                logo,kernel = "logo_kernel.bmp";
./rk3568.dtsi:                logo,uboot = "logo.bmp";
./rk3568.dtsi:                logo,kernel = "logo_kernel.bmp";
./rk3568.dtsi:                logo,uboot = "logo.bmp";
./rk3568.dtsi:                logo,kernel = "logo_kernel.bmp";
./rk3568.dtsi:                logo,uboot = "logo.bmp";
./rk3568.dtsi:                logo,kernel = "logo_kernel.bmp";
./rk3568.dtsi:                logo,uboot = "logo.bmp";
./rk3568.dtsi:                logo,kernel = "logo_kernel.bmp";

rootroot@rootroot-X99-Turbo:~/Android13.0/kernel-5.10/arch/arm64/boot/dts/rockchip$ 

Z:\Android13.0\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3568.dtsi
Z:\Android13.0\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3568 - 副本.dtsi


    display_subsystem: display-subsystem {
        compatible = "rockchip,display-subsystem";
        memory-region = <&drm_logo>, <&drm_cubic_lut>;
        memory-region-names = "drm-logo", "drm-cubic-lut";
        ports = <&vop_out>;
        devfreq = <&dmc>;

        route {
            route_dsi0: route-dsi0 {
                status = "disabled";
                logo,uboot = "logo.bmp";
                logo,kernel = "logo_kernel.bmp";

                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp0_out_dsi0>;
            };
            route_dsi1: route-dsi1 {
                status = "disabled";
                logo,uboot = "logo.bmp";
                logo,kernel = "logo_kernel.bmp";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp0_out_dsi1>;
            };
            route_edp: route-edp {
                status = "disabled";
                logo,uboot = "logo.bmp";
                logo,kernel = "logo_kernel.bmp";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp0_out_edp>;
            };
            route_hdmi: route-hdmi {
                status = "disabled";
                logo,uboot = "logo.bmp";
                logo,kernel = "logo_kernel.bmp";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp1_out_hdmi>;
            };
            route_lvds: route-lvds {
                status = "disabled";
                logo,uboot = "logo.bmp";
                logo,kernel = "logo_kernel.bmp";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp1_out_lvds>;
            };
            route_rgb: route-rgb {
                status = "disabled";
                logo,uboot = "logo.bmp";
                logo,kernel = "logo_kernel.bmp";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp2_out_rgb>;
            };
        };
    };

修改成为:

    display_subsystem: display-subsystem {
        compatible = "rockchip,display-subsystem";
        memory-region = <&drm_logo>, <&drm_cubic_lut>;
        memory-region-names = "drm-logo", "drm-cubic-lut";
        ports = <&vop_out>;
        devfreq = <&dmc>;

        route {
            route_dsi0: route-dsi0 {
                status = "disabled";
                logo,uboot = "";
                logo,kernel = "";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp0_out_dsi0>;
            };
            route_dsi1: route-dsi1 {
                status = "disabled";
                logo,uboot = "";
                logo,kernel = "";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp0_out_dsi1>;
            };
            route_edp: route-edp {
                status = "disabled";
                logo,uboot = "";
                logo,kernel = "";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp0_out_edp>;
            };
            route_hdmi: route-hdmi {
                status = "disabled";
                logo,uboot = "";
                logo,kernel = "";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp1_out_hdmi>;
            };
            route_lvds: route-lvds {
                status = "disabled";
                logo,uboot = "";
                logo,kernel = "";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp1_out_lvds>;
            };
            route_rgb: route-rgb {
                status = "disabled";
                logo,uboot = "";
                logo,kernel = "";
                logo,mode = "center";
                charge_logo,mode = "center";
                connect = <&vp2_out_rgb>;
            };
        };
    };

相关文章:

20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识

20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识 2025/1/18 15:12 缘起&#xff1a;做飞凌OK3588-C开发板/核心板【Linux R4】的时候&#xff0c;测试/生产要求没有开机LOGO【飞凌/Rockchip】 要求&#xff1a;黑屏或者中性界面。…...

《Hands_On_LLM》8.3: 检索增强生成-RAG技术概论

3.检索增强生成 (Retrieval-Augmented Generation (RAG)) LLM 的大规模应用很快导致人们向它们提问&#xff0c;并期望得到符合实际的答案。虽然这些模型可以正确回答一些问题&#xff0c;但它们也自信地回答了许多错误的问题。为了纠正这种行为&#xff0c;业界转而采用的主要…...

CSS中样式继承+优先级

继承属性和非继承属性 一、定义及分类 1、继承属性是指在父元素上设置了这些属性后&#xff0c;子元素会自动继承这些属性的值&#xff0c;除非子元素显式地设置了不同的值。 常见的继承属性: 字体 font 系列文本text-align text-ident line-height letter-spacing颜色 col…...

Vue进阶之旅:核心技术与页面应用实战(路由进阶)

文章目录 一、路由模块封装二、声明式导航&#xff08;一&#xff09;导航链接与高亮&#xff08;二&#xff09;声明式导航传参1. 查询参数传参2. 动态路由传参 三、路由重定向、404 与模式设置&#xff08;一&#xff09;路由重定向&#xff08;二&#xff09;路由 404&#…...

单片机存储器和C程序编译过程

1、 单片机存储器 只读存储器不是并列关系&#xff0c;是从ROM发展到FLASH的过程 RAM ROM 随机存储器 只读存储器 CPU直接存储和访问 只读可访问不可写 临时存数据&#xff0c;存的是CPU正在使用的数据 永久存数据&#xff0c;存的是操作系统启动程序或指令 断电易失 …...

Vue.js 动态设置表格最大高度的实现

概述 在现代 Web 开发中&#xff0c;响应式设计至关重要&#xff0c;尤其是在处理复杂的布局和数据表格时。表格通常会受到多种因素的影响&#xff0c;如分页、合计行或动态内容&#xff0c;这可能导致表格高度的变化。本文将介绍一个基于 Vue.js 的方法 setMaxHeight&#xf…...

Java测试开发平台搭建(九)前端

1. 搭建前端vue环境 Vue3 安装 | 菜鸟教程 2. 创建项目 1.进入ui vue ui 2. create项目 3. 成功之后添加插件&#xff1a; cli-plugin-router vue-cli-plugin-vuetify 4. 添加依赖 axios 5. 点击任务开始运行 如果报错&#xff1a; 修改vue.config.jsconst { defineConfig }…...

MySQL多表查询练习

1.找出销售部门中年纪最大的员工的姓名 mysql> select name,age from dept a ,emp_new b where a.dept1b.dept2 and dept_name销售order by age desc limit 1; ------------ | name | age | ------------ | 荣七 | 64 | ------------ 1 row in set (0.00 sec) 2.求财务…...

低代码运维与管理服务

文章目录 前言一、服务内容二、服务范围三、服务流程四、服务交付件五、责任矩阵六、验收标准 前言 随着云计算技术的发展&#xff0c;数字化转型是企业的必然选择&#xff0c;企业需要实现广泛的连接并走向开放&#xff0c;传统集成工具无法满足当前企业面临的数字化转型诉求…...

【机器学习:三十二、强化学习:理论与应用】

1. 强化学习概述 **强化学习&#xff08;Reinforcement Learning, RL&#xff09;**是一种机器学习方法&#xff0c;旨在通过试验与反馈的交互&#xff0c;使智能体&#xff08;Agent&#xff09;在动态环境中学习决策策略&#xff0c;以最大化累积奖励&#xff08;Cumulative…...

解决wordpress媒体文件无法被搜索的问题

最近,我在wordpress上遇到了一个令人困扰的问题:我再也无法在 WordPress 的媒体库中搜索媒体文件了。之前,搜索媒体非常方便,但现在无论是图片还是其他文件,似乎都无法通过名称搜索到。对于我这样需要频繁使用图片的博主来说,这简直是个大麻烦。 问题源头 一开始,我怀…...

【2024年华为OD机试】(B卷,100分)- 增强的strstr (Java JS PythonC/C++)

一、问题描述 题目描述 C 语言有一个库函数 char *strstr(const char *haystack, const char *needle)&#xff0c;用于在字符串 haystack 中查找第一次出现字符串 needle 的位置&#xff0c;如果未找到则返回 null。 现要求实现一个 strstr 的增强函数&#xff0c;可以使用…...

【前端】CSS学习笔记

目录 CSS的简介CSS的概念语法 CSS的引入方式内联样式&#xff08;行内样式&#xff09;内部样式外部样式&#xff08;推荐&#xff09; 选择器全局选择器元素选择器类选择器ID选择器合并选择器后代选择器子选择器相邻兄弟选择器通用兄弟选择器伪类选择器:link:visited:hover:ac…...

项目架构调整,新增sunrays-combinations模块

文章目录 1.介绍2.环境搭建1.sunrays-framework下新建sunrays-combinations模块2.删除src3.pom.xml4.查看是否交给sunrays-framework管理5.删除sunrays-common中module引用的common-core-starter6.sunrays-combinations统一管理子模块7.common-all-starter的父模块修改为sunray…...

linux网络编程11——线程池

1. 线程池 1.1 池化技术原理 池化技术 当一个资源或对象的创建或者销毁的开销较大时&#xff0c;可以使用池化技术来保持一定数量的创建好的对象以供随时取用&#xff0c;于是就有了池式结构。常见的池式结构包括线程池、内存池和连接池。 池化技术应用的前提条件主要包括三…...

MySQL - 主从同步

​​​​​​1.主从同步原理&#xff1a; MySQL 主从同步是一种数据库复制技术&#xff0c;它通过将主服务器上的数据更改复制到一个或多个从服务器&#xff0c;实现数据的自动同步。 主从同步的核心原理是将主服务器上的二进制日志复制到从服务器&#xff0c;并在从服务器上执…...

基于微信小程序的安心陪诊管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

深入剖析iOS网络优化策略,提升App性能

一、引言 在当今移动互联网时代&#xff0c;iOS 应用的网络性能直接关系到用户体验。无论是加载速度缓慢、频繁的网络错误&#xff0c;还是高额的流量消耗&#xff0c;都可能导致用户流失。因此&#xff0c;iOS 网络优化成为开发者提升应用质量、增强用户满意度的关键环节。本文…...

游戏开发中常用的设计模式

目录 前言一、工厂模式二、单例模式三、观察者模式观察者模式的优势 四、状态模式状态模式的优势 五、策略模式策略模式的优势 六、组合模式七、命令模式八、装饰器模式 前言 本文介绍了游戏开发中常用的设计模式&#xff0c;如工厂模式用于创建对象&#xff0c;单例模式确保全…...

【PyCharm】远程连接Linux服务器

【PyCharm】相关链接 【PyCharm】连接Jupyter Notebook【PyCharm】快捷键使用【PyCharm】远程连接Linux服务器【PyCharm】设置为中文界面 【PyCharm】远程连接Linux服务器 PyCharm 提供了远程开发的功能&#xff0c;使得开发者可以在本地编辑代码或使用服务器资源。 下面将详…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...