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

Tina_Linux量产测试使用指南_new

OpenRemoved_Tina_Linux_量产测试_使用指南_new

1 概述

文档主要描述如何配置tinatest 并搭建量产测试环境。

1.1 编写目的

• 介绍量产配置方法;
• 介绍量产测试环境搭建流程;
• 介绍如何使用dragonMAT 软件;
• 方便开发人员按照说明进行量产环境的搭建。

1.2 适用范围

适用于Tina 3.0 之后的Tina Linux。

1.3 相关人员

量产测试人员和tinatest 开发或应用人员。

2 配置

2.1 TinaTest 配置

在tina/目录下执行”make menuconfig” 进行配置:

image-20230104120106024

选择TestTools->tinatest->System Config->global->outlog,这里选择DragonMAT:

image-20230104120117902

DragonMAT 有三个子项可供选择:

配置项含义
wait_till_connected等待dragonMAT 连接上设备,再进行测试。
exit_when_end当测试结束时退出dragonMAT。
exit_call在DragonMAT 测试通过,结束前调用执行对应的文件

这里选中wait_till_connected,exit_when_end,exit_call 根据需要选择。

image-20230104120131531

Exit 到TestTools->tinatest 界面,选择base,进行量产测试用例的选择:

image-20230104120141328

选择base 下的production,该选项下的所有测试用例都是量产测试用例,可根据测试需求进行
选择。其名称格式为:+ “tester”。
例如:cameratester 就是测试camera 的测试用例。

!image-20230104120154071

打开每一个测试用例,能够对用例进行配置。每一个测试用例的具体配置请参考“2.2 用例配
置”。在对tinatest 及其测试用例进行配置后,即可选择Save,点击OK 保存配置,进行固件的
编译或者ipk 包的编译。

image-20230104120204971

2.2 用例配置

一般来说,只要在base->production 下选中测试用例,使用默认配置即可。
但对于某些特殊的测试用例(硬件相关&特殊需求),请根据实际情况更改配置,以确保测试的
准确性。测试用例的正确执行有两个前提:1. 测试用例及其依赖被正确安装;2. 测试用例被正确
配置。
在menuconfig 中选中测试用例后,进入该测试用例的配置菜单。例如:pmutester 的配置菜
单。

image-20230104120214224

测试用例配置项分为普通配置项和高级配置项:
普通配置项用于修改测试用例的测试参数,例如上图第二行的axp_name,则修改pmu 测试用
例的芯片名为axp803。
高级配置项用于控制测试用例的测试行为,只有在使能了Advanced 时才会显示。例如
run_times 配置执行次数,command 配置脚本执行命令等。
一般情况下,修改普通配置项即可完成测试,不需要使用高级配置项。高级配置项每一项的含义
请参考文档《Tina Linux Tinatest 测试使用指南》。
以下用例配置都是在base->production 下选中了对应测试用例的情况下进行的配置。

2.2.1 cameratester

测试camera 模块功能:加水印、连拍、改分辨率。
a. 安装
在命令行中进入内核根目录,执行make menuconfig 进入配置主界面,并按以下配置路径操作
选择编译camera 相关模块:

Kernel modules
└─>Video Support└─>kmod-sunxi-vfe

首先选择Kernel modules 进入下一项配置,如下图所示:

image-20230104120232198

一些平台由于框架不同(如V853),选择video 的modules 会有不同,如下:

Kernel modules
└─>Video Support└─>kmod-vin-v4l2

image-20230104120240043

说明
要选择当前要测试的板子上对应的camera 模块。

b. 私有配置
无需额外配置。

2.2.2 sdcardtester

测试sd 卡功能。
a. 安装
base->production 中选中sdcardtester 即可。
b. 私有配置
无需额外配置。

2.2.3 nandtester

测试nand flash 功能。

a. 安装
base->production 中选中nandtester 即可。
b. 私有配置
无需额外配置。

2.2.4 tptester

测试触摸屏功能。
a. 安装
在tina 根目录执行make menuconfig 进入配置主界面,并按以下配置路径操作选择触摸屏模
块:

Kernel modules
└─>Input modules└─>kmod-touchscreen-gt82x

image-20230104120250639

说明
根据当前所用触摸屏选择对应的模块,例如当前选用的是gt82x 触摸屏。
b. 私有配置
tp_name: 触摸屏的名称。
touch_times: 触摸次数。

2.2.5 pmutester

测试电源管理模块功能。
a. 安装
base->production 中选中pmutester 即可。
b. 私有配置
axp_name: 设备端所使用的电源管理芯片。

板子与axp_name 对应关系如下:

板子axp_name
R16axp22_board
R40axp221s
R18axp803
R818axp803
MR813axp803
v853axp2101

2.2.6 keytester

测试按键功能。
a. 安装
在tina 根目录中执行make kernel_menuconfig 进入配置主界面,并按以下配置路径操作选择
编译:

Device Drivers
└─>Input device support└─>Keyboards└─>softwinner KEY BOARD support

image-20230104125135875

b. 私有配置
number_of_keys: 根据实际板子的按键情况,配置按键数目,一般开发板上adc 按键都是5
个,而测试keytester 默认配置是2 个。

2.2.7 rtctester

测试rtc 功能。
a. 安装
base->production 中选中rtctester 即可。
b. 私有配置
无需额外配置。

2.2.8 wifitester

测试wifi 是否正常启动。

a. 安装

  1. base->production->wifi 中选中wifitester。
  2. 配置。
    内核配置:
  1. AP6212/AP6212A 等芯片,在Tina 根目录下执行:
$ make kernel_menuconfig

选择编译Broadcom 无线网卡驱动为模块
wifi:(编译成模块)

Device Drivers --->Network device support --->Wireless LAN ---><M> Broadcom FullMAC wireless cards support(/lib/firmware/fw_bcmdhd.bin) Firmware path(/lib/firmware/nvram.txt) NVRAM path
  1. RTL8188EU,在Tina 目录下执行:
make kernel_menuconfig

选择编译RTL8188EU 为模块

Device Drivers --->Network device support --->Wireless LAN ---><M> Realtek 8188E USB WIFI
  1. XR819 在Tina 目录下执行:
$ make kernel_menuconfig

选择编译XRadio 无线网卡驱动为模块

wifi:(编译成模块)
Device Drivers --->Network device support --->Wireless LAN ---><M> XRadio WLAN support --->

Tina 配置:

  1. AP6212/AP6212A 等芯片,在Tina 目录下执行:
$ make menuconfig

以AP6216 为例,选中使用AP6212,系统就会将AP6212 的驱动模块拷贝到制定位置,使得
系统固件烧写后在Tina 系统中保存,并且在系统启动时能够自动加载。以下配置实现WIFI 驱动
拷贝以及开机自动加载:

Kernel modules--->Wireless Drivers---><*> kmod-net-broadcom

以下配置编译拷贝wifi 的firmware:

Firmware---><*> ap6212-firmware.
  1. RTL8188EU,内核选定之后,Tina 进行相关配置,在Tina 目录下执行:
$ make menuconfig

选中使用RTL8188EU,系统就会将RTL8188EU 的驱动模块拷贝到制定位置,使得系统固件
烧写后在Tina 系统中保存,并且在系统启动时能够自动加载。以下配置实现wifi 驱动的拷贝以
及开机自动加载:

Kernel modules--->Wireless Drivers---><*> kmod-net-rtl8188eu

以下配置编译拷贝wifi 的firmware

Firmware---><*> r8188eu-firmware.
  1. XR819 在Tina 目录下执行:
$ make menuconfig

选中使用XR819,系统就会将XR819 的驱动模块拷贝到制定位置,使得系统固件烧写后在Tina
系统中保存,并且在系统启动时能够自动加载。以下配置实现WIFI 驱动拷贝以及开机自动加载:

Kernel modules--->Wireless Drivers--->-*- komd-cfg8021...<*> kmod-xradio-xr819

以下配置编译拷贝wifi 的firmware:

Firmware---><*> xr819-firmware.

b. 私有配置
max_test_times: 最大测试次数。

2.2.9 emmctester

测试emmc 功能。
a. 安装
base->production 中选中emmctester 即可。
b. 私有配置
can_format: 是否可以格式化。

2.2.10 satatester

测试sata 功能。
a. 安装
base->production 中选中satatester 即可。
b. 私有配置
format: 是否可以格式化。

2.2.11 batterytester

测试电池功能。
a. 安装
base->production 中选中batterytester 即可。
b. 私有配置
无需额外配置。

2.2.12 ledarraytester

测试mic 板上led 阵列的功能。
a. 安装

在tina/目录下执行make menuconfig 后,选择Utilities->led_test:

image-20230104125153054

b. 私有配置
无需额外配置。

2.2.13 displaytester

测试display 模块功能。
a. 安装

  1. base->production->displaytester 下根据测试需要选择相应测试用例:

    hdmitester:测试HDMI功能是否正常,HDMI能否正常输出
    brightnesstester:测试LCD的背光亮度调节功能
    smartbacklighttester:测试智能背光功能是否正常
    fbviewertester:测试能否正常显示bmp,jpeg,png图片在屏幕上
    fbshottester:获取framebuffer信息,并保存成bmp格式的图片
    capturetester:测试截屏功能
    fbtester:测试framebuffer是否正常工作
    yuviewtester:测试yuv格式图片是否显示正常
    smartcolortester:测试smartcolor功能是否正常
    
    1. tina/目录下执行make menuconfig,选中Kernel modules->Video Support->kmodsunxi-
      disp & kmod-sunxi-hdmi

    image-20230104125213512

b. 私有配置

screen_id是屏幕的id,可赋值0或1,默认是0
hdmitester:disp_tv_mode是显示的模式,暂时该值不起作用,默认是9
brightnesstester:brightness是初始屏幕背光亮度,可赋值0到200,默认是80
smartbacklighttester:
fbviewertester:
fbshottester:fb_id是framebuffer的id,根据在小机端生成的设备节点赋值,默认是0
capturetester:layer_id是图层id,可以赋值0到11,默认是0,R16上赋值为3channel_id是通道id,可以赋值0到4,默认是0,R11与F35赋值为2layer_num是图层数,可以是0到11,默认是1,一般此参数不用修改
fbtester:
yuviewtester:
smartcolortester:enhance_enable是否启用smartcolor模式,可赋值0或1,0表示不启用,1表示启用,默认是1enhance_mode是增强模式,默认是8bright是亮度,可赋值0到100,默认是50contrast是对比度,可赋值0到100,默认是50saturation是饱和度,可赋值0到100,默认是50hue是色相,可赋值0到100,默认是50window_x,window_y,window_width,window_height是窗口坐标与宽高,默认(0,0,800,1280)其中bright,contrast,saturationhue,window_x,window_y,window_width,window_height参数只在R6,R16平台上有效,其他平台直接设置启用smartcolor模式即可

2.2.14 ledstester

测试板载led 功能。
a. 安装
base->production 下选中ledstester 即可。
b. 私有配置
无需额外配置。

2.2.15 otgtester

测试usb otg 功能。
a. 安装
base->production 下选中otgtester 即可。
b. 私有配置
usb_count: 插入usb 数量。
usbctler: usb 控制器数量。

2.2.16 hosttester

测试usb 功能。
a. 安装

base->production 下选中hosttester 即可。
b. 私有配置
usb_count: 插入usb 数量。

2.2.17 udisktester

测试usb 输入设备功能。
a. 安装
base->production 下选中udisktester 即可。
b. 私有配置
usb_count: 插入usb 数量。

2.2.18 uarttester

测试uart 收发功能。
a. 安装
base->production 下选中udisktester,dts 使能对应uart 端口,硬件连接tx、rx。
b. 私有配置

uart_port:需要测试的uart端口
uart_baud:uart波特率
test_cycles:测试收发次数
test_bytes_per_cycle:单次收发字节数

2.2.19 ethtester

测试eth 以太网连接功能。
a. 安装
base->production 下选中ethtester,硬件连接以太网口。
在tina 根目录下运行make kernel_menuconfig,选择:

Device Drivers >
Network device support >
Ethernet driversupport >
<*> Allwinner GMAC support
[*] Use extern phy

b. 私有配置
无需额外配置。

2.2.20 regutester

测试regularot 电压设置读取等功能。
a. 安装
base->production 下选中regutester。
b. 私有配置
无需额外配置。
说明
目前该测试只用于R818 和MR813。

2.2.21 pintester

测试排针引脚gpio 输入输出功能。
a. 安装
base->production 下选中pintester。
b. 私有配置

gpio_num:所以测试的pin组数,比如说要测试一组pin,则是有两个gpio的pin引脚。
input_io:测试输入功能的GPIO,每增加一个GPIO,两个GPIO之间只需用括号相隔即可,如:PA1,PB12
output_io:测试输出能的GPIO,其余同上。
版

3 测试环境搭建

1、研发人员打开dragonMAT 目录下的global.ini 文件,根据《dragonMAT 使用说明文档》
中2.1 节,结合测试需求对dragonMAT 进行配置,修改后保存。
2、研发人员配置好Tina & tinatest 后,编译出固件,并烧写到TF 卡。
3、研发人员将tina/out/< 方案名称,如: tulip-noma>/staging_dir/target/rootfs/etc/tinatest.json
放到PC 端指定目录,方便工人加载使用。

4 量产测试流程

4.1 准备测试

1、打开电脑上的量产测试软件。

image-20230104125241552

2、点击启动控制台。
3、将TF 卡插入样板对应位置。
4、样板连接电源线上电启动。
5、用USB 线,将样板与电脑连接。测试开始。
4.2 开始测试
1、在插入USB 线后,测试自动开始,如图。绿色的勾,表示测试通过;红色的叉,表示测试失
败。转圈圈,表示正在测试中。

image-20230104125254444

2、测试项目也有可能会让您进行选择,如(是/否),这时请根据测试项目上的提示信息进行选
择,点击“是” 或者“否” 即可。

image-20230104125307262

3、测试项目也有可能会让您填入某些信息,比如wifi 密码或者一串数字等等, 如图为输入AXP
的name。
请根据提示信息,在“提交” 按钮上方的白色对话框中输入内容,点击提交。
image-20230104125317741

4.3 测试结果

只有当该样板(某一列)全部测试项目通过时,这一列全部都是绿色的对勾,则表示这块样板,
测试通过。

image-20230104125328742g)

5 各平台Tinatest 场景验证表

以下表格是登记各平台验证Tinatest 主要的场景验证情况。

模块/平台v85x
outlong->DragonMAT
domo-
base->wifi-
base->bt-
base->ethnet
stress->store->fulldisk
stress->store->power-fail
spec->store->rand
spec->store->seq
spec->store->tina_seq

注:
测试通过。

[外链图片转存中…(img-NnfPpGCt-1677465249903)]g)

5 各平台Tinatest 场景验证表

以下表格是登记各平台验证Tinatest 主要的场景验证情况。

模块/平台v85x
outlong->DragonMAT
domo-
base->wifi-
base->bt-
base->ethnet
stress->store->fulldisk
stress->store->power-fail
spec->store->rand
spec->store->seq
spec->store->tina_seq

注:
√:已验证通过-:未验证

相关文章:

Tina_Linux量产测试使用指南_new

OpenRemoved_Tina_Linux_量产测试_使用指南_new 1 概述 文档主要描述如何配置tinatest 并搭建量产测试环境。 1.1 编写目的 • 介绍量产配置方法&#xff1b; • 介绍量产测试环境搭建流程&#xff1b; • 介绍如何使用dragonMAT 软件&#xff1b; • 方便开发人员按照说明…...

STC32单片机 普通 I/O 口中断功能介绍和使用

STC32单片机 普通 I/O 口中断功能和使用✨STC32单片机普通 I/O 口中断&#xff0c;不是传统外部中断. &#x1f516;手册上描述&#xff1a;STC32G 系列支持所有的 I/O 中断&#xff0c;且支持 4 种中断模式&#xff1a;下降沿中断、上升沿中断、低电平中断、高电平中断。每组 …...

计算机学生如何找到第一份实习?

作为一名计算机专业的学生&#xff0c;找到第一份实习是非常重要的一步&#xff0c;它不仅可以帮助你更好地了解行业&#xff0c;增加实践经验&#xff0c;还可以为即将到来的校招提供有力支持。计算机专业的校招&#xff0c;每年都在变得越来越卷。5年前&#xff0c;可能你只要…...

《Python机器学习》基础代码

1&#xff0c;要学习Python机器学习,第一步就是读入数据,这里我们以读入excel的数据为例,利用jupyter notebook来编码,具体教程看这个视频 推荐先上传到jupyter notebook,再用名字.xlsx来导入 Jupyter notebook导入Excel数据的两种方法介绍_哔哩哔哩_bilibili 2&#xff0c;…...

【前端】JS异步加载

文章目录为什么要异步加载如何实现异步加载参考为什么要异步加载 两个原因其实是一个意思。 原因1&#xff1a; JS是单线程的语言&#xff0c;它会同步的执行代码&#xff0c;从上往下执行 但是&#xff0c;一旦网络不好&#xff0c;或要加载的js文件过大的话&#xff0c;会…...

【MySQL】SQL语言的五个部分

DQL 数据查询语言&#xff08;Data Query Language&#xff0c;DQL&#xff09;&#xff1a;DQL主要用于数据的查询&#xff0c;其基本结构是使用SELECT子句&#xff0c;FROM子句和WHERE子句的组合来查询一条或多条数据。 DML 数据操作语言&#xff08;Data Manipulation La…...

详细的IO面试题汇总

IO 流简介 IO 即 Input/Output&#xff0c;输入和输出。数据输入到计算机内存的过程即输入&#xff0c;反之输出到外部存储&#xff08;比如数据库&#xff0c;文件&#xff0c;远程主机&#xff09;的过程即输出。数据传输过程类似于水流&#xff0c;因此称为 IO 流。IO 流在…...

在Linux终端管理你的密码!

大家好&#xff0c;我是良许。 现在是互联网时代&#xff0c;我们每天都要跟各种 APP 、网站打交道&#xff0c;而这些东西基本上都需要注册才可以使用。 但是账号一多&#xff0c;我们自己都经常记不清对应的密码了。有些小伙伴就一把梭&#xff0c;所有的账号密码都是一样。…...

【设计模式】策略模式在Java工程中应用

在之前的文章中&#xff0c;曾经给大家介绍过策略模式&#xff1a;【设计模式】策略模式&#xff0c;在该篇文章中&#xff0c;我们曾很清楚的说到&#xff0c;策略模式主要解决的问题是&#xff1a;在有多种算法相似的情况下&#xff0c;解决使用 if...else 所带来的复杂和难以…...

Linux驱动开发工程师需要掌握哪些技能?

一、前言 Linux驱动开发是一项高度技术性的工作&#xff0c;需要深厚的编程技能和对计算机硬件的深入理解。随着物联网、人工智能等领域的快速发展&#xff0c;Linux驱动开发工程师的需求日益增加。在这篇文章中&#xff0c;我将为您介绍一条Linux驱动开发工程师的学习路线&am…...

【人脸识别】FROM:提升遮挡状态下的人脸识别效果

论文题目&#xff1a;《End2End Occluded Face Recognition by Masking Corrupted Features》 论文地址&#xff1a;https://arxiv.org/pdf/2108.09468v3.pdf 代码地址&#xff1a;https://github.com/haibo-qiu/from 1.前言 人脸识别技术已经取得了显著的进展&#xff0c;主要…...

浏览器缓存

什么是缓存? 当第一次访问网站的时候,比如www.baidu.com,电脑会图片,文件等下载下来,当第二次访问网站的时候,网站就会直接被加载出来. 缓存的好处? 减轻服务器压力,减少请求的放松.提高性能,在本地打开资源肯定比在服务器上获取要快减少宽带的消耗,当我们使用缓存时,只会…...

【软考 系统架构设计师】论文范文③ 论数据访问层设计技术及其应用

>>回到总目录<< 文章目录 论数据访问层设计技术及其应用范文摘要正文论数据访问层设计技术及其应用 在信息系统的开发与建设中,分层设计是一种常见的架构设计方法,区分层次的目的是为了实现“高内聚低耦合”的思想。分层设计能有效简化系统复杂性,使设计结构清…...

802.11 MCS 的最低SNR分析

常常看到这样的表格: 那么这个SNR如何而来? 看看RSSI和SNR的关系,它们之间隔了一个noise floor。从表格看得出,这个底噪在-80~-90之间。 而SNR的核心,也有类似的原因,它和BER有关。...

用于C++的对象关系映射库—YB.ORM

1 介绍YB.ORM YB.ORM 旨在简化与关系数据库交互的 C 应用程序的开发。 对象关系映射器(ORM) 通过将数据库表映射到类并将表行映射到应用程序中的对象来工作&#xff0c;这种方法可能不是对每个数据库应用程序都是最佳的&#xff0c;但它被证明在需要复杂逻辑和事务处理的应用程…...

Cesium 100K数据加载 支持弹窗 动态更改位置

前言&#xff1a;今天总结关于point、label、billboard海量数据加载。后续会研究下大量model加载以及大bim(几百G上T)模型记载 海量点加载 弹窗 加载点位时&#xff0c;不加载弹窗。点击点位时在加载弹窗&#xff0c;及有效的减少加载量&#xff0c;优化性能。 const handler …...

MySQL管理表

在创建表时需要提前了解mysql里面的数据类型 常见的数据类型 创建表 创建表方式1&#xff1a; 格式&#xff1a; CREATE TABLE [IF NOT EXISTS] 表名( 字段1, 数据类型 [约束条件] [默认值], 字段2, 数据类型 [约束条件] [默认值], 字段3, 数据类型 [约束条件] [默认值], ………...

【Java 面试合集】打印一个int整数的32位表示

打印一个int整数的32位表示 1. 概述 嗨&#xff0c;大家好【Java 面试合集】又来了&#xff0c;今天给大家分享的主题是打印一个int整数的32位表示. 2. 32位分析 2.1 为什么是32位呢 不知道看到这篇文章的各位是否都知道&#xff0c;一个int类型的表示方式就是32位呢&#x…...

这样在管理后台里实现 403 页面实在是太优雅了

前言403 页面通常表示无权限访问&#xff0c;与 404 页面代表着不同含义。而大部分管理后台框架仅提供了 404 页面的支持&#xff0c;但却忽略了对 403 页面的处理&#xff0c;有的框架虽然也有对 403 页面的处理&#xff0c;但处理效果却不尽人意。那怎么样的 403 页面才是即好…...

c++提高篇——STL常用算法

STL常用算法一、常用遍历算法一、for_each 遍历容器二、transform 搬运容器到另一个容器中二、常用查找算法一、find二、find_if三、adjacent_find四、binary_search五、count六、count_if三、常用排序算法一、sort二、random_shuffle三、 merage四、reverse四、常用拷贝和替换…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...