蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的掌握(如 BLE 5.1 定位、Android 14 的扫描优化)。本文补充 20 + 道进阶面试题,结合实战案例,突破 “技术深水区”。


一、高阶场景面试题:复杂环境下的扫描挑战

Q16:多设备并发扫描时,如何避免扫描性能下降?(OPPO 2023 社招真题)

题目背景:OPPO 智能手表需同时扫描 20 + 智能家居设备(如灯泡、插座),常出现扫描延迟或丢包。

答案
性能下降的核心原因

  • 蓝牙芯片 HCI 缓冲区容量有限(通常≤1KB),高并发时数据包被覆盖;
  • 协议栈(Bluedroid)处理线程优先级低,无法及时处理大量广播包;
  • 应用层回调(如onScanResult)阻塞主线程,导致扫描结果堆积。

解决方案

关键代码示例(Android)

// 设置批量上报模式(延迟1秒上报,减少回调次数)
ScanSettings settings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).setReportDelay(1000)  // 1000ms延迟上报.build();// 使用线程池处理扫描结果(避免主线程阻塞)
BluetoothLeScanner scanner = bluetoothAdapter.getBluetoothLeScanner();
scanner.startScan(filters, settings, new ScanCallback() {@Overridepublic void onBatchScanResults(List<ScanResult> results) {Executors.newSingleThreadExecutor().execute(() -> {// 异步处理扫描结果(如去重、存储)processScanResults(results);});}
});

Q17:低功耗模式下,如何通过 “扫描 - 休眠” 策略平衡发现率与功耗?(vivo 2024 校招真题)

题目背景:vivo TWS 耳机需在待机时持续扫描手机,要求功耗≤1mA。

答案
核心策略:通过周期性 “扫描 - 休眠” 循环,在保证设备发现率的前提下降低平均功耗。

参数设计公式:平均功耗 = 扫描功耗 ×(扫描时间 / 总周期) + 休眠功耗 ×(休眠时间 / 总周期)

实战参数表(以 nRF52832 芯片为例):

场景扫描周期(T)扫描时间(t)休眠时间(T-t)发现率(理论值)平均功耗(mA)
快速发现期200ms100ms100ms95%2.1
稳定监控期2000ms50ms1950ms85%0.8

验证方法:使用功耗仪(如 Nordic Power Profiler Kit)实测,结合抓包工具统计漏扫率(漏扫率 = 未发现的广播包数 / 总广播包数)。

Q18:Android 12 + 的权限变更对 BLE 扫描有何影响?如何适配?(三星 2023 社招真题)

题目背景:三星 Galaxy S22 升级 Android 12 后,部分应用扫描失败。

答案
Android 12 + 的权限变更

  • 新增BLUETOOTH_SCAN权限(需动态申请);
  • 扫描时需声明uses-permissionuses-feature
  • 后台扫描需额外申请BLUETOOTH_ADMIN权限(部分机型限制)。

适配步骤(附权限声明示例)

①清单文件声明

<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />

②动态申请权限(Kotlin):  

val permissions = arrayOf(Manifest.permission.BLUETOOTH_SCAN,Manifest.permission.BLUETOOTH_CONNECT,Manifest.permission.ACCESS_FINE_LOCATION  // Android 11及以下仍需位置权限
)
ActivityResultContracts.RequestMultiplePermissions().launch(permissions)

③后台扫描限制:Android 12 + 禁止应用在后台持续扫描,需通过WorkManagerForegroundService实现定时扫描(如每 5 分钟扫描 10 秒)。

Q19:Android 中 startScan() 调用后无回调,可能的原因有哪些?

答案

①权限问题

  • 缺少 ACCESS_FINE_LOCATION(Android 6.0+)或 BLUETOOTH_SCAN(Android 12+)。
  • 解决方案:动态申请权限并检查系统设置。

②蓝牙未开启

  • 系统蓝牙开关关闭。
  • 解决方案:调用 BluetoothAdapter.enable() 或引导用户手动开启。

③扫描冲突

  • 多次调用 startScan() 未停止之前的扫描。
  • 解决方案:先调用 stopScan()

④设备不广播

  • 目标设备未开启广播(如处于休眠状态)。
  • 解决方案:使用抓包工具(如 Elisys)确认广播包。

⑤芯片/系统 Bug

  • 某些机型存在兼容性问题。
  • 解决方案:升级系统版本或针对特定机型做适配。

Q20:Android 后台扫描的限制与解决方案

答案

①限制

  • Android 8.0+ 对后台服务限制严格,startScan() 可能被系统终止。
  • 某些厂商(如华为、小米)对后台扫描有额外限制。

②解决方案

  • 前台服务:将扫描服务升级为前台服务,显示持续通知。
  • JobScheduler:使用 JobScheduler 定期唤醒应用执行扫描。
  • 厂商适配:针对特定机型(如小米)加入白名单。

二、安全、性能与特殊场景

Q21:BLE 扫描过程中可能存在哪些安全风险?如何防范?

答案

BLE 扫描可能面临以下安全风险:

①设备追踪与隐私泄露

  • 固定 MAC 地址可被长期监控,定位用户轨迹。
  • 广播数据含特征值(如设备名称、RSSI),暴露设备类型或用户行为。

②伪造广播与中间人攻击

  • 恶意设备伪造合法广播包,诱导连接后窃取数据或注入恶意指令。

③重放攻击

  • 截获合法广播包后重复发送,欺骗扫描设备执行错误操作(如开门、转账)。

④资源耗尽攻击

  • 大量伪造广播包占用扫描设备的 CPU / 内存资源,导致系统卡顿或崩溃。

防范措施:

①地址随机化(核心防护)

  • 使用 动态随机地址(Random Address)(BLE 4.2+),周期性更换 MAC 地址,避免长期追踪。
  • 区分 静态随机地址(Static Random Address)和 私有随机地址(Private Random Address),后者结合定时器进一步增强隐私性。蓝牙MAC地址-CSDN博客

②数据加密与认证

  • 对广播数据启用 AES-CCM 加密(需配合安全连接流程,如 LE Secure Connections)。
  • 在 GAP 层或应用层添加 设备认证机制(如预共享密钥、数字证书),验证广播源合法性。

③防重放与新鲜性校验

  • 在广播数据中嵌入 时间戳(Timestamp) 或 序列号(Sequence Number),扫描端校验数据新鲜性,拒绝重复包。

④扫描策略优化

  • 白名单过滤:仅扫描预信任的设备 UUID/MAC,拒绝未知设备广播。
  • 限制扫描时长与间隔:避免长时间全信道扫描,减少资源暴露窗口。
  • 信道跳频:结合 BLE 信道划分(37/38/39 广播信道),动态切换扫描信道,降低被干扰概率。

⑤固件与协议栈安全

  • 选用安全合规的协议栈(如 Zephyr、ARM mbed TLS),及时更新固件修补漏洞(如 BlueBorne、KRACK 等历史漏洞)。
  • 禁用不安全的旧协议(如 BLE 4.0 前的 Legacy Pairing),强制使用安全连接(Secure Connections)。

应用层安全设计

  • 对敏感操作(如配对、控制指令)添加 二次验证(如 PIN 码、生物识别)。
  • 限制广播数据中敏感信息的暴露(如隐藏设备型号、用户标识)。

BLE 扫描的安全风险需从 隐私保护、数据完整性、设备认证、资源管理 多维度防范,核心在于通过 地址随机化 + 加密认证 + 动态策略 构建防御体系,同时结合硬件(如支持安全元件的芯片)与固件的安全能力,实现端到端的安全防护。

Q22:如何在高密度设备环境中(如 1000+ 设备)优化扫描效率?

答案

在高密度设备环境中优化 BLE 扫描效率需多维度策略:

①硬件层:选用支持多链路并发和扫描分集(Scan Diversity)的芯片,提升并行处理能力与信号捕捉率。

②协议栈层:增大 HCI 缓冲区(修改 bt_stack.conf)避免数据溢出,提升扫描线程优先级(adb shell)确保资源抢占,启用主动扫描并合理配置扫描窗口 / 间隔(如缩短窗口提升频率)。

③应用层

  • 过滤策略:按 UUID/MAC/RSSI 预筛选目标设备,减少无效回调;
  • 异步批量处理:用 RxJava 等线程池异步处理扫描结果,通过setReportDelay()启用批量上报,降低 CPU 负载;
  • 去重机制:用集合缓存已发现设备地址,避免重复处理;
  • 分时扫描:采用周期性扫描或分信道轮询(如跨 37/38/39 信道分布),规避同频干扰。

④动态调优:根据设备密度自适应调整扫描参数(如延长间隔降低功耗),结合硬件特性(如多天线)提升抗干扰能力。

Q23:BLE 扫描与 Wi-Fi 扫描的共存问题如何解决?

答案

BLE与 Wi-Fi 均工作在 2.4GHz 公共频段(部分 Wi-Fi 也使用 5GHz),两者扫描时可能因频段重叠导致信号干扰,表现为扫描速度变慢、设备漏检或 Wi-Fi 吞吐量下降。解决共存问题需从硬件设计、系统调度、协议优化等多层面入手,以下是核心解决方案:

①硬件层优化:物理隔离与射频协同

  • 独立天线设计

    • 使用独立的 Wi-Fi 和 BLE 天线,或通过 天线分集技术 减少信号耦合干扰。
    • 示例:部分芯片组(如高通 QCA6391)集成独立射频链路,支持 Wi-Fi 与 BLE 并行工作。
  • 射频前端优化

    • 通过 射频开关(RF Switch) 或 双工器(Diplexer) 分时复用天线,避免同时收发信号。
    • 启用 动态频率选择(DFS)(仅适用于 5GHz Wi-Fi),避开 2.4GHz 频段的密集干扰。

②系统层调度:分时复用与优先级管理

  • 分时扫描(Time Division)

    • 操作系统(如 Android/iOS)通过 共存调度器 协调 Wi-Fi 和 BLE 扫描的时序:
      • 当 Wi-Fi 进行信道扫描或数据传输时,暂缓 BLE 扫描;
      • BLE 扫描期间,降低 Wi-Fi 扫描的频率或优先级。
    • 示例:Android 的 WiFiManager 和 BluetoothLeScanner 可通过系统服务动态调整扫描窗口。
  • 优先级配置

    • 根据业务场景设定优先级:
      • 视频通话、文件传输等 Wi-Fi 高负载场景,优先保障 Wi-Fi 带宽;
      • 低功耗蓝牙(如 ibeacon 定位)场景,可允许 BLE 间歇性扫描。

③协议层优化:信道规避与参数调整

  • 信道错峰策略

    • BLE 扫描时优先使用 非重叠信道
      • BLE 信道 1(2402MHz)、37(2402MHz)对应 Wi-Fi 的低频段(信道 1-3),干扰较少;
      • 避开 Wi-Fi 常用信道(如信道 6、11)。
    • 通过 主动扫描 替代 被动扫描,减少扫描时间(主动扫描可快速获取设备响应)。
  • 扫描参数调优

    • 减小 BLE 扫描窗口(Scan Window)或增大扫描间隔(Scan Interval),降低持续占用信道的时间。
    • 示例:Android 中通过 ScanSettings.Builder.setScanMode() 设置 LOW_LATENCY 或 LOW_POWER 模式,平衡扫描效率与共存性。

④应用层优化:动态感知与策略适配

  • 干扰感知与动态调整

    • 应用层实时监测 Wi-Fi 信号强度(如通过 WifiManager.getConnectionInfo()),当检测到 Wi-Fi 高负载时,主动延迟或降级 BLE 扫描频率。
    • 结合业务场景灵活切换扫描策略:
      • 后台定位场景:采用低频扫描(如间隔 10 秒);
      • 实时通信场景:临时提升扫描优先级,但限制持续时间。
  • 批量处理与节能模式

    • 使用 批量上报模式(如 BLE 的 setReportDelay())减少回调次数,降低 CPU 占用和射频开关频率。
    • 启用 Wi-Fi 的 节能模式(PS-Poll) 或 BLE 的 连接态节能机制(如超长间隔连接),避免持续唤醒射频模块。

⑤芯片级解决方案:共存芯片与固件优化

  • Combo 芯片协同

    • 采用集成 Wi-Fi/BLE 的单芯片方案,芯片内部通过 时分双工(TDD) 或 频分双工(FDD) 硬件机制实现共存。
    • 固件层预定义共存规则,如 Wi-Fi 传输时自动暂停 BLE 广播接收。
  • 厂商定制化驱动:部分厂商(如 Broadcom、Realtek)在驱动层提供 共存配置接口,可通过系统参数(如 Android 的 bt_config.conf)调整 BLE 与 Wi-Fi 的协同策略。

典型场景与验证方法:

  • 验证工具:使用频谱分析仪(如 Keysight N934x)监测 2.4GHz 频段占用情况,对比同时扫描时的信号重叠度。
  • 极端场景测试:在密集 Wi-Fi 环境(如办公室、商场)中,测试 BLE 设备的扫描成功率与 Wi-Fi 吞吐量的相互影响。

BLE 与 Wi-Fi 共存的核心是 分时、分信道、分优先级 的资源管理。通过硬件隔离减少物理干扰,系统层动态调度避免信道冲突,应用层根据业务灵活适配扫描策略,结合芯片级协同优化,可有效提升两者的并行工作效率。实际开发中需结合设备硬件能力与场景需求,选择性价比最优的方案(如优先采用支持共存的 Combo 芯片,其次通过软件策略调优)。


三、前沿技术面试题:BLE 5.1 + 与扫描的结合

Q24:BLE 5.1 的 AoA/AoD 定位技术如何与扫描结合?(华为 2024 校招真题)

题目背景:华为智能家居场景需通过 BLE 定位设备(如空调遥控器)。

答案
核心概念

  • AoA(Angle of Arrival):接收设备(如手机)通过多个天线接收广播包的相位差,计算发射设备的到达角度;
  • AoD(Angle of Departure):发射设备(如遥控器)通过多个天线发送广播包,接收设备计算离开角度。

扫描与定位的结合流程(附示意图):

关键 API(Android 12+)

// 启用AoA扫描(需手机支持多天线)
ScanSettings settings = new ScanSettings.Builder().setPhy(ScanSettings.PHY_LE_1M).setLegacy(false).setUseAoA(true)  // 启用到达角计算.build();// 从ScanResult获取方位角
ScanResult result = ...;
if (result.getPrimaryPhy() == BluetoothDevice.PHY_LE_1M) {float angle = result.getAngleOfArrival();  // 单位:度(°)
}

Q25:BLE 5.2 的 “周期性广播同步(Periodic Advertising Sync)” 如何优化扫描功耗?(苹果 2023 社招真题)

题目背景:苹果 AirPods Pro 需在低电量时保持与 iPhone 的连接。

答案
传统扫描的痛点:设备需持续轮询广播通道,导致高功耗。

BLE 5.2 的改进

  • 设备按固定周期(16ms~2.56s)发送周期性广播;
  • 扫描设备同步到该周期,仅在广播发送时刻唤醒监听,其他时间休眠。

功耗对比(AirPods 案例)

技术扫描功耗(mW)发现延迟(ms)适用场景
传统扫描5.2100~500常规设备发现
周期性同步1.116~256低功耗长连接设备

Q26:华为2023校招题

题目:设计BLE扫描参数使设备在10秒内发现率>95%,且功耗低于5mA

 参考答案

new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_BALANCED).setReportDelay(0) // 实时上报.setScanInterval(80) // 80×0.625ms=50ms.setScanWindow(48)   // 48×0.625ms=30ms.build();

理论依据
50ms间隔覆盖100ms广播周期概率:P = 1 - (1 - 30/100)^3 ≈ 97.3%(三通道轮询) 

Q27:小米2024社招题

题目:BLE扫描导致UI卡顿如何优化?

解决方案

①回调线程分离:将扫描回调分发至工作线程

HandlerThread workerThread = new HandlerThread("BLE-Callback");
workerThread.start();
scanner.startScan(filters, settings, new ScanCallback() {@Overridepublic void onScanResult(...) {// 在workerThread执行}
});

②去重合并:相同设备200ms内仅更新一次

③数据预解析:广播包解析在Native层完成 


四、实战演练:扫描问题的端到端调试

场景 1:智能手表配对时扫描不到手机(小米手环 7 开发案例)

现象:用户打开手环蓝牙后,无法扫描到已开启蓝牙的 iPhone 15。

调试步骤与解析

①确认手机广播状态:使用 nRF Connect 抓包,发现 iPhone 15 的广播包中AD Type 0x09(设备名称)字段为空。

②检查扫描过滤条件:手环应用设置了ScanFilter过滤设备名称为 “iPhone”,但 iPhone 默认广播名称为空(需用户手动开启 “显示蓝牙名称”)。

③优化方案

  • 移除设备名称过滤,改为通过服务 UUID(如0000180A-0000-1000-8000-00805F9B34FB,手机信息服务)过滤;
  • 在应用层增加提示:“请确保手机蓝牙名称已开启”。

场景 2:Android 平板扫描时频繁崩溃(三星 Tab S8 案例)

现象:平板调用startScan()后,系统报BluetoothGattService: Binder is dead错误。

根因分析与解决

步骤操作结论
1. 检查日志查看logcat,发现btif_gattc线程 ANR扫描线程被阻塞
2. 分析代码应用在onScanResult中执行耗时操作(如数据库写入)主线程阻塞导致 Binder 死亡
3. 修复方案将扫描结果处理移至子线程(如使用Coroutine崩溃率从 30% 降至 0%

场景 3:汽车钥匙(BLE)扫描延迟高(特斯拉 Model 3 案例)

现象:用户靠近车辆时,钥匙需 3 秒以上才能扫描到汽车广播。

优化策略

优化点原方案新方案效果(延迟)
扫描模式低功耗模式(SCAN_MODE_LOW_POWER)平衡模式(SCAN_MODE_BALANCED)3s→500ms
扫描窗口50ms150ms(覆盖汽车广播周期)500ms→200ms
通道优先级轮询 37/38/39 通道优先扫描 38 通道(汽车常用)200ms→100ms

场景4:解析一个 BLE 扫描相关的系统崩溃日志 

日志片段

FATAL EXCEPTION: BluetoothLeScanner
Process: com.example.bleapp, PID: 12345
java.lang.SecurityException: Need ACCESS_FINE_LOCATION permissionat android.os.Parcel.createException(Parcel.java:2071)...

解析步骤

①异常类型识别SecurityException,权限相关问题。

②权限检查

  • Android 6.0+ 需要 ACCESS_FINE_LOCATION 权限。
  • 即使不使用位置信息,BLE 扫描仍需该权限(因设备可能携带位置信息)。

③解决方案

  • 动态申请权限:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE_LOCATION);
}
  • 添加权限声明到 AndroidManifest.xml: 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

五、Android BLE 扫描常见问题汇总表

问题类型现象描述可能原因解决方法
扫描无回调调用startScan()后无onScanResult权限未申请(Android 12 + 的BLUETOOTH_SCAN动态申请权限 + 检查Settings
扫描结果重复同一设备每秒回调多次设备广播间隔 < 扫描窗口应用层去重(记录 MAC + 时间戳)
扫描丢包抓包显示有广播包但应用无回调Bluedroid HCI 缓冲区溢出开启批量上报(setReportDelay()
扫描功耗高设备续航下降明显扫描间隔过小(如 < 100ms)切换为 “扫描 - 休眠” 策略(如 Interval=1s)
iOS 设备难扫描无法扫描到 iPhone/iPadiOS 默认广播包不包含服务 UUID使用withServices:nil关闭过滤
后台扫描失效应用切后台后扫描停止Android 12 + 禁止后台持续扫描使用ForegroundService+ 定时任务

六、总结

BLE 扫描的进阶能力,本质是协议理解 + 平台适配 + 问题调试的技术闭环:

  • 协议层:掌握 BLE 5.0/5.1/5.2/5.4/6.0 的扩展特性(如扩展广播、周期性同步);
  • 平台层:熟悉 Android/iOS 的扫描 API 差异(如 Android 的ScanFilter、iOS 的CBCentralManager);
  • 调试层:熟练使用抓包工具(Elisys)、功耗仪(Power Profiler)、日志分析(logcat/syslog)。

通过本文补充的进阶题与实战案例,你不仅能应对面试中的 “超纲问题”,更能在实际开发中成为 BLE 扫描的 “技术专家”。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…

机房断电后 etcd 启动失败的排查与快速恢复实录

目录 机房断电后 etcd 启动失败的排查与快速恢复实录 背景与问题起因 报错分析 解决方案&#xff1a;删除 member 数据重新初始化 步骤 1&#xff1a;停止 etcd 容器或服务 步骤 2&#xff1a;删除 member 目录 步骤 3&#xff1a;重启 etcd 服务 附加提醒 总结与后续…

Linux上并行打包压缩工具

文章目录 Linux上并行打包压缩工具1. **Pigz (Parallel gzip)**2. **Pbzip2 (Parallel bzip2)**3. **Pixz (Parallel xz)**4. **Zstd (支持多线程)**5. **GNU Parallel 传统工具**6. **Fastest Tools (综合建议)**注意事项&#xff1a; tar和zstd多线程压缩和解压**1. 多线程压…

【K8S系列】K8S中Service 无法访问问题的深度分析

摘要 &#xff1a; 本文是关于 Kubernetes 中 Service 无法访问问题的深度分析&#xff0c;结合根本原因、诊断策略与解决方案的系统性指南&#xff1a; Kubernetes Service 访问故障全景解析&#xff1a;从底层机制到实战修复 Service 作为 Kubernetes 集群内网络通信的核心抽…

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…

进行性核上性麻痹护理指南:全维度守护健康

进行性核上性麻痹是一种罕见的神经系统退行性疾病&#xff0c;会导致患者出现运动障碍、吞咽困难、认知障碍等症状。科学的健康护理对延缓病情发展、提升患者生活质量至关重要。 饮食护理&#xff1a;由于患者常存在吞咽困难&#xff0c;食物应选择糊状、软烂的类型&#xff0c…

【浅析赛题,国赛一等奖水平:思路+模型:】2025 年第八届河北省研究生数学建模竞赛:A 题 基于图论的复杂网络分析与可视化建模

问题一&#xff1a;社交网络拓扑结构分析与影响力评估 基础模型 有向加权图构建&#xff1a;将用户设为节点&#xff0c;互动关系为有向边&#xff0c;以互动频率&#xff08;如一定时间内点赞、评论、转发次数&#xff09;或加权求和&#xff08;赋予不同互动类型不同权重&a…

web3-去中心化金融深度剖析:DEX、AMM及兑换交易传播如何改变世界

web3-去中心化金融深度剖析&#xff1a;DEX、AMM及兑换交易传播如何改变世界 金融问题 1.个人投资&#xff1a;在不同的时间和可能的情况&#xff08;状态&#xff09;下积累财富 2.商业投资&#xff1a;为企业家和企业提供投资生产性活动的资源 目标&#xff1a;跨越时间和…

【笔记】NVIDIA AI Workbench 安装记录

前言 NVIDIA AI Workbench 简介 NVIDIA AI Workbench 是一款由 NVIDIA 推出的集成化开发工具&#xff0c;旨在简化人工智能和机器学习的开发流程。它提供从数据准备到模型训练、优化及部署的全套工具链&#xff0c;支持跨平台协作&#xff0c;适合开发者、数据科学家和企业团队…

积累-Vue.js 开发实用指南:ElementUI 与核心技巧

一、ElementUI 组件高效使用 1. Table 组件展开行优化实现 场景需求&#xff1a;仅在展开行时动态加载数据&#xff0c;避免不必要的接口调用 实现方案&#xff1a; // expand行展开的时候调用expandOpen: async (row, expandedRows) > {// 实时更新展开列const index e…

【BUG】记STM32F030多通道ADC DMA读取乱序问题

STM32F0多通道ADC的校准顺序与DMA乱序问题的本质 声明&#xff1a;本段转载&#xff1a;https://www.cnblogs.com/chihirosan/p/5458673.html 问题描述 通过 uint16_t ConvData[8]保存DMA搬运的ADC转换数值&#xff0c;但是这个数组数值的顺序总是和ADC不是顺序对应的。比如用7…

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…

今天刷SQL

多说几句&#xff0c;JAVA真不行了&#xff1f; 刚刚看到那个tiobe最新的指数&#xff0c;JAVA只剩下8.84%&#xff1f;感觉上次看的时候还有百分之十呢。 185-department-top-three-salaries https://leetcode.com/problems/department-top-three-salaries/description/ 公…

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…

【计算机网络】SDN

SDN这种新型网络体系结构的核心思想&#xff1a;把网络的控制层面与数据层面分离&#xff0c;而让控制层面利用软件来控制数据层面中的许多设备。 OpenFlow协议可以被看成是SDN体系结构中控制层面与数据层面之间的通信接口。 在SDN中取代传统路由器中转发表的是“流表”&…

量化面试绿皮书:9. 通往Offer的门

文中内容仅限技术学习与代码实践参考&#xff0c;市场存在不确定性&#xff0c;技术分析需谨慎验证&#xff0c;不构成任何投资建议。 9. 通往Offer的门 你面对着两扇门。 一个通往你的工作机会&#xff0c;另一个是退出。 两扇门前都有一名警卫。一个守卫总是说谎&#xff0c…

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…

Ascend NPU上适配Step1X-Edit模型

1 概述 1.1 简述 Step1X-Edit&#xff1a;一个在各种真实用户指令下表现出现的统一图像编辑模型。 Step1X-Edit&#xff0c;其性能可与 GPT-4o 和 Gemini2 Flash 等闭源模型相媲美。更具体地说&#xff0c;我们采用了多模态LLM 来处理参考图像和用户的编辑指令。我们提取了潜…

WEB3全栈开发——面试专业技能点P8DevOps / 区块链部署

一、Hardhat / Foundry 进行合约部署 概念介绍 Hardhat 和 Foundry 都是以太坊智能合约开发的工具套件&#xff0c;支持合约的编译、测试和部署。 它们允许开发者在本地或测试网络快速开发智能合约&#xff0c;并部署到链上&#xff08;测试网或主网&#xff09;。 部署过程…

【题解-洛谷】B4292 [蓝桥杯青少年组省赛 2022] 路线

题目&#xff1a;B4292 [蓝桥杯青少年组省赛 2022] 路线 题目描述 有一个旅游景区&#xff0c;景区中有 N N N 个景点&#xff0c;景点以数字 1 1 1 到 N N N 编号&#xff0c;其中编号为 N N N 的景点为游客服务中心所在地。景区中有 M M M 条连接路线&#xff0c;每条…