adb命令
adbclient adbserver adbd 三者之间的关系
adbclient, adbserver, 和 adbd 是 Android Debug Bridge (ADB) 组件中的三个主要组成部分。它们各自扮演着不同的角色,共同协作来实现设备调试和管理的功能。下面我将详细介绍这三个组件之间的关系:
adbd (Android Debug Bridge Daemon):
作用: adbd 是运行在 Android 设备上的守护进程(后台服务),负责处理来自 adb 工具的所有命令。
位置: 当您在 Android 设备或模拟器上运行 adb 命令时,这些命令最终会被传递给设备上的 adbd 服务。
启动: adbd 通常在设备启动时自动启动,或者通过命令行工具如 adb start-server 或 adb tcpip 5555 启动。
adbserver (ADB Server):
作用: adbserver 是运行在开发机器上的服务,负责管理与多个设备的连接,并将命令转发给正确的设备。
位置: adbserver 运行在开发机器上,通常与 adbclient 在同一台机器上。
启动: 当您首次运行 adb 命令时,adbserver 会在后台启动(如果尚未运行)。您也可以通过 adb start-server 显式启动它。
adbclient (ADB Client):
作用: adbclient 是您实际运行命令的客户端程序,它向 adbserver 发送命令,并从 adbserver 接收响应。
位置: adbclient 也是运行在开发机器上,是您在命令行中直接使用的工具。
启动: 每次您在命令行中输入 adb 命令时,都会启动一个 adbclient 实例。
关系概述:
当您在开发机器上运行 adb 命令时,您实际上是在与 adbclient 交互。
- adbclient 会将命令发送给 adbserver,后者负责管理与设备的连接。
- adbserver 将命令转发给目标设备上的 adbd 服务。
- adbd 处理命令并在设备上执行相应的操作,然后将结果返回给 adbserver。
- adbserver 再将结果转发回 adbclient,最后显示在您的命令行界面上。
示例:
假设您要在设备上安装一个应用,流程如下:
您运行 adb install <apk_path>。
- adbclient 收到命令后将其转发给 adbserver。
- adbserver 查找连接的设备,并确定要将命令发送给哪个设备。
- adbserver 将安装命令发送给目标设备上的 adbd 服务。
- adbd 在设备上执行安装操作并将结果返回给 adbserver。
- adbserver 将结果返回给 adbclient。
- adbclient 显示安装结果在命令行界面上。
雷电模拟器和主机默认网络模式
雷电模拟器是一款用于在个人电脑上运行 Android 应用程序的模拟器软件。它提供了多种网络模式供用户选择,以满足不同的使用需求。以下是雷电模拟器中几种常见的网络模式及其说明:
NAT (Network Address Translation) 模式:
特点: NAT 模式是最常用的网络模式之一,它可以自动分配一个内部 IP 地址给模拟器,并允许模拟器通过宿主机(即运行模拟器的 PC)的网络连接访问互联网。
- 优点: 配置简单,不需要额外的网络设置,适合大多数用户。
- 缺点: 可能会遇到一些限制,比如某些应用可能无法正常工作或存在网络延迟问题。
Bridge (桥接) 模式:
特点: 在桥接模式下,模拟器将获得与宿主机相同的网络配置,并直接连接到网络,就好像它是一个独立的设备一样。
-
优点: 提供更好的网络性能和稳定性,适用于需要更高网络质量的应用场景。
-
缺点: 需要手动配置 IP 地址等网络参数,对于普通用户来说可能较为复杂。
Host-Only (仅限主机) 模式:
特点: 在此模式下,模拟器只能与宿主机通信,不能直接访问外部网络。
用途: 主要用于测试和开发目的,当需要在模拟器与宿主机之间进行数据交换但不希望模拟器直接连接互联网时使用。
-
优点: 安全性较高,适合于安全敏感的应用开发。
-
缺点: 无法访问外部网络资源。
默认情况下,雷电模拟器通常会使用 NAT 模式作为其网络模式。如果您需要更改网络模式,可以在雷电模拟器的设置中找到相应的选项。具体步骤如下:
打开雷电模拟器。
在模拟器界面右上角点击“设置”图标(齿轮形状)。
在设置菜单中找到“网络设置”或类似命名的选项。
在网络设置中选择您想要使用的网络模式。
那为什么连接模拟器的时候输入的却是主机的ip
当您通过网络连接到模拟器时,您通常会使用模拟器所在主机(即运行模拟器的计算机)的 IP 地址,而不是模拟器本身的 IP 地址。这是因为模拟器通常是在主机操作系统上作为一个应用程序运行的,它通过主机的网络接口与外界通信。
详细解释:
模拟器的工作原理:
- 模拟器是在主机操作系统上运行的一个应用程序,它模拟了一个完整的 Android 设备环境。
- 模拟器通过主机的网络接口进行网络通信,这意味着它实际上并不拥有自己的 IP 地址。
网络配置:
- 当您配置模拟器通过网络连接时,您实际上是告诉模拟器上的 adbd 服务监听特定的 TCP 端口(例如 5555)。
- 一旦 adbd 服务开始监听该端口,您就可以从主机或其他网络中的计算机通过该端口与模拟器上的 adbd 服务进行通信。
连接到模拟器:
当您想要通过网络连接到模拟器时,您需要使用主机的 IP 地址,因为模拟器是通过主机的网络接口与外界通信的。
您可以通过以下命令连接到模拟器:
adb connect <主机IP>:<端口号>
其中 <主机IP> 是运行模拟器的计算机的 IP 地址,而 <端口号> 通常是 5555 或您配置的其他端口。
示例:
假设您正在运行模拟器的主机 IP 地址为 192.168.1.100,并且您已经配置了模拟器上的 adbd 服务监听 5555 端口。
配置模拟器监听端口:
在模拟器的命令行中运行以下命令:
adb tcpip 5555
从开发机器连接到模拟器:
在开发机器上运行以下命令来连接到模拟器:
adb connect 192.168.1.100:5555
adb connect IP地址:端口 什么意思
adb connect IP地址:端口 是一个命令,用于通过网络连接到运行 Android Debug Bridge (ADB) 服务的远程设备。这个命令允许您在没有物理 USB 连接的情况下调试和管理 Android 设备。
这里是对命令各个部分的解释:
- adb: 是 Android Debug Bridge 的命令行工具,通常位于开发者的计算机上。
- connect: 是 adb 命令的一个子命令,用于建立与远程设备的网络连接。
- IP地址: 是远程 Android 设备的网络 IP 地址。这可以是局域网内的 IP 地址,也可以是互联网上的 IP
地址(需要适当的网络配置)。 - 端口: 是远程设备上 ADB 服务监听的 TCP 端口号,默认情况下通常是 5555。
当你运行 adb connect IP地址:端口 命令时,你的计算机会尝试通过指定的 IP 地址和端口与远程设备建立连接。如果成功连接,你就可以使用各种 adb 命令来管理该设备了,例如安装应用、查看日志等。
例如,如果你的设备 IP 地址为 192.168.1.100 并且使用默认端口 5555,你可以这样连接:
adb connect 192.168.1.100:5555
确保远程设备已经启动了 ADB 服务,并且允许通过网络连接。通常可以通过在设备上运行以下命令来启动 ADB 服务:
adb tcpip 5555
请注意,为了成功进行网络连接,你的计算机和 Android 设备需要在同一个局域网内或者有适当的路由设置以允许跨网络通信。
adb connect 192.168.1.100:5555 连接的到底是adbserver还是adbd
当您运行 adb connect 192.168.1.100:5555 命令时,您实际上是在通过网络连接到目标设备上的 adbd 服务。这个过程涉及到了 adbclient 和 adbserver,但最终连接的目标是设备上的 adbd 服务。下面是详细的流程:
运行 adb connect 192.168.1.100:5555:
您在开发机器上运行这个命令。
命令执行流程:
- adbclient 收到命令后,会将命令发送给 adbserver。
- adbserver 负责管理与设备的连接,并将连接请求转发给目标 IP 地址和端口(在这个例子中是
192.168.1.100:5555)。 - adbserver 通过网络尝试连接到 192.168.1.100:5555 上的 adbd 服务。
- 如果连接成功,adbd 服务将开始与 adbserver 通信。
连接成功后的状态:
成功连接后,adbserver 会记住这个连接,并将后续的 adb 命令转发给目标设备上的 adbd 服务。
adbd 服务将处理这些命令,并将结果返回给 adbserver。
总结起来,当您运行 adb connect 192.168.1.100:5555 时,您实际上是在通过网络连接到设备上的 adbd 服务。adbclient 和 adbserver 在本地机器上负责发起和管理这个连接过程。
流程概览:
- adbclient: 您在命令行中使用的工具,用于发送命令。
- adbserver: 运行在开发机器上,管理与设备的连接,并转发命令。
- adbd: 运行在 Android 设备上,接收并执行来自 adbserver 的命令。
adb tcpip 5555修改是adbserver还是adbd
命令 adb tcpip 5555 是用来配置 Android 设备上的 adbd 服务(即 Android Debug Bridge Daemon)监听特定的 TCP 端口(在这里是 5555 端口),以便通过网络接收来自 adb 客户端的连接请求。
步骤详解:
运行 adb tcpip 5555:
- 这个命令需要在 Android 设备或模拟器上运行。您可以通过连接设备到计算机并通过 USB 使用 adb
命令来执行,也可以在模拟器内部通过命令行工具执行。 - 当您在命令行中输入 adb tcpip 5555 时,您实际上是在与设备上的 adbd 服务进行交互。
命令解析:
- adb: 是 Android Debug Bridge 的命令行工具,它运行在开发机器上。
- tcpip: 是 adb 命令的一个子命令,用于配置 adbd 监听 TCP 端口。
- 5555: 是您想要 adbd 监听的 TCP 端口号。
命令执行:
- 当您运行 adb tcpip 5555 时,adb 客户端会将命令发送给设备上的 adbd 服务。
- adbd 服务收到命令后,会配置自己开始监听 5555 端口,以便接收来自网络的连接请求。
示例:
假设您的 Android 设备已通过 USB 连接到开发机器,并且您想要通过网络连接到设备。
在开发机器上运行:
- 首先,您需要通过 USB 连接设备,并确保 adb 能够识别到设备。您可以通过运行 adb devices 来检查是否识别到了设备。
- 然后,您可以在命令行中运行
adb tcpip 5555
来配置设备上的 adbd 服务监听 5555 端口。
在设备上运行:
如果您正在使用模拟器,您可以在模拟器的命令行中直接运行 adb tcpip 5555。
结果:
一旦 adbd 开始监听 5555 端口,您就可以从另一台计算机(只要在同一局域网内)使用 adb connect 命令来连接到该设备。例如,如果设备的 IP 地址是 192.168.1.100,则可以通过以下命令连接到设备:
adb connect 192.168.1.100:5555
总结起来,adb tcpip 5555 命令的作用是告诉设备上的 adbd 服务开始监听 5555 端口,从而可以通过网络接收 adb 连接请求。希望这有助于澄清您的疑问!如果有更多问题,请随时提问。
当您运行 adb tcpip 5555 时,adb 客户端会将命令发送给设备上的 adbd 服务。到底是发给adbserver还是adbd
当您运行 adb tcpip 5555 命令时,实际上是由 adb 客户端(adbclient)将命令发送给 adbserver,然后由 adbserver 负责将命令转发给目标设备上的 adbd 服务。
下面是详细的步骤和流程:
运行 adb tcpip 5555:
您在开发机器上运行这个命令。
命令执行流程:
- adbclient 收到命令后,会将命令发送给 adbserver。
- adbserver 接收到命令后,查找连接的设备,并确定要将命令发送给哪个设备。
- adbserver 将 tcpip 5555 命令转发给目标设备上的 adbd 服务。
- adbd 服务接收到命令后,开始监听 5555 端口。
因此,当您运行 adb tcpip 5555 时,实际上是通过 adbclient 和 adbserver 的配合将命令发送给目标设备上的 adbd 服务。adbserver 负责管理和转发命令到正确的设备。
总结:
- adbclient: 这是您在命令行中使用的工具,用于发送命令。
- adbserver: 运行在开发机器上,管理与设备的连接,并转发命令。
- adbd: 运行在 Android 设备上,接收并执行来自 adbserver 的命令。
所以,当您运行 adb tcpip 5555 时,实际上是 adbclient 将命令发送给 adbserver,而 adbserver 将命令转发给设备上的 adbd 服务。
adb tcpip 5555 如果由多个设备,这个命令也没有指明哪个设备,怎么知道设置的是哪个设备
当您运行 adb tcpip 5555 命令时,如果没有明确指定设备,adb 将会选择当前选定的设备来执行这个命令。如果您有多个设备连接到开发机器,您需要指定一个设备来执行这个命令。下面是如何指定特定设备的方法:
指定设备的步骤:
列出所有连接的设备:
首先,运行 adb devices 命令来列出所有连接的设备及其 ID。
您将会看到类似于以下的输出:
List of devices attached
1234567890abcdef device
0987654321abcdef device
选择一个设备:
根据设备 ID 选择一个设备。例如,如果您想选择 ID 为 1234567890abcdef 的设备,您可以使用 -s 选项来指定设备。
运行 adb tcpip 5555
命令:
使用 -s 选项加上设备 ID 来运行 adb tcpip 5555 命令:
adb -s 1234567890abcdef tcpip 5555
这条命令会告诉设备 ID 为 1234567890abcdef 的设备上的 adbd 服务开始监听 5555 端口。
示例:
假设您有两个设备连接到开发机器,设备 ID 分别为 1234567890abcdef 和 0987654321abcdef。您想要将设备 ID 为 1234567890abcdef 的设备配置为监听 5555 端口,以便通过网络连接到它。您可以按照以下步骤操作:
列出连接的设备:
adb devices
输出可能会是:
List of devices attached
1234567890abcdef device
0987654321abcdef device
指定设备并运行 adb tcpip 5555
:
adb -s 1234567890abcdef tcpip 5555
这条命令将告诉设备 ID 为 1234567890abcdef 的设备上的 adbd 服务开始监听 5555 端口。
验证配置:
您可以再次运行 adb devices
来确认设备的状态。
如果设备已成功配置为通过网络接收命令,您将看到类似以下的输出:
List of devices attached
1234567890abcdef tcpip:5555
0987654321abcdef device
断开设备呢
当您完成了通过网络连接到 Android 设备的操作后,您可能需要断开网络连接。这可以通过以下两种方式完成:
- 断开网络连接:
您可以使用 adb disconnect 命令来断开与特定设备的网络连接。例如,如果您之前通过 IP 地址 192.168.1.100 和端口 5555 连接到设备,您可以运行以下命令来断开连接:
adb disconnect 192.168.1.100:5555
停止 adbd 服务监听 TCP 端口:
如果您想让设备停止监听 TCP 端口(例如 5555),您可以重新启动 adbd 服务,让它不再监听该端口。这通常在设备上执行,而不是在开发机器上。如果您可以通过 SSH 或其他方式访问设备的命令行,您可以运行以下命令:
adb shell stop-adb
或者,如果您想重新启动 adbd 服务,使其回到默认状态(监听本地 USB 连接),您可以在设备上运行:
adb shell start-adb
请注意,start-adb 和 stop-adb 命令不是标准的 adb 命令,而是需要在设备上运行的 shell 命令。在大多数 Android 设备上,您可能需要使用 adb shell 来运行这些命令。
adb forward的原理
adb forward 命令用于在开发机器和 Android 设备之间建立一个端口转发隧道。它允许您将本地开发机器上的端口映射到设备上的端口,从而可以轻松地在两者之间传输数据。这对于调试应用程序和服务非常有用,因为它可以让您直接从开发机器访问设备上的服务。
adb forward 的工作原理:
创建端口映射:
- 当您运行 adb forward 命令时,您实际上是在创建一个端口映射,将开发机器上的端口与设备上的端口绑定在一起。
- 例如,您可以将开发机器上的端口 8000 映射到设备上的端口 8000。
命令格式:
adb forward 命令的基本格式如下:
adb forward <本地端口> <远程端口>
其中 <本地端口> 是开发机器上的端口,而 <远程端口> 是设备上的端口。
端口类型:
adb forward 支持两种类型的端口转发:
TCP 端口: 使用 tcp:<端口> 表示。
本地 Unix 域套接字: 使用 localabstract:<socket_name> 或 localreserved:<socket_name> 表示。
示例:
将开发机器上的 TCP 端口 8000 映射到设备上的 TCP 端口 8000:
adb forward tcp:8000 tcp:8000
端口转发的用途:
- 调试网络服务: 您可以使用 adb forward 来调试设备上的网络服务,例如 HTTP 服务器或 WebSocket 服务器。
- 访问设备上的服务: 您可以使用 adb forward 来访问设备上运行的服务,例如 Telnet 服务器或 SSH 服务器。
- 代理和网络测试: 您可以将设备的网络流量代理到开发机器上的代理服务器,以进行网络测试和调试。
如何使用 adb forward:
列出当前转发的端口:
您可以使用adb forward --list
命令来查看当前所有转发的端口。
adb forward --list
删除端口映射:
如果您想要删除一个端口映射,可以使用 adb forward --remove 命令。
adb forward --remove tcp:8000
如果您想要删除所有端口映射,可以使用 adb forward --remove-all 命令。
adb forward --remove-all
使用示例:
假设您想要调试设备上的一个 HTTP 服务器,该服务器在端口 8080 上运行。
首先,在设备上启动 HTTP 服务器。
然后,在开发机器上运行以下命令来创建端口映射:
adb forward tcp:8000 tcp:8080
adb forward 如果由多个设备,绑定的是谁呢
当您运行 adb forward 命令时,如果没有明确指定设备,adb 将会选择当前选定的设备来执行这个命令。如果您有多个设备连接到开发机器,您需要指定一个设备来执行这个命令。下面是如何指定特定设备的方法:
指定设备的步骤:
列出所有连接的设备:
首先,运行 adb devices 命令来列出所有连接的设备及其 ID。
您将会看到类似于以下的输出:
List of devices attached
1234567890abcdef device
0987654321abcdef device
选择一个设备:
根据设备 ID 选择一个设备。例如,如果您想选择 ID 为 1234567890abcdef 的设备,您可以使用 -s 选项来指定设备。
运行 adb forward 命令:
使用 -s 选项加上设备 ID 来运行 adb forward 命令。例如,如果您想将开发机器上的端口 8000 映射到设备上的端口 8080,您可以运行:
adb -s 1234567890abcdef forward tcp:8000 tcp:8080
这条命令会告诉设备 ID 为 1234567890abcdef 的设备上的 adbd 服务建立从开发机器上的端口 8000 到设备上的端口 8080 的端口转发。
示例:
假设您有两个设备连接到开发机器,设备 ID 分别为 1234567890abcdef 和 0987654321abcdef。您想要将设备 ID 为 1234567890abcdef 的设备配置为将开发机器上的端口 8000 映射到设备上的端口 8080。您可以按照以下步骤操作:
列出连接的设备:
adb devices
输出可能会是:
List of devices attached
1234567890abcdef device
0987654321abcdef device
指定设备并运行 adb forward:
adb -s 1234567890abcdef forward tcp:8000 tcp:8080
这条命令将告诉设备 ID 为 1234567890abcdef 的设备上的 adbd 服务建立从开发机器上的端口 8000 到设备上的端口 8080 的端口转发。
验证配置:
您可以再次运行 adb forward --list 来确认端口转发是否已经建立:
adb forward --list
您将看到类似以下的输出:
tcp:8000->tcp:8080 localabstract:adbd
adb devices列出的只是ip:prot不是id怎么办
当您使用 adb devices 命令列出连接的设备时,如果设备是通过网络连接的,那么列表中显示的是设备的 IP 地址和端口号,而不是传统的序列号。这是因为通过网络连接的设备是通过 IP 地址和端口号来识别的。
如何使用 adb devices:
列出所有连接的设备:
运行 adb devices 命令来列出所有连接的设备。
如果设备是通过网络连接的,您将看到类似于以下的输出:
List of devices attached
192.168.1.100:5555 device
192.168.1.101:5555 device
解释输出:
192.168.1.100:5555: 表示一个通过 IP 地址 192.168.1.100 和端口 5555 连接到 adb 的设备。
192.168.1.101:5555: 表示另一个通过 IP 地址 192.168.1.101 和端口 5555 连接到 adb 的设备。
指定设备:
如果您想要针对特定的设备运行命令,可以使用 -s 选项加上设备的 IP 地址和端口号。例如,如果您想针对 IP 地址为 192.168.1.100 的设备运行 adb forward 命令,您可以运行:
adb -s 192.168.1.100:5555 forward tcp:8000 tcp:8080
示例:
假设您有两个设备通过网络连接到开发机器,它们的 IP 地址分别为 192.168.1.100 和 192.168.1.101。您想要将 IP 地址为 192.168.1.100 的设备配置为将开发机器上的端口 8000 映射到设备上的端口 8080。您可以按照以下步骤操作:
列出连接的设备:
adb devices
输出可能会是:
List of devices attached
192.168.1.100:5555 device
192.168.1.101:5555 device
指定设备并运行 adb forward:
adb -s 192.168.1.100:5555 forward tcp:8000 tcp:8080
这条命令将告诉 IP 地址为 192.168.1.100 的设备上的 adbd 服务建立从开发机器上的端口 8000 到设备上的端口 8080 的端口转发。
验证配置:
您可以再次运行 adb forward --list 来确认端口转发是否已经建立:
adb forward --list
您将看到类似以下的输出:
tcp:8000->tcp:8080 tcp:5555
通过这种方式,您可以确保只对特定的设备执行 adb forward 命令。
adb forward --remove tcp:5555 报错adb.exe: error: more than one device/emulator
当您运行 adb forward --remove tcp:5555 命令并收到错误提示 “more than one device/emulator” 时,这通常意味着有多个设备或模拟器连接到您的开发机器,并且这些设备或模拟器都监听 5555 端口。
解决方法:
列出所有连接的设备:
运行 adb devices 命令来列出所有连接的设备。
如果设备是通过网络连接的,您将看到类似于以下的输出:
List of devices attached
192.168.1.100:5555 device
192.168.1.101:5555 device
确定要移除端口转发的设备:
确定您想要移除端口转发的具体设备。假设您想要移除 IP 地址为 192.168.1.100 的设备上的端口转发。
指定设备并移除端口转发:
使用 -s 选项加上设备的 IP 地址和端口号来指定设备,并运行 adb forward --remove 命令。
adb -s 192.168.1.100:5555 forward --remove tcp:5555
这条命令将移除 IP 地址为 192.168.1.100 的设备上的 5555 端口转发。
示例:
假设您有两个设备通过网络连接到开发机器,它们的 IP 地址分别为 192.168.1.100 和 192.168.1.101。您想要移除 IP 地址为 192.168.1.100 的设备上的 5555 端口转发。您可以按照以下步骤操作:
列出连接的设备:
adb devices
输出可能会是:
List of devices attached
192.168.1.100:5555 device
192.168.1.101:5555 device
指定设备并移除端口转发:
adb -s 192.168.1.100:5555 forward --remove tcp:5555
这条命令将移除 IP 地址为 192.168.1.100 的设备上的 5555 端口转发。
验证移除:
您可以再次运行 adb forward --list 来确认端口转发是否已经移除:
adb forward --list
如果端口转发已被成功移除,您将不会看到有关 192.168.1.100:5555 和端口 5555 的任何条目。
通过这种方式,您可以确保只对特定的设备执行 adb forward --remove 命令。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
adb命令
adbclient adbserver adbd 三者之间的关系 adbclient, adbserver, 和 adbd 是 Android Debug Bridge (ADB) 组件中的三个主要组成部分。它们各自扮演着不同的角色,共同协作来实现设备调试和管理的功能。下面我将详细介绍这三个组件之间的关系: adbd (A…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot项目热部署
Spring Boot项目热部署是什么 Spring Boot项目热部署是一种开发时的优化技术,可以使开发人员在修改代码后不需要重新启动应用程序即可实时看到修改的效果。在传统的开发模式中,每次修改代码后都需要重新编译、打包和部署应用程序,这样会浪费大…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
Chat App 项目之解析(八)
Chat App 项目介绍与解析(一)-CSDN博客文章浏览阅读340次,点赞7次,收藏3次。Chat App 是一个实时聊天应用程序,旨在为用户提供一个简单、直观的聊天平台。该应用程序不仅支持普通用户的注册和登录,还提供了…...
![](https://img-blog.csdnimg.cn/img_convert/41027dd726908473019032f325fc5c1f.png)
CAAC无人机飞行执照:学习内容与考试流程详解
CAAC无人机飞行执照的学习内容与考试流程是无人机爱好者及从业者必须了解的重要信息。以下是对这两方面的详细解析: 学习内容 CAAC无人机飞行执照的学习内容涵盖了多个方面,以确保学员能够全面掌握无人机飞行和应用的技能。主要学习内容包括:…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
苹果手机怎么连接蓝牙耳机?3个方案,3秒连接
在快节奏的现代生活中,无线蓝牙耳机因其便捷性和自由度成为了许多人的首选。那么,苹果手机怎么连接蓝牙耳机呢?本文将为您介绍3种快速连接苹果设备与蓝牙耳机的方案,让您在享受音乐、通话或观看视频时,不再受线缆束缚&…...
![](https://i-blog.csdnimg.cn/direct/3a6521fbe0704dca80a4e9408174b278.png)
CAD图纸加密软件有哪些?10款超级好用的CAD图纸加密软件推荐
在数字化设计日益普及的今天,CAD图纸作为企业的核心资产,其安全性变得尤为重要。为了防止图纸被非法获取、篡改或泄露,使用专业的CAD图纸加密软件成为了许多企业和设计师的首选。本文将为您推荐10款在2024年表现突出的CAD图纸加密软件&#x…...
![](https://i-blog.csdnimg.cn/direct/44876f26e83944c0bf93e578c79b4da5.gif#pic_center)
【html+css 绚丽Loading】000011 三元轮回珠
前言:哈喽,大家好,今天给大家分享htmlcss 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕…...
![](https://i-blog.csdnimg.cn/direct/25e6bdeda606464b9bea86c4805fc1e1.jpeg)
算法学习018 求最短路径 c++算法学习 中小学算法思维学习 比赛算法题解 信奥算法解析
目录 C求最短路径 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、运行结果 五、考点分析 六、推荐资料 C求最短路径 一、题目要求 1、编程实现 给定n个顶点,每个顶点到其它顶点之间有若干条路,选择每条路需要消耗一定…...
![](https://i-blog.csdnimg.cn/direct/0a5d741a79254f9a9afb29c939c734c9.png)
vue-element-admin——<keep-alive>不符合预期缓存的原因
vue-element-admin——<keep-alive>不符合预期缓存的原因 本文章,以现在中后台开发用的非常多的开源项目vue-element-admin为案例。首先,列出官方文档与缓存<keep-alive>相关的链接(请认真阅读,出现缓存<keep-ali…...
![](https://i-blog.csdnimg.cn/direct/503a6235e74545f2a1642f51cbfeecd3.jpeg)
基于ElementPlus的分页表格组件ReTable
分页表格ReTable 组件实现基于 Vue3 Element Plus Typescript,同时引用 vueUse lodash-es tailwindCss (不影响功能,可忽略) 基于ElTable和ElPagination组件封装的分页表格,支持本地分页以及远程请求两种方式。本地数据分页自带全量数据的…...
![](https://www.ngui.cc/images/no-images.jpg)
力扣题/图论/课程表
课程表 力扣原题 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课…...
![](https://i-blog.csdnimg.cn/direct/7b4ce5e5531c40c692fd8cb5a816f0aa.png)
SQL进阶技巧:基于指定规则的缺失值填充问题
目录 0 场景描述 1 数据准备 2 问题分析 3 小结 0 场景描述 有如下breed表。表中有breed、dt、value字段,value值中存在大量的NULL值,NULL值为缺省值,缺省值需要按照一定规则进行填充。 规则如下: 用表中value值紧邻且非空的两行均值进行填充。 1 数据准备 with bre…...
![](https://img-blog.csdnimg.cn/img_convert/f557d900626a79380ed56d539caef901.jpeg)
【气象百科】光伏自动气象站的功能优势
随着全球对可再生能源需求的日益增长,光伏发电作为清洁、可再生的能源形式,正逐步成为推动能源转型的重要力量。而光伏自动气象站,作为光伏电站智能化管理的重要组成部分,其独特的功能优势在提升光伏系统效率、优化运维策略、增强…...
![](https://i-blog.csdnimg.cn/direct/521a279065954031a102c2cd69b37a06.png)
嵌入式AI快速入门课程-K510篇 (第二篇 Ubuntu的基础操作)
第二篇 Ubuntu的基础操作 文章目录 第二篇 Ubuntu的基础操作1. 安装 VMware 运行 Ubuntu1.1 安装 VMware 1.2 使用VMware打开Ubuntu1.2.1 下载、解压Ubuntu映像文件1.2.1 在BIOS上启动虚拟化(virtualization)1.1.1 使用VMware运行Ubuntu 2.第1章 Ubuntu操作入门1.1 Ubuntu下打开…...
![](https://i-blog.csdnimg.cn/direct/c56a8b2f4925499785384b13f4f04371.png)
android13隐藏调节声音进度条下面的设置按钮
总纲 android13 rom 开发总纲说明 目录 1.前言 2.情况分析 3.代码修改 4.编译运行 5.彩蛋 1.前言 将下面的声音调节底下的三个点的设置按钮,隐藏掉。 效果如下 2.情况分析 查看布局文件 通过布局我们可以知道这个按钮就是 com.android.keyguard.AlphaOptimizedImageB…...
![](https://www.ngui.cc/images/no-images.jpg)
Java ArrayList和LinkedList
ArrayList ArrayList是Java中最常用的数据结构之一,它是一个动态数组的实现,允许你在程序中存储和管理一个可变大小的对象列表,我们可以添加或删除元素。 ArrayList 继承了 AbstractList ,并实现了 List 接口。 基本概念 Arra…...
![](https://i-blog.csdnimg.cn/direct/e4ca91b2e2364a96aced94c374f8729b.png)
STM32F030行列式按键扫描
1)行扫说明,行列式按键扫描时: 行输出:行逐一输出高电平,其他的为低,既循环只输出一个高电平; 列读入:所有列通过下拉电阻100K后,都变为低电平,逐一读入&…...
![](https://img-blog.csdnimg.cn/img_convert/96d7659b6144b5a2b28362560cb9c110.png)
FPGA 综合笔记
仿真时阻塞赋值和非阻塞赋值 Use of Non-Blocking Assignment in Testbench : Verilog Use of Non-Blocking Assignment in Testbench : Verilog - Stack Overflow non-blocking assignment does not work as expected in Verilog non-blocking assignment does not work a…...
![](https://www.ngui.cc/images/no-images.jpg)
Android MVVM框架详解与应用
在Android开发中,随着应用复杂度的增加,如何有效地组织和管理代码成为了一个重要的问题。MVVM(Model-View-ViewModel)架构模式因其清晰的结构和高效的开发效率,逐渐成为Android开发者们青睐的架构模式之一。本文将详细…...
![](https://img-blog.csdnimg.cn/img_convert/d8e36333344240414609f606155ba0a3.png)
浅析KHD-厨帽检测算法从源码到实际应用的方案
厨帽检测算法,作为计算机视觉技术在食品安全领域的一项重要应用,其实际应用过程涉及多个方面。 厨帽检测算法主要基于深度学习技术,特别是卷积神经网络(CNN)和目标检测框架(如YOLO、Faster RCNN等ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
ESXi里的FreeBSD装bhyve Ubuntu子系统,外网不通,子系统里无法ping通外面(使用NAT解决)
ESXi里的FreeBSD装bhyve Ubuntu子系统,子系统里无法ping通外面,除了宿主机,其它ip都ping不通。(另一台FreeBSD物理机同样的bhyve ubuntu子系统,网络就是通的,但是TrinityCore服务lag延时很大) …...
![](https://www.ngui.cc/images/no-images.jpg)
Connectionist Logic Systems and Hybrid Systems by Translation
Connectionist Logic Systems Definition: Connectionist Logic Systems (CLS) are computational models that combine elements of connectionism (neural networks) with symbolic logic. These systems aim to leverage the strengths of both paradigms—connectionism’…...
![](https://img-blog.csdnimg.cn/img_convert/7105da96754ef40f444ba46cab973ca4.jpeg)
盘点数据摆渡的8种常用方式 最推荐哪一种?
跨网数据摆渡是很多企业面临的一种传输场景,因为大部分企业为了保护核心数据,都会做不同级别的网络隔离,所以数据摆渡会涉及不同网络之间的数据传输和整合。这种情况下,数据需要从一个组织或地理位置传输到另一个组织或地理位置&a…...
![](https://i-blog.csdnimg.cn/direct/26705f1cd73043c887bd06b6ea04e07d.png#pic_center)
仿照ContentLoadingProgressBar 的特点在Android项目中自定义Loading对话框
ContentLoadingProgressBar 是 Android 中的一个控件,继承自 ProgressBar。它在 ProgressBar 的基础上添加了一些特殊功能,主要用于在加载内容时显示进度。它的一些主要特点如下: 自动隐藏和显示:ContentLoadingProgressBar 会在…...
![](https://i-blog.csdnimg.cn/direct/8de0026d4a02456da076b406aa6758af.png#pic_center)
基于数据复杂度的数据库选型
数据模型的选择对于 IT 系统的开发至关重要,它不仅决定了数据存储和处理的方式,影响系统的性能、扩展性以及维护性等。本质上来说,不同的数据模型反映了我们对业务问题的不同思考和抽象程度。 今天我们从不同数据模型对于复杂数据和关系的支…...
![](https://i-blog.csdnimg.cn/direct/7443dc7c3862454f909404fd31f0f3b5.png)
QT基础知识5
思维导图 client.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), socket(new QTcpSocket(this))//给客户端实例化分配空间 {ui->setupUi(this);//初始化界面ui->msgEdit-&…...
![](https://i-blog.csdnimg.cn/direct/bc264f044a5c4de8b3ee488f47c793d6.png)
C++中vector存放内置数据类型
#include<iostream> using namespace std; #include<vector> #include<algorithm>//迭代器先理解为指针 void MyPrint(int val) {cout << val << endl; } void test01() {vector<int> v;v.push_back(1);v.push_back(2);vector<int>:…...
![](https://www.ngui.cc/images/no-images.jpg)
shell编程:安装部署前常见环境检查
脚本任务 监测主机是否联通正常 检查安装操作系统版本是否和需求一致 检查CPU是否满足规格要求 检查内存是否满足规格要求 检查数据磁盘是否满足规格要求 检查操作系统分区目录大小是否满足需求 检查集群主机时间是否一致 0.配置文件准备及脚本变量初始化 编写config.i…...
![](https://i-blog.csdnimg.cn/direct/437e38dbd5e143ae8ddb55633cb97801.png#pic_center)
思特科技:国家宝藏数字体验馆展现东方美学 让“文物活起来”
01 思特科技为“国家宝藏数字体验展”提供“数字技术”支持,带来国宝的数字化演绎。以《国家宝藏》顶级IP为基础,打造的全新沉浸文化项目“国宝数字体验展“,借由文物的视角、站在历史的星河中,探寻时间长河中不变的智慧…...
![](https://i-blog.csdnimg.cn/direct/c6e9f67f5b544777806af5f1817f742b.png)
ES6笔记总结(Xmind格式):第二天
Xmind鸟瞰图: 简单文字总结: ES6知识总结 Proxy(代理): 1.作用:实现数据的私有化处理 2.target 目标对象 handler处理函数 3.处理函数中有两个方法:get,set 4.读取数据会触发g…...
ps2017做网站/网站seo视频狼雨seo教程
路径:在一棵树中从一个结点往下到孩子或孙子结点之间的通路 结点的路径长度:从根节点到该节点的路径上分支的数目 树的路径长度:树中每个结点的路径长度之和 结点的权:给树中的结点赋予一个某种含义的值,则该值为该节点…...
![](/images/no-images.jpg)
网站建设需要多钱/app营销策略有哪些
单例模式 一、什么是单例模式 单例模式(Singleton Pattern)是最简单的设计模式之一:一个单一的类,负责创建自己的对象,同时提供一个方法直接获取唯一的实例。其中当第一次获取这个对象的时候才实例化这个对象&#x…...
![](/images/no-images.jpg)
企业网站建设美丽/百度seo如何快速排名
一、步骤 1.创建一个Canvas 2.对Canvas进行初始化,记得把Game视图的分辨率调成和Canvas里面设置的一样的分辨率960X640 3.创建一个Image的UI节点作为Canvas的子节点,名字叫bg,设置宽高为1920X1080,Image组件里面的Color设置为黑色…...
![](/images/no-images.jpg)
网站的营销与推广/网站收录查询工具
bitsCN.comMySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略…...
![](/images/no-images.jpg)
明薇通网站建设哪家好/东莞百度seo电话
目录 0. 相关文章链接 1. Flink中的累加器概述 2. 编码步骤 3. 代码演示 0. 相关文章链接 Flink文章汇总 1. Flink中的累加器概述 Flink中的累加器,与Mapreduce counter的应用场景类似,可以很好地观察task在运行期间的数据变化,如在Fli…...
![](https://s1.51cto.com/attachment/201010/003157434.jpg)
哈尔滨做网站seo的/如何进行网站推广?网站推广的基本手段有哪些
故事是这样发生的:前几天和同事在公司吃饭,同事讲起他早年间相亲的故事。女方是某IT公司的HR,研究生学历,两人第一次见面的一段对话,觉得非常的有意思。 两人是共同的朋友介绍的,第一次见面地点商定在一家餐…...