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

CentOS服务器网页版Rstudio-server及R包批量安装最佳实践

CentOS服务器安装网页版Rstudio-server及R包批量安装

以下为CentOS 7/8的Rstudio-server安装、配置和R包安装操作

1. 软件包安装

Centos 7安装

# 下载安装包,大小115.14 MB 
wget -c https://download2.rstudio.org/server/centos7/x86_64/rstudio-server-rhel-2023.09.1-494-x86_64.rpm# 安装
sudo yum install rstudio-server-rhel-2023.09.1-494-x86_64.rpm

Centos 8安装

# 下载安装包,大小110.57 MB
wget https://download2.rstudio.org/server/rhel8/x86_64/rstudio-server-rhel-2023.09.1-494-x86_64.rpm# 安装
sudo yum install rstudio-server-rhel-2023.09.1-494-x86_64.rpm

2. 开放访问端口

# 查询rstudio-server服务运行状态
sudo systemctl status rstudio-server# 永久开放8787端口,用于Web访问
sudo firewall-cmd --zone=public --add-port=8787/tcp --permanent# 重启防火墙
sudo systemctl restart firewalld

3. 浏览器访问Rstudi-server

server-ip为服务器IP地址,例如192.168.1.10
打开浏览器输入以下地址

# 查询服务器IP地址
ifconfig 

启动Rstudi-server Web程序

http:// server-ip:8787

# 关闭rstudio-server服务
sudo systemctl stop rstudio-server
# 启动有报错,使用下列命令查询错误
sudo rstudio-server verify-installation
# 重启rstudio-server服务
sudo systemctl stop rstudio-server

服务器账号密码登录

登录界面

4. 主题配置

全局选项主题选择

5. 下载源配置和R包批量下载

Ctrl + Shift + N 新建一个Rscript
R包批量下载参考生信技能树

# 配置下载源为清华镜像
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options()$repos ################## R包批量下载 ###################
# 常用安装包,可自行添加
listOfPackages <- c("shiny","tidyr",'tidyverse', "clusterProfiler","DT","ashr","enrichplot","plotly","ALL","CLL","dbplyr","GEOquery")# listOfPackages 为待安装的包
allPackages = rownames(installed.packages())
save(allPackages,file = 'allPackages.Rdata')# 检查 listOfPackages 列表中包是否安装
newPackages <- listOfPackages[!(listOfPackages %in% installed.packages()[,"Package"])]
newPackages# 检查待安装的包与已安装的包是否存在差异
packageToInstall <- setdiff(listOfPackages, installed.packages())
packageToInstallif(T){# BiocManager安装包lapply(packageToInstall, function(x){BiocManager::install(x,ask = F,update = F)})
}
################## 等待R包批量安装 #################### 载入 listOfPackages 中安装包
lapply(intersect(listOfPackages, installed.packages()),function(x){# 不输出安装报错suppressPackageStartupMessages(library(x,character.only = T))
})

800个R包安装

将上述Rscript中的listOfPackages 变量替换为以下变量即可

listOfPackages <- "abind, acepack, ade4, ADGofTest, afex, affxparser, affy, 
affyio, AIMS, airway, ALL, amap, AnnoProbe, annotate, AnnotationDbi, 
AnnotationFilter, AnnotationHub, ape, aplot, aroma.light, arules, 
arulesViz, askpass, assertthat, backports, base, base64, base64enc, 
base64url, BayesFactor, bayestestR, bbmle, bdsmatrix, beachmat, beanplot, 
beeswarm, benchmarkme, benchmarkmeData, BH, bibtex, Biobase, BiocFileCache, 
BiocGenerics, BiocIO, BiocManager, BiocNeighbors, BiocParallel, BiocSingular, 
BiocVersion, biocViews, biomaRt, Biostrings, biovizBase, bit, bit64, bitops, 
blob, bluster, boot, bootstrap, brew, bridgesampling, brio, Brobdingnag, 
broom, broom.mixed, broomExtra, BSgenome, bslib, bumphunter, BWStest, ca, 
cachem, callr, car, carData, caret, caTools, ccdrAlgorithm, cellranger, 
checkmate, ChIPpeakAnno, ChIPseeker, chron, circlize, class, cli, clipr, 
clisymbols, CLL, clue, cluster, clusterProfiler, ClusterR, cmprsk, coda, 
codetools, coin, colorspace, colourpicker, combinat, cometExactTest, commonmark,
compiler, ComplexHeatmap, conquer, ConsensusClusterPlus, contfrac, copula, 
corpcor, correlation, corrplot, cowplot, cpp11, crayon, credentials, crosstalk,
ctc, curl, cutoff, data.table, datasets, datawizard, DBI, dbplyr, dbscan, DDRTree, 
DelayedArray, DelayedMatrixStats, deldir, dendextend, densityClust, DEoptimR, desc,
DescTools, DESeq2, deSolve, devtools, dichromat, diffobj, digest, diptest, 
discretecdAlgorithm, do, DO.db, docopt, doParallel, doRNG, DOSE, dotCall64, 
downloader, dplyr, dqrng, DT, dtplyr, dynamicTreeCut, e1071, EDASeq, edgeR, 
effectsize, egg, ellipse, ellipsis, elliptic, emmeans, EMT, enrichplot, 
EnsDb.Hsapiens.v75, ensembldb, estimability, europepmc, evaluate, Exact, 
exactRankTests, exomeCopy, ExperimentHub, expm, ez, factoextra, FactoMineR,
fansi, farver, fastcluster, fastGHQuad, fastICA, fastmap, fastmatch, FD, 
FDb.InfiniumMethylation.hg19, ff, fgsea, fields, filelock, fit.models, 
fitdistrplus, flashClust, flexmix, FNN, fontawesome, forcats, foreach, 
foreign, formatR, Formula, fpc, fs, furrr, futile.logger, futile.options, 
future, future.apply, gameofthrones, gapminder, gargle, gbRd, gclus, gdata, 
genefilter, genefu, geneplotter, generics, genomation, GenomeInfoDb, GenomeInfoDbData,
GenomicAlignments, GenomicFeatures, GenomicRanges, geometry, GEOquery, gert, GetoptLong, 
GGally, ggbeeswarm, ggbio, ggcorrplot, ggdendro, ggExtra, ggforce, ggfortify, ggfun, 
ggnetwork, ggplot2, ggplotify, ggpubr, ggraph, ggrepel, ggridges, ggrisk, ggsci, ggsignif, 
ggstatsplot, ggtext, ggthemes, ggtree, gh, git2r, gitcreds, gld, glmnet, glmSparseNet, GlobalOptions, 
globals, glue, gmodels, gmp, gnm, GO.db, goftest, googledrive, googlesheets4, GOplot, GOSemSim, 
gower, GPArotation, gplots, graph, graphics, graphite, graphlayouts, grDevices, grid, gridBase, 
gridExtra, gridGraphics, gridtext, GSEABase, gsl, gsubfn, GSVA, gtable, gtools, harrypotter, hash, 
haven, HDF5Array, here, hexbin, hgu133a.db, hgu133a2.db, hgu133plus2.db, hgu95av2.db, highr, Hmisc, 
hms, howmany, HSMMSingleCell, htmlTable, htmltools, htmlwidgets, httpuv, httr, 
hugene10sttranscriptcluster.db, hwriter, hypergeo, iC10, iC10TrainingData, ica, idr, ids, igraph, 
illuminaHumanv3.db, illuminaio, impute, ini, inline, insight, InteractionSet, interactiveDisplayBase, 
ipred, IRanges, IRdisplay, IRkernel, irlba, isoband, iterators, jackstraw, jcolors, jmv, jmvcore, jomo,
eg, jquerylib, jsonlite, KEGGREST, kernlab, KernSmooth, km.ci, KMsurv, knitr, kSamples, labeling, 
labelled, laeken, lambda.r, LaplacesDemon, lars, later, lattice, latticeExtra, lava, lavaan, lazyeval, 
leaps, learnr, leiden, lfa, libcoin, lifecycle, limma, linprog, listenv, lme4, lmerTest, lmom, lmtest, 
locfdr, locfit, logspline, loo, loose.rock, lpSolve, lsei, lubridate, lumi, made4, maftools, magic, 
magick, magrittr, manipulate, manipulateWidget, mapproj, maps, maptools, markdown, MASS, Matching, 
MatchIt, mathjaxr, matlab, Matrix, MatrixGenerics, MatrixModels, matrixStats, maxstat, mbkmeans, mc2d, 
mclust, mcmc, MCMCpack, memoise, memuse, metaBMA, metafor, metap, metaplus, metapod, methods, methylumi, 
mets, mgcv, mice, mime, minfi, miniUI, minqa, miRNAtap, missMDA, mitml, mitools, mlbench, mnormt,
ModelMetrics, modelr, modeltools, monocle, multcomp, multcompView, MultiAssayExperiment, multtest,
munsell, mutoss, mvnfast, mvnormtest, mvtnorm, network, nleqslv, nlme, nloptr, NMF, nnet, 
nomogramFormula, nor1mix, nortest, npsurv, numDeriv, oligo, oligoClasses, oompaBase, openssl, 
openxlsx, ordinal, org.Dm.eg.db, org.Hs.eg.db, org.Mm.eg.db, org.Rn.eg.db, OrganismDbi, packrat, 
paletteer, palr, pals, pamr, pan, pander, parallel, parallelly, parameters, patchwork, pbapply, 
pbdZMQ, pbivnorm, pbkrtest, pcaMethods, pcaPP, pd.hugene.2.0.st, pdftools, pec, performance, permute, 
pheatmap, phylobase, pillar, pinfsc50, pixmap, pkgbuild, pkgconfig, pkgload, pkgmaker, plogr, plotly, 
plotrix, plyr, PMCMR, PMCMRplus, png, polspline, polyclip, polynom, prabclus, pracma, praise, 
preprocessCore, prettyunits, princurve, prismatic, pROC, processx, prodlim, progress, progressr, 
promises, ProtGenerics, proto, proxy, ps, pspline, psych, Publish, purrr, purrrlyr, qap, qlcMatrix, 
qpdf, quadprog, quantmod, quantreg, qvalue, qvcalc, R.methodsS3, R.oo, R.utils, R6, randomForest, 
ranger, RANN, rappdirs, rat2302.db, RBGL, rbibutils, rcmdcheck, RColorBrewer, rcompanion, rcorpora, 
Rcpp, RcppAnnoy, RcppArmadillo, RcppEigen, RcppGSL, RcppHNSW, RcppParallel, RcppProgress, RcppZiggurat, RCurl,
RCy3, Rdpack, reactome.db, ReactomePA, readr, readxl, recipes, regioneR, registry, relimp, rematch, rematch2, remotes, 
renv, repr, reprex, reshape, reshape2, restfulr, reticulate, rex, Rfast, rgl, rhdf5, rhdf5filters, Rhdf5lib, Rhtslib, 
rio, riskRegression, rJava, rjson, RJSONIO, rlang, rmarkdown, rmeta, Rmpfr, rms, RnBeads, RnBeads.hg38, rncl, RNeXML, 
rngtools, robust, robustbase, RobustRankAggreg, ROCit, ROCR, rootSolve, ROTS, roxygen2, rpart, rprojroot, rrcov, rsample,
Rsamtools, RSpectra, RSQLite, rstan, rstantools, rstatix, rstudioapi, rsvd, RTCGA, RTCGA.clinical, RTCGA.miRNASeq, RTCGA.rnaseq, 
rtracklayer, Rtsne, RUnit, rvcheck, rversions, rvest, rWikiPathways, S4Vectors, sandwich, sass, ScaledMatrix, scales, scater, 
scattermore, scatterpie, scatterplot3d, scico, scran, scrime, scRNAseq, sctransform, scuttle, segmented, selectr, seqinr, seqPattern,
seriation, sessioninfo, set, Seurat, SeuratObject, shadowtext, shape, shiny, shinyjs, shinythemes, ShortRead, siggenes, 
SingleCellExperiment, sitmo, sjlabelled, sjmisc, sjstats, skimr, slam, slider, slingshot, smoother, sn, sna, snow, softImpute,
SomaticCancerAlterations, SomaticSignatures, sourcetools, sp, spam, sparsebn, sparsebnUtils, SparseM, sparseMatrixStats, sparsesvd, 
spatial, spatstat.core, spatstat.data, spatstat.geom, spatstat.sparse, spatstat.utils, splines, sqldf, SQUAREM, stabledist, 
StanHeaders, statmod, statnet.common, stats, stats4, statsExpressions, stringi, stringr, SummarizedExperiment, SuppDists, survcomp, 
survey, survival, survivalROC, survminer, survMisc, sva, swirl, sys, table1, tableone, taRifx, TCGAbiolinks, TCGAbiolinksGUI.data, 
tcltk, tensor, testthat, TFisher, TH.data,tibble, tidygraph, tidyr, tidyselect, tidytree, tidyverse, timeDate, timereg, timeROC, 
tinytex, TMB, tmcn, tmvnsim, tools, TrajectoryUtils, treeio, triebeard, tsne, TSP, TTR, tweenr, TxDb.Dmelanogaster.UCSC.dm3.ensGene,
TxDb.Dmelanogaster.UCSC.dm6.ensGene, TxDb.Hsapiens.UCSC.hg19.knownGene, tximport, tzdb, uchardet, ucminf, UpSetR, urltools, usethis, 
utf8, utils, uuid, uwot, V8, VariantAnnotation, vcd, vcdExtra, vcfR, vctrs, vegan, VennDiagram, VGAM, VIM, vipor, viridis, viridisLite,
visNetwork, vroom, waldo, warp, webshot, WGCNA, whisker, withr, wordcloud, WRS2, xfun, XLConnect, XML, xml2, xopen, xtable, xts, XVector,
yaml, yulab.utils, zeallot, zinbwave, zip, zlibbioc, zoo"

相关文章:

CentOS服务器网页版Rstudio-server及R包批量安装最佳实践

CentOS服务器安装网页版Rstudio-server及R包批量安装 以下为CentOS 7/8的Rstudio-server安装、配置和R包安装操作 1. 软件包安装 Centos 7安装 # 下载安装包&#xff0c;大小115.14 MB wget -c https://download2.rstudio.org/server/centos7/x86_64/rstudio-server-rhel-…...

centos7内核升级(k8s基础篇)

1.查看系统内核版本信息 uname -r 2.升级内核 2.1更新yum源仓库 yum -y update更新完成后&#xff0c;启用 ELRepo 仓库并安装ELRepo仓库的yum源 ELRepo 仓库是基于社区的用于企业级 Linux 仓库&#xff0c;提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行…...

数据结构与算法设计分析——NP完全理论

目录 一、P类问题与NP类问题的定义二、常见的NP类问题&#xff08;一&#xff09;旅行商问题&#xff08;TSP&#xff09;&#xff08;二&#xff09;哈密尔顿回路问题&#xff08;三&#xff09;判断回路问题&#xff08;四&#xff09;图的着色问题&#xff08;五&#xff09…...

AGNES层次聚类

已知数据集D中有9个数据点&#xff0c;分别是(1,2)&#xff0c;(2&#xff0c;3)&#xff0c;(2,1), (3,1),(2,4),(3,5),(4,3),(1,5),(4,2)。要求&#xff1a; (1)采用层次聚类的聚集算法进行聚类&#xff0c;k2。 (2)距离计算采用欧几里得距离。 (3)簇之间的距离采用单链接方…...

HCIP —— 双点重发布 + 路由策略 实验

目录 实验拓扑&#xff1a; 实验要求&#xff1a; 实验配置&#xff1a; 1.配置IP地址 2.配置动态路由协议 —— RIP 、 OSPF R1 RIP R4 OSPF R2 配置RIP、OSPF 双向重发布 R3配置RIP、OSPF 双向重发布 3.查询路由表学习情况 4.使用路由策略控制选路 R2 R3 5.检…...

Python标准库:datetime模块【侯小啾python领航班系列(二十五)】

Python标准库:datetime模块【侯小啾python领航班系列(二十五)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…...

新版idea如何开启多台JVM虚拟机

1.看看自己的项目 2.可能开始的时候啥也没有&#xff0c;就点Run Configuration Type 3.再点击Edit Configurations... 4.点击号添加SpringBoot 5.主类选择一下&#xff0c;一般就一个&#xff0c;点他选了就行。 6.然后点击Modify Options 选择添加add VM Options 7.点击appl…...

软件工程单选多选补充

2. 4. 5. 6. 7. 8. 9. 10. 12。 13....

6-66.时间

本题要求输入小时、分钟和秒数&#xff0c;并将其输出。针对时间表示中出现的异常进行处理。例如小时数不应超过23&#xff0c;分钟不应超过59&#xff0c;秒数不应超过59。此外&#xff0c;以上三个变量均应大于等于0。 输入样例&#xff1a; 在这里给出三组输入。例如&…...

面试多线程八股文十问十答第一期

面试多线程八股文十问十答第一期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1.ThreadLocal如何实现线程安全 Java的ThreadLocal是一个线程本地变量&#xff0…...

Mybatis 操作续集(结合上文)

当我们增加一个数据之后,如果我们想要获取它的 Id 进行别的操作,我们该如何获取 Id 呢? 用那个Options package com.example.mybatisdemo.mapper;import com.example.mybatisdemo.model.UserInfo; import org.apache.ibatis.annotations.*;import java.util.List;Mapper pub…...

JVM基础篇:垃圾回收

目录 1.前言 1.1C/C的内存管理 1.2Java的内存管理 2.方法区的回收 3.堆回收 3.1引用计数法和可达性分析法 3.2五种对象引用 强引用 软引用 弱引用 虚引用 终结器引用 3.3垃圾回收算法评价标准 ①吞吐量 ②最大暂停时间 ③堆使用效率 3.4垃圾回收算法 ①标记清…...

蓝桥杯ACwing习题

题目 &#xff1a;https://www.acwing.com/problem/content/4409/ 解析 &#xff1a;根据题目我们可以知道 问的是方案数 那么首先就想到了 dp 仔细想一下 发现类似于蒙德里安的梦想那道状态压缩的题 &#xff0c; 所以我们先考虑怎么定义 f[i][j] f[i][j] 表示的是 已经放了…...

vue发送请求携带token,拼接url地址下载文件

封装请求 &#xff0c;该请求为普通的get请求 该请求返回值为&#xff1a; 请求成功之后拼接URL地址下载文件 代码块 downTemplateRequest(activeKeys.value).then((res) > {let url http://47.169.168.99:18888/media/${res.data.name};var elink document.createElemen…...

【PTA-C语言】编程练习3 - 循环结构Ⅱ

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 编程练习3 - 循环结构&#xff08;9~15&#xff09; 7-9 特殊a串数列求和&#xff08;分数 15&#xff09;7-10 穷举法搬运砖块问题&#xff08;分数 15&#xff09;7-11 数字金字塔&#xff08;分数 15&…...

Google Chrome 下载 (离线版)

1 访问网址 Google Chrome 网络浏览器 2 点击 下载Chrome 3 直接运行 ChromeStandaloneSetup64.exe 其他&#xff1a; ####################### 谷歌浏览器 (Google Chrome) 最新版离线安装包下载 https://www.iplaysoft.com/tools/chrome/#google_vignette Google Chrome …...

2023年GopherChina大会-核心PPT资料下载

一、峰会简介 自 Go 语言诞生以来&#xff0c;中国便是其应用最早和最广的国家之一&#xff0c;根据 Jetbrains 在 2021 年初做的调查报告&#xff0c;总体来说目前大概有 110 万专业的开发者 选择 Go 作为其主要开发语言。就其全球分布而言, 居住在亚洲的开发者最多&#xff…...

从源代码出发,Jenkins 任务排队时间过长问题的解决过程

最近开发了一个部署相关的工具&#xff0c;使用 Jenkins 来构建应用。Jenkins 的任务从模板中创建而来。每次部署时&#xff0c;通过 Jenkins API 来触发构建任务。在线上运行时发现&#xff0c;通过 API 触发的 Jenkins 任务总是会时不时在队列中等待较长的时间。某些情况下的…...

openssl 生成CA及相关证书

实验环境&#xff1a;ubuntu18.04-desktop 获取openssl.cnf配置文件 # 这个返回的路径&#xff0c;不一定被使用了&#xff08;经测试&#xff0c;ubuntu18下的openssl似乎未加载任何配置文件&#xff09; openssl version -d生成私钥文件(pem) # 生成私钥 # genrsa&#xf…...

App测试之App日志收集及adb常用命令

文章目录 前言一、adb是什么1.APP测试收集手机日志常用的工具2.adb下载与安装3.ADT/SDK/ADB是什么4.adb连接真机 二、adb常用命令三、android系统日志文件1.logcat日志文件2.logcat日志文件分析 四、分析crash & ANR 日志1.发生crash如何分析2.发生ANR如何分析 总结扩展&am…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

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

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

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...