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

Retrofit中scalars转换html为字符串

简介

        在Retrofit中,如果你想直接获取HTML或其他文本格式的响应内容而不是将其映射到一个模型类,ScalarsConverterFactory 就派上用场了。ScalarsConverterFactory 是一个转换器工厂,它能够将响应体转换为Java基本类型如String、Integer或Byte[]等标量值。对于解析HTML而言,最直接的应用就是将整个HTML内容作为字符串获取。

一、附加依赖

添加依赖包为:

com.squareup.retrofit2:retrofit:2.x.y
com.squareup.retrofit2:converter-scalars:2.x.y
com.squareup.retrofit2:converter-gson:2.x.y
org.jsoup:jsoup:1.17.2

File中找到Project Structure:

        添加Library Dependency

输入网址域名com.squareup.retrofit2

附加成功:

ScalarsConverterFactory.create() 是Retrofit库中的一个转换器工厂方法,它允许Retrofit将HTTP响应体直接转换为Java的基本类型或字符串等标量值,而不是转换为特定的模型对象。这对于处理文本、JSON字符串或二进制数据等非结构化响应非常有用。

二、配置Retrofit

  初始化构建器(Retrofit):

        new Retrofit.Builder() 创建了一个 Retrofit.Builder 实例。Builder 是一个设计模式,它允许你通过一系列配置步骤来创建复杂的对象。在这里,就是用来配置 Retrofit 的各种参数,最终构建出一个 Retrofit 实例。

baseUrl目标地址域名:

        指定所有网络请求的基础 URL。这是所有相对路径请求的基础。

转换器工厂ConverterFactory:

        转换器的作用是将从网络请求得到的响应体转换成 Java 对象。这里使用的 ScalarsConverterFactory 是专门用来处理文本类型的响应体,比如字符串、byte数组等。如果你的 API 返回的是 JSON 数据,通常会使用 GsonConverterFactoryMoshiConverterFactory。

 .build()完成构建:

        最后,调用 build() 方法来完成 Retrofit 实例的创建。这一步会根据之前设置的所有配置项,构建出一个可用的 Retrofit 实例。

Retrofit retrofit = new Retrofit.Builder().baseUrl("https://your.api.base.url/").addConverterFactory(ScalarsConverterFactory.create()).build();

三、定义网址(API)接口

接下来,在定义API接口时,并定义网络请求方法getHtmlContent(),可以声明方法返回类型为Call<String>或其他标量类型,例如:

四、发起请求并处理响应

创建接口实例:

        通过retrofit.create(WHttp.class)创建了一个接口WHttp的实例。这里假设WHttp接口定义了网络请求的方法,如getHtmlContent(),这个方法对应于获取HTML内容的网络请求。

获取html内容:

        通过getHtmlContent()方法对应于获取HTML内容的网络请求。

enqueue异步请求:

        call.enqueue()方法发起一个异步HTTP请求。这意味着当请求开始时,应用不会被阻塞,可以继续处理其他任务。请求的结果会在主线程(UI线程)中通过onResponseonFailure回调方法通知。成功响应 (onResponse)与失败响应 (onFailure)。

成功响应 (onResponse):成功响应就可获取html内容,并做解析处理。

失败响应 (onFailure):将错误信息通过Throwable t传入,然后将错误信息简单地设置到一个名为textView的TextView控件中展示给用户。

五、Jsoup解析html

html解析内容:

response.body()获取内容:

        String html = response.body();: 从Retrofit的响应对象中获取HTML内容。这是之前网络请求的结果,存储为一个字符串。

Jsoup解析(Document)html字符串:

        Document doc = Jsoup.parse(html);: 使用Jsoup库来解析这个HTML字符串,创建一个Document对象。Jsoup是一个用于解析HTML的Java库,非常适用于提取和操作HTML数据。

Jsoup的选择器语法:

        String description = doc.select("meta[name=description]").attr("content");: 利用Jsoup的选择器语法,从Document中选择所有<meta>标签,其中name属性为description的元素,并从中提取content属性的值。这通常用来获取网页的描述信息。

传入数据UI控件显示(setText):

        textView.setText(description);: 最后,将提取到的描述信息设置给一个名为textView的TextView组件的文本内容。这将在UI界面上显示提取到的描述信息。

六、启用线程

 new Thread线程:

        new Thread(new Runnable() { ... }): 创建一个新的线程。在Android中,网络请求和耗时操作通常不应在主线程(UI线程)执行,以免阻塞UI导致应用无响应(ANR)。因此,这里使用一个新的线程来执行耗时的HTML解析操作。public void run() { ... }: 这是Runnable接口中的run方法,定义了在线程启动(.start())后要执行的操作

  new Thread(new Runnable() {@Overridepublic void run() {runOnUiThread(new Runnable() {@Overridepublic void run() {String html = response.body();Document doc = Jsoup.parse(html);String description = doc.select("meta[name=description]").attr("content");textView.setText(description);}});}}).start();

 runOnUiThread UI线程:

        runOnUiThread(new Runnable() { ... }): 因为Android不允许在非UI线程直接更新UI组件,所以这里使用runOnUiThread方法来确保UI更新操作在主线程中执行。runOnUiThread是Activity或View的成员方法,可以接受一个Runnable对象,确保其在UI线程运行。public void run() { ... }: 这是第二个Runnable对象中的run方法,定义了要在UI线程执行的操作。

 runOnUiThread(new Runnable() {@Overridepublic void run() {String html = response.body();Document doc = Jsoup.parse(html);String description = doc.select("meta[name=description]").attr("content");textView.setText(description);}});

最终效果:

        简要总结:添加依赖包+初始化构建器(baseurl(地址域名),转换器(ConverterFactory),build构建)+实例化接口+调用接口方法获取数据+enqueue异步请求+线程+解析数据

 

 

 

 

 

 

 

 

相关文章:

Retrofit中scalars转换html为字符串

简介 在Retrofit中&#xff0c;如果你想直接获取HTML或其他文本格式的响应内容而不是将其映射到一个模型类&#xff0c;ScalarsConverterFactory 就派上用场了。ScalarsConverterFactory 是一个转换器工厂&#xff0c;它能够将响应体转换为Java基本类型如String、Integer或Byte…...

Java基础面试题学习

转换成自已的语言来回答&#xff0c;来源小林coding、沉默王二以及其它资源和自已改编。 1、概念 1、说一下Java的特点 我认为Java有很多特点 首先是平台无关性&#xff1a;Java可以实现一次编译到处运行&#xff0c;因为Java的编译器将源代码编译成字节码&#xff0c;使得该…...

# [RPA] 使用八爪鱼进行高效网页数据采集

在许多行业中&#xff0c;数据是核心资产。然而&#xff0c;虽然许多网站的文本内容可以免费访问&#xff0c;但手动一条一条采集&#xff0c;不仅耗时耗力&#xff0c;还容易出错。这种情况下&#xff0c;使用自动化工具来提高采集效率就显得尤为重要。本文将介绍 八爪鱼 这一…...

【工具变量】全国地级市地方ZF债务数据集(2014-2023年)

地方ZF债务是地方财政运作的重要组成部分&#xff0c;主要用于基础设施建设、公共服务及经济发展&#xff0c;是衡量地方财政健康状况的重要指标。近年来&#xff0c;我国地级市的地方ZF债务规模不断变化&#xff0c;涉及一般债务和专项债务等多个方面&#xff0c;对金融市场、…...

6.5840 Lab 3: Raft

论文很重要 raft-zh_cn/raft-zh_cn.md at master maemual/raft-zh_cn GitHub Part 3A: leader election (moderate) 十次test都过了 实现 Raft 的领导者选举和心跳机制&#xff08;AppendEntries RPC&#xff0c;无日志条目&#xff09;。第 3A 部分的目标是实现以下功能&am…...

DCDC36V同步降压 输出可调 2A电流恒压芯片SL1588H 替换LV3842

在当今电子设备飞速发展的时代&#xff0c;电源管理芯片的性能优劣直接关乎设备的稳定性与高效运行。对于诸多需要将 36V 电压进行同步降压、输出电压可调且稳定输出 2A 电流的应用场景&#xff0c;一款卓越的恒压芯片不可或缺。SL1588H 正凭借其领先的技术和出色的性能&#x…...

AH4953A双PMOS管深度解析:无线充系统的“高效开关”设计实践

AH4953 30v5A双PMOS管深度解析&#xff1a;无线充系统的“高效开关”设计实践 1. 产品定位与基础特性 AH4953A双通道P沟道MOSFET&#xff0c;专为无线充电、电源管理等高频开关场景优化。其核心优势体现在&#xff1a; • 高耐压低损耗&#xff1a;30V漏源电压&#xff08;Vd…...

图数据库Neo4j和JDK安装与配置教程(超详细)

目录 前言 一、Java环境配置 &#xff08;一&#xff09;JDK的下载与安装 &#xff08;二&#xff09;JDK环境配置 &#xff08;三&#xff09;检测JDK17是否配置成功 二、Neo4j的安装与配置 &#xff08;一&#xff09;Neo4j的下载与安装 &#xff08;二&#xff09;N…...

现代美学工业风品牌海报徽标设计PSAI无衬线英文字体安装包 Moldin – Condensed Sans Serif Font

现代几何工业风品牌海报徽标设计无衬线英文字体安装包 Moldin — Condensed Sans Serif Font Moldin 是一个粗体浓缩的无衬线字体系列&#xff0c;旨在为显示和标题提供最大的影响。Moldin 有 6 种粗细可供选择&#xff0c;从常规到黑色&#xff0c;提供静态和可变格式&#x…...

Excel(函数进阶篇):FILTER函数全解读、XLOOKUP函数全解读、UNIQUE函数、数组与数组公式

目录 数组与数组函数office365中VLOOKUP函数的加强数组中的多条件判断FILTER函数详解用法概述函数语法 基础筛选多条件筛选进阶技巧结合动态数组 高级函数整合错误处理注意事项FILTER经典问题&#xff1a;一对多查询 XLOOKUP函数XLOOKUP基础用法XLOOKUP函数多条件匹配和双向查询…...

django入门教程之request和reponse【二】

接上节&#xff1a;入门【一】 再创建一个orders子应用&#xff0c;python manager.py startapp orders&#xff0c;orders目录中新建一个urls.py文件。结构如图&#xff1a; 通过上节课&#xff0c;我们知道在views.py文件中编写函数时&#xff0c;有一个默认入参request&…...

第十五次CCF-CSP认证(含C++源码)

第十五次CCF-CSP认证 小明上学满分思路 数据中心满分思路 小明放学满分题解 小明上学 题目链接 满分思路 其实题目看着长&#xff0c;但是做起来是非常好写的&#xff0c;其实主要原因在于&#xff0c;他的红绿灯的变化规律是一定的&#xff0c;而且小明路上的每次红绿灯情况…...

Excel处理控件Spire.XLS系列教程:C# 在 Excel 中添加或删除单元格边框

单元格边框是指在单元格或单元格区域周围添加的线条。它们可用于不同的目的&#xff0c;如分隔工作表中的部分、吸引读者注意重要的单元格或使工作表看起来更美观。本文将介绍如何使用 Spire.XLS for .NET 在 C# 中添加或删除 Excel 单元格边框。 安装 Spire.XLS for .NET E-…...

混合精度-基于torch内部

定义 混合精度训练是一种在深度学习模型训练过程中&#xff0c;同时使用不同精度数据类型&#xff08;主要是单精度 FP32 和半精度 FP16&#xff09;来进行计算和存储的技术。以下是具体介绍&#xff1a; 数据类型&#xff1a; 单精度&#xff08;FP32&#xff09;&#xff1…...

Ubuntu16.04网卡ens33找不到异常修复

重启网络 systemctl stop NetworkManager systemctl restart networking允许网络可用 连接网络 验证网络...

C++编译流程

编译器其实就是一个翻译器&#xff0c;把我们的文件内容翻译成机器能够看懂的指令&#xff0c;但如何合理翻译是核心。 C语言编译 需要经过以下几步&#xff1a; 词法分析&#xff1a;扫描代码&#xff0c;确定单词类型&#xff0c;比如是变量还是函数&#xff0c;是标识符还…...

人工智能:企业RAG方案

一、LangChain FAISS、Milvus / Weaviate介绍 在企业 RAG &#xff08;Retrieval-Augmented Generation&#xff09;方案中&#xff0c;LangChain FAISS 和 Milvus / Weaviate 都是用于向量检索&#xff08;Vector Search&#xff09;的核心工具。两者的核心区别在于 存储方…...

【Git流程最佳实践】 开发较大功能时应使用project branch

目录 背景和失败经验名词定义曾经使用project branch犯的错 建立project branch的必要性正确的使用project branch的方法 背景和失败经验 我们曾经使用过project branch&#xff0c;但是后来放弃了 名词定义 特性branch(特性分支)&#xff1a; 在开发跨越新特性的时候会从主…...

线程的概念

目录 线程的概念 创建线程快速验证 物理内存管理 再谈页表 今天我们学习线程的概念 线程的概念 进程是一个指向起来的程序&#xff0c;进程内核数据结构代码和数据&#xff0c;线程称为指向流&#xff0c;执行粒度比进程要更细&#xff0c;是进程内部的一个执行分支&…...

firefly经典蓝牙和QProcess、QFileSystemWatcher记录

QProcess 默认不会启动一个 shell 来解析命令,而是直接调用操作系统的系统调用来启动外部程序。也就是通过fork一个子线程或者exec一个子进程来执行命令。 QProcess的参数模式 QProcess 需要明确指定命令的可执行文件路径或参数列表。 如果命令是一个可执行文件的路径…...

北斗设备启动流程与时长解析

北斗卫星导航系统作为我国自主研发的全球卫星导航系统&#xff0c;广泛应用于交通、通信、农业等多个领域。今天&#xff0c;我们就来详细探讨一下北斗设备的启动流程以及不同启动方式下的时长。 一、北斗设备的启动流程 北斗设备的启动流程可以分为以下几个关键步骤&#xf…...

PyTorch分布式训练中各节点如何通信

深度学习 文章目录 深度学习前言pytorch如何初始化分布式训练怎么知道要使用哪几台机器进行训练的如何根据标识进行初始化&#xff08;init_method&#xff09;如何获取进程的唯一标识rank如何实现数据如何分发 前言 同学们在处理分布式训练时经常会遇到以下几个疑问&#xff…...

又双叒叕Scrapy爬虫相关的面试题及详细解答

Scrapy是Python开发的一个快速、高层次的网络爬虫框架,专注于高效抓取网页并提取结构化数据。其核心设计基于异步处理机制,适合大规模数据采集任务。 文章目录 基础概念1. Scrapy框架的核心组件有哪些?架构与流程2. 描述Scrapy的工作流程核心组件详解3. 如何自定义Item Pipe…...

Docker与K8S是什么该怎么选?

用了很久的容器化&#xff0c;最近突然看到一个问题问&#xff1a; docker和K8S究竟有什么区别&#xff0c;到底该怎么选&#xff1f;我认真思考了一会&#xff0c;发现一时间还真说不明白&#xff0c;于是就研究了一段时间发布今天的博文&#xff01; Docker vs Kubernetes&a…...

FPGA中串行执行方式之计数器控制

FPGA中串行执行方式之计数器控制 使用计数器控制的方式实现状态机是一种简单且直观的方法。它通过计数器的值来控制状态的变化,从而实现顺序逻辑。计数器的方式特别适合状态较少且状态转移是固定的场景。 基本原理 计数器控制的状态机 ​例程1:简单的顺序状态机 以下是一个…...

尝试使用tauri2+Django+React的项目

前言 使用Tauri2前端&#xff0c;本质是进程间的通信。并非前后端。 而想使用nw&#xff0c;先后端打包exe&#xff0c;再和前端打包成exe&#xff0c;并没有完成成功。 而笔者从Tauri中看到这种可能性。很有可能成功基于SeaORMMySQLTauri2ViteReact等的CRUD交互项目-CSDN博…...

用@keyframes-animation来实现动画效果

一、使用规则 keyframes 用于定义动画的关键帧。 animation属性 用于将keyframes动画用于元素上。 二、基本语法 keyframes keyframes xuanZhuan { /*xuanZhuan是动画名字,实现旋转*/0%{transform: rotate(0deg);}50%{transform: rotate(180deg);}100%{transform: rotate(…...

kernel中外部传递参数使用方法

在 Linux 内核模块开发中&#xff0c;module_param(rpc_tdebug, uint, 0600); 表示定义一个可通过外部传递参数进行配置的模块级变量&#xff0c;具体解析如下&#xff1a; ‌参数名称‌ rpc_tdebug 是模块参数的变量名&#xff0c;该变量需在代码中提前声明为静态全局变量&…...

AI赋能流域生态评估:从多源数据融合到服务价值预测的技术突破

流域生态系统服务评价是生态学与地理信息科学的交叉前沿&#xff0c;传统方法受限于数据碎片化与模型解释力不足。本文以‌随机森林-时空图卷积联合模型&#xff08;RF-STGCN&#xff09;‌为核心&#xff0c;结合2022年长江中游实际监测数据&#xff0c;详解AI技术在服务评价中…...

SZU软件工程大学生涯 2022~2026

用于个人面试前自我介绍&#xff0c;防止忘记或谈吐不流利。 面试官您好&#xff0c;我是来自深圳大学计算机与软件学院的软件工程专业的王雅贤。在校期间&#xff0c;我修读了程序设计基础、面向对象程序设计、数据结构、算法分析与设计、操作系统等核心课程&#xff0c;系统…...

如何设计一个合理的库存系统

库存管理系统是电商、供应链管理、仓储管理等核心系统之一。一个合理的库存系统需要同时满足高并发、数据一致性、实时性、扩展性等要求&#xff0c;以确保在各种业务场景下都能稳定运行。 本文将探讨如何设计一个合理的库存系统&#xff0c;包括库存模型设计、数据一致性策略…...

数据人的进阶之路:四年数仓实践与成长思考

前言 在数据仓库开发的过程中&#xff0c;常常会遇到很多值得思考的问题&#xff0c;它们不仅关乎技术的深度&#xff0c;也涉及业务理解、个人的成长&#xff0c;甚至是数据行业未来的价值。回顾过去的经历&#xff0c;有很多问题反复出现&#xff0c;甚至成为绕不开的课题&am…...

数据库原理及应用mysql版陈业斌实验一

&#x1f3dd;️专栏&#xff1a;Mysql_猫咪-9527的博客-CSDN博客 &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 实验一&#xff1a;数据库与数据表的定义和数据操作 1.实验数据如下 …...

Linux环境变量:深入解析与实用指南

目录 一、环境变量概述 二、环境变量的作用 三、环境变量的类型 3.1系统环境变量 3.2用户环境变量 四、环境变量的操作 4.1查看环境变量 4.2设置环境变量 4.3删除环境变量 五、环境变量的配置文件 六、环境变量的最佳实践 七、总结 环境变量是Linux系统中至关重要的…...

大数据 Spark 技术简介

Apache Spark 是一种快速、通用、可扩展的大数据处理引擎&#xff0c;最初由加州大学伯克利分校开发。它提供了一种高效的数据处理框架&#xff0c;可以处理大规模数据集&#xff0c;并在分布式计算集群上进行并行处理。 Apache Spark 的基本概念包括以下几个要点&#xff1a;…...

Go语言的基础类型

一基础数据类型 一、布尔型&#xff08;Bool&#xff09; 定义&#xff1a;表示逻辑真 / 假&#xff0c;仅有两个值&#xff1a;true 和 false内存占用&#xff1a;1 字节使用场景&#xff1a;条件判断、逻辑运算 二、数值型&#xff08;Numeric&#xff09; 1. 整数类型&…...

面试复习-基础网络+运维知识

一、TCP/IP模型及每层对应通信协议 1.1第一层-应用层 作用&#xff1a;服务及应用程序 HTTP --- 超文本传输协议--- 获取网页信息---80&#xff08;TCP 80&#xff09; HTTPS --- HTTP SSL&#xff08;安全传输协议&#xff09;/TLS ---443&#xff08;TCP 443&#xff09; …...

大屏设计新纪元:定制视觉盛宴

当城市天际线的巨型LED幕墙与元宇宙中的虚拟场景无缝交织&#xff0c;当博物馆的数字藏品在8K曲面屏上焕发新生&#xff0c;一个属于大屏设计的全新纪元已悄然降临。这场视觉革命不仅重构了信息传播的维度&#xff0c;更将“定制化体验”推向了前所未有的高度——每一寸屏幕都成…...

JavaIO流的使用和修饰器模式(直击心灵版)

系列文章目录 JavaIO流的使用和修饰器模式 文章目录 系列文章目录前言一、字节流&#xff1a; 1.FileInputStream(读取文件)2.FileOutputStream(写入文件) 二、字符流&#xff1a; 1..基础字符流:2.处理流&#xff1a;3.对象处理流&#xff1a;4.转换流&#xff1a; 三、修饰器…...

10-STL、位运算、常用函数库

1-STL vector vector是变长数组 //定义vector vector<int>a;//第一维长233&#xff0c;第二维长度动态变化 vector<int>b[233];//自定义的结构体类型也可以保存在vector中 struct res{...}; vector<rec>c;//函数 a.size();//返回vector的实际长度&#xf…...

【Ratis】Ratis Streaming概览

看了Tsz-Wo Nicholas Sze博士的一个关于Ratis的share,在share里提到了raits做的一个性能优化:客户端流。比较感兴趣,特此记录一下。如果想看原始分享的,可以搜关键词:Apache Ratis - A High Performance Raft Library 关于Ratis Stream的pdf介绍,在这个PR的附件里: [Ra…...

Python Seaborn面试题及参考答案

目录 如何用 stripplot () 绘制带随机偏移的分类散点图?如何控制 jitter 参数? swarmplot () 如何避免散点重叠?适用场景与数据量限制是什么? 使用 catplot () 绘制箱线图时,如何通过 kind 参数切换图表类型? 如何通过 hue 参数在分类图中添加第三个维度(如性别)? …...

linux下基本命令和扩展命令(安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令、其他命令)欢迎补充噢

基本命令 ls: 列出目录内容 ls&#xff1a;列出当前目录内容ls -l&#xff1a;以长格式列出&#xff08;显示详细信息&#xff09;ls -a&#xff1a;显示隐藏文件ls -lh&#xff1a;以易读格式显示文件大小 pwd: 显示当前工作目录 pwd&#xff1a;显示当前目录的绝对路径 cd:…...

K8S学习之基础四十:K8S配置altermanager发送告警到钉钉群

配置altermanager发送告警到钉钉群 ​ 创建钉钉群&#xff0c;设置机器人助手(必须是管理员才能设置)&#xff0c;获取webhook webhook&#xff1a; https://oapi.dingtalk.com/robot/send?access_token25bed933a52d69f192347b5be4b2193bc0b257a6d9ae68d81619e3ae3d93f7c6…...

实用工具--OfficeAI 助手 v0.3.20(长期免费,2025-03-18 本地支持WPSWord联动)

软件简介 OfficeAI助手&#xff0c;作为Microsoft Office与WPS的得力智能插件&#xff0c;集文档自动生成、内容精准校对与润色、公式智能推荐等多功能于一体。它凭借强大的数据分析能力&#xff0c;深度融入Office/WPS办公生态&#xff0c;一键简化复杂流程&#xff0c;让办公…...

Android 关于compose的一些坑和理解

** 1.如何在 WindowManager.addView 中使用 Jetpack Compose** 一、引出问题 Android 开发中&#xff0c;很常见的一个场景&#xff0c;通过 WindowManager.addView() 添加一个 View 到屏幕上。Android 最新的视图框架 Jetpack Compose&#xff0c;如何应用进来。这个被添加的…...

ref setState 合成事件

ref & setState & 合成事件 受控组件的概念&#xff1a;数据改变视图的叫受控组件&#xff1b;通过dom操作改变的叫非受控。 语法&#xff1a;给refxxx赋一个值&#xff0c;然后通过this.refs.xxx就可以获取到相应dom元素&#xff0c;通过你这个名字存储的值就是这个do…...

调用feapder作为子程序时setting.py文件不起作用

feaper 官方文档地址&#xff1a; 简介及安装 - feapder官方文档|feapder-document 问题&#xff1a; 在最近的开发中需要调用feapder作为主程序调用的子程序时发现自动入库时无法入库&#xff0c;通过查看日志信息发现连接数据库时被拒绝连接了&#xff0c;但是我的setting.p…...

gralloc1_perform具体在干什么

gralloc1_perform 会在特定场景下通过 ioctl 调用&#xff0c;执行 缓存 (cache) 管理 和 内存映射 操作&#xff0c;确保 CPU 和 GPU 之间的数据一致性。 &#x1f4cc; 为什么需要对 cache 进行操作&#xff1f; 在 Android 系统中&#xff0c;CPU 和 GPU 通常共享 DDR 内存…...

【Pandas】pandas Series plot.barh

Pandas2.2 Series Plotting 方法描述Series.plot([kind, ax, figsize, …])用于绘制 Series 对象的数据可视化图表Series.plot.area([x, y, stacked])用于绘制堆叠面积图&#xff08;Stacked Area Plot&#xff09;Series.plot.bar([x, y])用于绘制垂直条形图&#xff08;Ver…...