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

ubuntu20.04 Android14编译环境配置

ubuntu 更新和必要安装

sudo apt update
sudo apt install git
sudo apt install python2-minimal
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
sudo update-alternatives --config python

repo配置

mkdir .bin
cp -a repo   ~/.bin/
vi .bashrc
# 加入:   
export PATH=/home/bsp/.bin/repo:$PATH

samba 配置

sudo vi /etc/samba/smb.conf
#添加
[xxx]
path = /data/xxx/xxx/
valid user = xxx
available=yes
browseable=no
public=no
writable=yes

用户添加和重启

sudo smbpasswd -a  xxx
sudo service smbd restart

window 打开samba

#win+r  
\\10.0.1.110\xxx

必要环境安装

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzipsudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386  x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzipsudo apt-get install  -y  git flex bison gperf build-essential libncurses5-dev:i386 sudo apt-get install  -y libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilibsudo apt-get install  -y tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo apt-get install  -y dpkg-dev libsdl1.2-dev libesd0-devsudo apt-get install  -y git-core gnupg flex bison gperf build-essential sudo apt-get install  -y zip curl zlib1g-dev gcc-multilib g++-multilib sudo apt-get install  -y libc6-dev-i386 sudo apt-get install  -y lib32ncurses5-dev x11proto-core-dev libx11-dev sudo apt-get install  -y lib32z-dev ccachesudo apt-get install  -y libgl1-mesa-dev libxml2-utils xsltproc unzip m4sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip libssl-dev

vim配置

sudo apt install vim
vi .bashrc
# 加入:   
export TERM=linux

创建 SWAP 文件 128G

sudo swapoff /swapfile
sudo rm /swapfilesudo dd if=/dev/zero of=/swapfile bs=128M count=1024ls -lh /swapfile
-rw------- 1 root root 128G 416 11:35 /swapfilesudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile# /etc/fstab 文件中添加一行:
/swapfile none swap sw 0 0

.vimrc配置

vim .vimrc

拷贝下面的文件按

set nocompatible
filetype on" 这里根据自己需要的插件来设置,以下是我的配置 "
"
" YouCompleteMe:语句补全插件
let g:ycm_collect_identifiers_from_tags_files = 1           " 开启 YCM基于标签引擎
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释与字符串中的内容也用于补全
let g:syntastic_ignore_files=[".*\.py$"]
let g:ycm_seed_identifiers_with_syntax = 1                  " 语法关键字补全
let g:ycm_complete_in_comments = 1
let g:ycm_confirm_extra_conf = 0                            " 关闭加载.ycm_extra_conf.py提示
let g:ycm_key_list_select_completion = ['<c-n>', '<Down>']  " 映射按键,没有这个会拦截掉tab, 导致其他插件的tab不能用.
let g:ycm_key_list_previous_completion = ['<c-p>', '<Up>']
let g:ycm_complete_in_comments = 1                          " 在注释输入中也能补全
let g:ycm_complete_in_strings = 1                           " 在字符串输入中也能补全
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释和字符串中的文字也会被收入补全
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
let g:ycm_show_diagnostics_ui = 0                           " 禁用语法检查
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"             " 回车即选中当前项
nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>     " 跳转到定义处
let g:ycm_min_num_of_chars_for_completion=2                 " 从第2个键入字符就开始罗列匹配项
""vim-airline配置:优化vim界面"
"let g:airline#extensions#tabline#enabled = 1
" airline设置
" 显示颜色
set t_Co=256
set laststatus=2
" 使用powerline打过补丁的字体
let g:airline_powerline_fonts = 1
" 开启tabline
let g:airline#extensions#tabline#enabled = 1
" tabline中当前buffer两端的分隔字符
let g:airline#extensions#tabline#left_sep = ' '
" tabline中未激活buffer两端的分隔字符
let g:airline#extensions#tabline#left_alt_sep = ' '
" tabline中buffer显示编号
let g:airline#extensions#tabline#buffer_nr_show = 1
" 映射切换buffer的键位
nnoremap [b :bp<CR>
nnoremap ]b :bn<CR>
" 映射<leader>num到num buffer
map <leader>1 :b 1<CR>
map <leader>2 :b 2<CR>
map <leader>3 :b 3<CR>
map <leader>4 :b 4<CR>
map <leader>5 :b 5<CR>
map <leader>6 :b 6<CR>
map <leader>7 :b 7<CR>
map <leader>8 :b 8<CR>
map <leader>9 :b 9<CR>" vim-scripts 中的插件 "
"ctags 配置:F3快捷键显示程序中的各种tags,包括变量和函数等。
map <F3> :TlistToggle<CR>
let Tlist_Use_Right_Window=1
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_WinWidt=25"NERDTree 配置:F2快捷键显示当前目录树
map <F2> :NERDTreeToggle<CR>
let NERDTreeWinSize=25 " 非 github 仓库的插件"
" Plugin 'git://git.wincent.com/command-t.git'
" 本地仓库的插件 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""新文件标题
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自动插入文件头 
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 
""定义函数SetTitle,自动插入文件头 
func SetTitle() "如果文件类型为.sh文件 if &filetype == 'sh' call setline(1, "##########################################################################") call append(line("."), "# File Name: ".expand("%")) call append(line(".")+1, "# Author: rock") call append(line(".")+2, "# mail: rock@163.com") call append(line(".")+3, "# Created Time: ".strftime("%c")) call append(line(".")+4, "#########################################################################") call append(line(".")+5, "#!/bin/sh")"call append(line(".")+6, "PATH=/home/edison/bin:/home/edison/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/work/tools/gcc-3.4.5-glibc-2.3.6/bin")call append(line(".")+7, "export PATH")call append(line(".")+8, "")else call setline(1, "/*************************************************************************") call append(line("."), "	> File Name: ".expand("%")) call append(line(".")+1, "	> Author: rcok") call append(line(".")+2, "	> Mail: rock@163.com ") call append(line(".")+3, "	> Created Time: ".strftime("%c")) call append(line(".")+4, " ************************************************************************/") call append(line(".")+5, "")endifif &filetype == 'cpp'call append(line(".")+6, "#include<iostream>")call append(line(".")+7, "using namespace std;")call append(line(".")+8, "")endifif &filetype == 'c'call append(line(".")+6, "#include<stdio.h>")call append(line(".")+7, "")endif"	if &filetype == 'java'"		call append(line(".")+6,"public class ".expand("%"))"		call append(line(".")+7,"")"	endif"新建文件后,自动定位到文件末尾autocmd BufNewFile * normal G
endfunc 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"键盘命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""nmap <leader>w :w!<cr>
nmap <leader>f :find<cr>" 映射全选+复制 ctrl+a
map <C-A> ggVGY
map! <C-A> <Esc>ggVGY
map <F12> gg=G
" 选中状态下 Ctrl+c 复制
vmap <C-c> "+y""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""实用设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设置当文件被改动时自动载入
set autoread
" quickfix模式
autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
"代码补全 
set completeopt=preview,menu 
"允许插件  
filetype plugin on
"共享剪贴板  
set clipboard=unnamed 
"从不备份  
set nobackup
"make 运行
:set makeprg=g++\ -Wall\ \ %
"自动保存
set autowrite
set ruler                   " 打开状态栏标尺
set cursorline              " 突出显示当前行
set magic                   " 设置魔术
set guioptions-=T           " 隐藏工具栏
set guioptions-=m           " 隐藏菜单栏
"set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
" 设置在状态行显示的信息
set foldcolumn=0
set foldmethod=indent 
set foldlevel=3 
set foldenable              " 开始折叠
" 不要使用vi的键盘模式,而是vim自己的
set nocompatible
" 语法高亮
set syntax=on
" 去掉输入错误的提示声音
set noeb
" 在处理未保存或只读文件的时候,弹出确认
set confirm
" 自动缩进
set autoindent
set cindent
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替制表符
set noexpandtab
" 在行和段开始处使用制表符
set smarttab
" 显示行号
set number
" 历史记录数
set history=1000
"禁止生成临时文件
set nobackup
set noswapfile
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"行内替换
set gdefault
"编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
" 总是显示状态行
set laststatus=2
" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2
" 侦测文件类型
filetype on
" 载入文件类型插件
filetype plugin on
" 为特定文件类型载入相关缩进文件
filetype indent on
" 保存全局变量
set viminfo+=!
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自动完成操作
set wildmenu
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=1
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
" 为C程序提供自动缩进
set smartindent
" 高亮显示普通txt文件(需要txt.vim脚本)au BufRead,BufNewFile *  setfiletype txt
"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
":inoremap { {<CR>}<ESC>O
":inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)if getline('.')[col('.') - 1] == a:charreturn "\<Right>"elsereturn a:charendif
endfunction
filetype plugin indent on 
"打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

.bashrc文件添加如下:

export TERM=linux
export PATH=/home/xxx/.bin/repo:$PATH

相关文章:

ubuntu20.04 Android14编译环境配置

ubuntu 更新和必要安装 sudo apt update sudo apt install git sudo apt install python2-minimal sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2 sudo upda…...

lombok requires enabled annotation processing

这个错误信息表明你在使用 Lombok 时&#xff0c;编译器无法正常工作&#xff0c;因为 注解处理器&#xff08;Annotation Processing&#xff09; 没有被启用。Lombok 是一个 Java 库&#xff0c;它通过注解处理器在编译时自动生成代码&#xff08;例如 Getter、Setter、NoArg…...

应用系统中的报表开发成本知多少?

应用系统的开发过程中&#xff0c;报表的业务虽然不算太难&#xff0c;但投入的开发成本可不一定小&#xff0c;因为总会有没完没了的报表要去做&#xff0c;成本的投入不容小觑 下面我们就来分析一下报表开发成本的构成&#xff0c;看看它是多是少 报表的开发成本&#xff0c…...

STM32F103ZET6移植FATFS文件系统教程(W25Q32)

一、FATFS核心特性 跨平台支持‌ 支持FAT12/FAT16/FAT32格式&#xff0c;兼容Windows文件系统‌&#xff1b; 采用标准C语言编写&#xff0c;代码量小且支持RTOS‌。 配置灵活性‌ 通过宏定义实现功能裁剪&#xff0c;例如&#xff1a; FF_FS_READONLY&#xff1a;设为1时禁…...

数据泄露防护系统:全面保护企业信息安全的功能解析

随着信息技术的快速发展&#xff0c;数据泄露事件频发&#xff0c;给企业带来了巨大的经济损失和声誉损害。为了有效应对这一挑战&#xff0c;越来越多的企业开始部署专业的数据泄露防护&#xff08;DLP&#xff09;系统。安固软件作为一款领先的数据防泄漏解决方案&#xff0c…...

【野火模型】利用深度神经网络替代 ELMv1 野火参数化:机制、实现与性能评估

目录 一、ELMv1 野火过程表示法&#xff08;BASE-Fire&#xff09;关键机制野火模拟的核心过程 二、采用神经网络模拟野火过程三、总结参考 一、ELMv1 野火过程表示法&#xff08;BASE-Fire&#xff09; ELMv1 中的野火模型&#xff08;称为 BASE-Fire&#xff09;源自 Commun…...

【WPF】 在WebView2使用echart显示数据

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、NuGet安装WebView2二、代码部分1.xaml中引入webview22.编写html3.在WebView2中加载html4.调用js方法为Echarts赋值 总结 前言 为了实现数据的三维效果&…...

java实现二叉树的前序、中序、后序遍历(递归和非递归方式)以及层级遍历

java实现二叉树的前序、中序、后序遍历以及层级遍历 一、二叉树节点定义二、递归方式1.前序遍历2.中序遍历3.后序遍历 三、非递归方式1.前序遍历2.中序遍历3.后序遍历4.层级遍历5.分层打印 四、测试用例 一、二叉树节点定义 class TreeNode {int val;TreeNode left;TreeNode r…...

学习笔记十三—— 理解 Rust 闭包:从语法到 impl Fn vs Box<dyn Fn>

&#x1f9e0; 理解 Rust 闭包&#xff1a;从语法到 impl Fn vs Box &#x1f4da; 目录 闭包是什么&#xff1f;和普通函数有什么不同&#xff1f;闭包的语法长什么样&#xff1f;闭包“捕获变量”是什么意思&#xff1f;闭包和所有权的关系Fn、FnMut、FnOnce 三种闭包类型的…...

Linux虚拟机filezilla总是连不上

刚好有两个虚拟机&#xff0c;测试了一下问题所在 从第一个到第二个需要设置什么 image PNG 68.59KB image PNG 134.39KB ChatGLM 从第一个到第二个需要设置开启ssh服务&#xff0c;具体步骤如下&#xff1a; 输入以下命令来启动SSH服务&#xff1a; bash 复制 sud…...

NO.94十六届蓝桥杯备战|图论基础-单源最短路|常规dijkstra|堆优化dijkstra|bellman-ford|spfa(C++)

在图G中&#xff0c;假设 v i v_{i} vi​和 v j v_{j} vj​为图中的两个顶点&#xff0c;那么 v i v_{i} vi​到 v j v_{j} vj​路径上所经过边的权值之和就称为带权路径⻓度。 由于 v i v_{i} vi​到 v j v_{j} vj​的路径可能有多条&#xff0c;将带权路径⻓度最短的那条路径…...

DISCO:利用大型语言模型提取反事实

DISCO: Distilling Counterfactuals with Large Language Models - ACL Anthologyhttps://aclanthology.org/2023.acl-long.302/ 1. 概述 尽管在自然语言处理(NLP)领域针对各种推理任务取得了巨大进展(Wang 等, 2018, 2019a;Xu 等, 2020),但数据集偏差仍然是构建鲁棒模型…...

若依微服务版启动小程序后端

目录标题 本地启动&#xff0c;dev对应 nacos里的 xxx-xxx-dev配置文件 本地启动&#xff0c;dev对应 nacos里的 xxx-xxx-dev配置文件...

C语言 - 深拷贝与浅拷贝详解

深拷贝与浅拷贝详解 在 C 语言编程中&#xff0c;处理指针和动态内存是常见任务。在涉及数据拷贝操作时&#xff0c;我们经常会听到“深拷贝”和“浅拷贝”这两个术语。理解它们之间的区别对于避免程序中的内存错误和数据覆盖问题至关重要。 本文将全面讲解 C 语言中的深拷贝与…...

Serverless集群搭建:Knative

文章目录 Knative搭建1.准备工作安装Kubernetes安装 Istio 2.部署Knative Knative搭建 搭建流程图&#xff1a; 1.准备工作 准备工作 ● 本安装操作中的步骤 bash 适用于 MacOS 或 Linux 环境。对于 Windows&#xff0c;某些命令可能需要调整。 ● 本安装操作假定您具有现有…...

今日行情明日机会——20250416

指数在区间震荡&#xff0c;还需要等突破下跌趋势企稳 2025年4月16日涨停的主要行业方向分析 1. 外贸&#xff08;9家涨停&#xff09; 细分领域&#xff1a;跨境物流、纺织出口、供应链服务。代表个股&#xff1a; 五板&#xff1a;泰慕士&#xff08;纺织服装出口龙头&…...

STM32基础教程——DMA

目录 前言 ​编辑 技术实现 接线图 代码实现 技术要点 DMA时钟 DMA初始化 DMA数据传输设置 数据改变与显示 实验结果 问题记录 前言 DMA(Direct Memory Access)直接存储器存取&#xff0c;用来提供在外设和存储器 之间或者存储器和存储器之间的高速数据传输。无需…...

Node.js 中文件系统模块(`fs`)的详细总结,包括定义、作用、各种写入方式及使用场景

Node.js 中文件系统模块&#xff08;fs&#xff09;的详细总结&#xff0c;包括定义、作用、各种写入方式及使用场景&#xff1a; &#x1f9e9; 一、fs 模块简介 ✅ 定义 fs&#xff08;File System&#xff09;是 Node.js 官方内置模块&#xff0c;用于实现对文件和目录的操…...

MyBatis与MyBatis-Plus:字段自动填充的两种实现方式

目录 1. 使用 MyBatis 拦截器实现字段自动填充 2. 使用 MyBatis-Plus 实现字段自动填充 1. 使用 MyBatis 拦截器实现字段自动填充 实现步骤 创建拦截器 实现 MyBatis 的 Interceptor 接口&#xff0c;通过拦截 MyBatis 执行的 SQL 操作来自动填充公共字段 Intercepts({Signa…...

比特率、码元速率(波特率)的定义、关系及相关计算公式

一、相关定义 &#xff08;一&#xff09;比特率 比特率&#xff08;Bit Rate&#xff09;&#xff1a;单位时间内传输的二进制比特数&#xff0c;是信息传输速率的度量。单位&#xff1a;比特每秒&#xff08;bit/s&#xff0c;bps&#xff09;。公式&#xff1a;比特率 传…...

炫云平台全面支持Blender4.4云渲染

随着世界渲染大赛众多优秀作品被大家关注&#xff0c;Blender作为建模渲染一体化的软件&#xff0c;也是众多3D艺术家最常用的软件之一。云渲染自然是提升创作效率必不可少的工作。这篇文章说一下炫云云渲染平台近期对Blender云渲染支持的情况。 首先&#xff0c;炫云客户端已经…...

Python自学第1天:变量,打印,类型转化

突然想学Python了。经过Deepseek的推荐&#xff0c;下载了一个Python3.12安装。安装过程请自行搜索。 乖乖从最基础的学起来&#xff0c;废话不说了&#xff0c;上链接&#xff0c;呃&#xff0c;打错了&#xff0c;上知识点。 变量的定义 # 定义一个整数类型的变量 age 10#…...

Flutter 从零到一

iOS 调试与开发工具指南 真机调试 Xcode run 在控制台获取 Dart VM service URIVSCode 点击 Cmd Shift P 选择 Debug: Attach to Flutter on Device粘贴 the URI 后点击 Enter 对于iOS开发者来说&#xff0c;使用appuploader这样的iOS开发助手可以简化真机调试的准备工作。…...

ocr-身份证正反面识别

在阿里云官网&#xff0c;申请一个token [阿里官方]身份证OCR文字识别_API专区_云市场-阿里云 (aliyun.com) 观察一下post请求body部分json字符串&#xff0c;我们根据这个创建一个java对象 先默认是人像面 public class IdentityBody {public String image;class configure…...

深入解析Spring Boot核心组件及其关键功能

【版本&#xff1a;spring-boot-2.1.3.RELEASE】 深入Spring Boot核心组件 Spring Boot是一个流行的框架&#xff0c;简化了基于Spring的应用程序的开发和部署。它通过自动配置和“开箱即用”的特性&#xff0c;使得开发者可以快速启动和运行应用程序。在Spring Boot中&#x…...

JVM 调优不再难:AI 工具自动生成内存优化方案

在 Java 应用程序的开发与运行过程中&#xff0c;Java 虚拟机&#xff08;JVM&#xff09;的性能调优一直是一项极具挑战性的任务&#xff0c;尤其是内存优化方面。不合适的 JVM 内存配置可能会导致应用程序出现性能瓶颈&#xff0c;甚至频繁抛出内存溢出异常&#xff0c;影响业…...

分层式设备控制架构、分布式微服务架构及插件化架构

在现代高端装备制造&#xff08;如半导体设备、精密自动化系统&#xff09;中&#xff0c;分层式设备控制架构、分布式微服务架构和插件化架构是提升系统灵活性、实时性和可扩展性的核心技术。以下从设计原理、实现方式及行业应用三个维度展开说明&#xff1a; &#xfffc; 1.…...

上门服务 APP 30 亿营收商业模式在乌干达的技术赋能与实践

不久前&#xff0c;非洲乌干达出现黑人女技师提供上门足疗服务的消息引发关注。据了解&#xff0c;当地一次40分钟的上门按摩服务仅需约40元人民币&#xff0c;价格仅为国内同类服务的十分之一。这一现象折射出全球健康服务行业正在经历的数字化转型浪潮。 国内领先的上门服务平…...

Chemical Review IF=51.4 综述 | 柔性机器人的当下与未来:材料、技术与应用的深度融合

2025.03.31. 新加坡南洋理工大学研究团队在《Chemical Reviews》期刊上发表 “Soft Materials and Devices Enabling Sensorimotor Functions in Soft Robots” 综述型文章。软机器人的传感器运动功能对其与环境交互至关重要&#xff0c;本文全面综述了相关软材料和设备。传感技…...

Python抽象基类

abstractmethod 详解 abstractmethod 是 Python 中 abc 模块&#xff08;Abstract Base Classes&#xff0c;抽象基类&#xff09;提供的一个装饰器&#xff0c;用于定义抽象方法。抽象方法是一种在基类中声明但不实现具体逻辑的方法&#xff0c;强制子类必须实现该方法。以下…...

计算机网络中各种物理量的单位总结

在计算机网络中&#xff0c;数据速率的单位容易混淆&#xff0c;以下是清晰总结&#xff1a; 一、基本单位区分 比特&#xff08;bit&#xff09;与字节&#xff08;Byte&#xff09; 小写 b 表示 比特&#xff08;bit&#xff09;&#xff0c;是数据传输的基本单位。 大写 B…...

PCIE网卡驱动DMA初始化配置

1. DMA 启用的时机 e1000e 驱动在 设备初始化阶段 启用 DMA&#xff0c;具体步骤如下&#xff1a; (1) PCIe 设备初始化 调用路径&#xff1a; e1000_probe() → e1000_sw_init() → e1000_init_hw() → e1000_configure() 关键操作&#xff1a; 启用 PCIe 设备的 DMA 主控模…...

音视频小白系统入门笔记-1

本系列笔记为博主学习李超老师课程的课堂笔记&#xff0c;仅供参阅 课程传送门&#xff1a;音视频小白系统入门课 音视频基础ffmpeg原理 往期课程笔记传送门&#xff1a;音视频小白系统入门笔记-0 课程实践代码仓库&#xff1a;传送门 音频采集 命令行采集 Android端音频…...

技术速递|使用 BrowserStack App Automate 和 Appium UI 测试 .NET MAUI 应用

作者&#xff1a;Sweeky&Gerald 排版&#xff1a;Alan Wang 本文是 Gerald 的博客《开始使用 Appium 测试 .NET MAUI 应用的 UI 》中创建的 .NET MAUI – 使用 Appium 和 NUnit 进行 UI 测试的续篇。 在本篇博客中&#xff0c;我们将了解如何使用 BrowserStack App Automa…...

在多系统环境中实现授权闭环,Tetra Pak 借助CodeMeter打造食品工业的安全自动化体系

一、 行业背景与安全新挑战 在食品加工自动化不断深化的背景下&#xff0c;食品安全、功能安全与知识产权保护的需求日益迫切。Tetra Pak 作为全球领先的食品加工和包装解决方案提供商&#xff0c;业务遍布 160 多个国家&#xff0c;涵盖从配料混合、碳酸化处理到全线自动包装。…...

Nginx+SpringBoot跨域那些事儿(多域名跨域加强版——Nginx配置详解)

嘿,小伙伴们,咱们接着上回书说到,当你的应用需要支持多个域名跨域访问时,Nginx+SpringBoot这对黄金搭档绝对是你的不二之选!今天,咱们就深入聊聊如何在Nginx中配置多个域名跨域,让你的应用更加灵活、强大! 一、跨域问题再科普(多域名跨域场景) 在前后端分离开发中,…...

基于Python的App流量大数据分析与可视化方案

一、引言 App流量数据通常包括用户的访问时间、停留时间、点击行为、页面跳转路径等信息。这些数据分散在不同的服务器日志、数据库或第三方数据平台中&#xff0c;需要通过有效的技术手段进行整合和分析。Python在数据科学领域的广泛应用&#xff0c;得益于其简洁的语法、强大…...

windows下使用nginx + waitress 部署django

架构介绍 linux一般采用nginx uwsgi部署django&#xff0c;在Windows下&#xff0c;可以取代uwsgi的选项包括Waitressa、Daphnea、Hypercoma和Gunicorna(通过WSLa 运行)。windows服务器一般采用nginx waitress 部署django&#xff0c;,他们的关系如下 django是WEB应用…...

openssh离线一键升级脚本分享(含安装包)

查看当前的版本 [rootmyoracle ~]#ssh -V相关安装包下载地址 openssh下载地址&#xff1a;http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssl下载地址&#xff1a;https://www.openssl.org/source/zlib下载地址&#xff1a;http://www.zlib.net/今天演示从7.4升级…...

【专题刷题】双指针(二)

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代码&#xff1b;&#xff08;2&#xff09;优质解法 优质代码&#xff1b;&#xff…...

Ubuntu服务器中了木马且处于局域网内无法直接通过公网正向连接

如果你的Ubuntu服务器中了木马且处于局域网内无法直接通过公网正向连接,可以尝试以下方法进行应急响应和恢复控制: 一、尝试通过局域网内部访问(优先方案) 如果攻击者未完全封锁你的权限,且你有局域网内其他机器的控制权: 通过跳板机连接: 使用同一局域网内的其他机器…...

Day09 【基于LSTM实现文本加标点的任务】

基于LSTM实现文本加标点的任务 目标数据准备参数配置数据处理模型构建定义模型结构前向传播方法优化器选择 主程序测试与评估类初始化模型评估统计记录显示统计结果 测试结果 目标 本文基于给定的词表&#xff0c;将输入的文本基于jieba分词分割为若干个词&#xff0c;然后基于…...

SQL刷题日志(day2)

1、timestampdiff&#xff1a;计算时间间隔 timestampdiff(unit,start_date,end_date) 参数说明&#xff1a; unit&#xff1a;返回的时间单位&#xff0c;如minute,hour等start_date&#xff1a;开始日期end_date&#xff1a;结束日期 2、dense_rank&#xff08;&#xff…...

仿 ElementUI 搭建自己的 vue 组件库

仿 ElementUI 搭建自己的 vue 组件库 一、创建 my-ui-can 项目1. 新建项目2. 自定义组件3. 创建 MyButton 组件4. 导出组件5. package.json 二、发布到 npm 仓库1. npm 账号注册&#xff08;忽略&#xff09;2. 发布 my-ui-can 二、项目引用 my-ui-can 依赖包方式一&#xff1a…...

CentOS 操作系统下搭建 tsung性能测试环境

写在前面 为何这么安装,实际就是这么做的,这是经过好几次实践得出的经验总结。 这为了让大家更清楚的知道怎么安装 tsung性能测试环境,按步照搬的安装即可。 步骤 1、 下载软件安装包 CentOS-6.0-x86_64-bin-DVD1.iso jdk-6u4-linux-x64-rpm.bin erlang: otp_src_1…...

基于YOLOv9的课堂行为检测系统

基于YOLOv9的课堂行为检测系统 项目概述 本项目是一个基于YOLOv9深度学习模型的课堂行为检测系统&#xff0c;旨在通过计算机视觉技术自动识别和监测课堂中学生的各种行为状态&#xff0c;帮助教师更好地了解课堂教学效果。 项目结构 课堂行为检测/ ├── data/ │ ├──…...

Linux常见工具的基本使用,同时介绍了编译过程和动/静态链接的原理

目录 一、工具的本质 二、一些常用的工具 1.yum 2.vim 1&#xff09;vim的三种基本模式&#xff1a; 2&#xff09;vim的基本操作 ①命令模式下的基本操作&#xff1a; ②插入模式&#xff1a; ③底行模式&#xff1a; 3&#xff09;vim的配置&#xff1a;让他变得更好用 3.gcc…...

6.(vue3.x+vite)动态挂载组件并传递参数和方法

1:效果截图 2:父组件代码 <template><div id="cesiumID"></div><div>子组件使用方法传递给父组件的值:{...

大数据人工智能

在大数据人工智能领域&#xff0c;需要具备多种算法和深度学习知识&#xff0c;以下是一些常见的&#xff1a; 机器学习算法 - 线性回归&#xff1a;用于建立输入特征与连续型输出变量之间的线性关系&#xff0c;常用于预测数值型数据。 - 逻辑回归&#xff1a;主要用于二分类…...

Vue3 nextTick

nextTick 是 Vue 中非常重要的一个 API&#xff0c;它允许你在 DOM 更新周期后执行延迟回调。 核心源码位置 Vue3 的 nextTick 实现主要在 packages/runtime-core/src/scheduler.ts 文件中。 基本实现 const resolvedPromise Promise.resolve() as Promise<any> let …...