Win10 Ltsc 2019安装winget

Win10 Ltsc 2019安装winget 参考 PowerShell 执行策略 为 RemoteSigned(远程签名) 执行策略 是 PowerShell 的一个安全功能,它控制了系统允许哪些脚本文件(.ps1 文件)运行。 RemoteSigned 策略的含义: 本地脚本: 允许运行你在本地电脑上创建的所有脚本,无需数字签名。 远程脚本: 任何从网上或邮件下载的脚本,必须经过可信发布者的数字签名才能运行 Set-ExecutionPolicy RemoteSigned 安装脚本 Install-Script -Name winget-install winget-install 或 winget-install --force

2025年09月26日

MySQL 查询所有表名笔记

MySQL 查询所有表名笔记 1. 使用 SHOW TABLES 最简单的方法: SHOW TABLES; 在当前数据库里列出所有表。 输出列名一般是 Tables_in_<database_name>。 2. 使用 information_schema 更灵活的方式是查询系统表 information_schema.tables: SELECT table_name FROM information_schema.tables WHERE table_schema = '你的数据库名'; 常见扩展: 查询所有表和表类型(BASE TABLE / VIEW): SELECT table_name, table_type FROM information_schema.tables WHERE table_schema = '你的数据库名'; 查询所有表和表注释: SELECT table_name, table_comment FROM information_schema.tables WHERE table_schema = '你的数据库名'; 3. 查看当前数据库 如果不记得当前在哪个数据库: SELECT DATABASE();

2025年09月26日

MySQL命令备份还原数据库

1️⃣ 备份数据库 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 2️⃣ 还原数据库 mysql -hhostname -uusername -ppassword databasename < backupfile.sql

2025年09月26日

Java JDK 配置(Windows / Linux)

Java JDK 配置笔记 本文记录在 Windows 和 Linux 系统下配置 Java JDK 及环境变量 PATH 的方法。 一、Windows 系统 1. 下载与安装 前往 Oracle JDK 官网 或 OpenJDK 下载对应版本。 安装到路径,例如: d:\soft\jdk17 2. 配置环境变量 打开 控制面板 → 系统 → 高级系统设置 → 环境变量 配置 系统变量: JAVA_HOME = d:\soft\jdk-17 Path → 添加 %JAVA_HOME%\bin 验证: java -version javac -version 如果显示版本号,说明配置成功。 二、Linux 系统(以 Ubuntu 为例) 1. 安装 JDK sudo apt update sudo apt install openjdk-17-jdk -y 2. 配置环境变量 在 ~/.bashrc 或 ~/.zshrc 中添加: ...

2025年09月26日

Android include布局文件传递viewModel

📚 Data Binding: <include> 传递 ViewModel 笔记 核心原理 在 Android Data Binding 中,ViewModel 的传递是通过 <include> 标签上的 bind: 属性实现的一种显式赋值机制。 父布局中声明的变量不会自动传递给子布局。 要传递,必须在 <include> 标签中指明:bind:【子布局变量名】="@{【父布局变量实例】}"。 ViewModel 的生命周期和响应式更新(ObservableField / LiveData)由父布局设置的 lifecycleOwner 统一管理。 MVVM中的<include>布局复用:viewModel传递 - 简书 1. ViewModel (数据源) 假设我们需要一个包含布尔状态的 ViewModel。 // MyComponentViewModel.kt import androidx.lifecycle.ViewModel import androidx.databinding.ObservableField class MyComponentViewModel : ViewModel() { // 示例:需要被子布局观察和操作的状态 val isToggled = ObservableField(false) fun toggle() { isToggled.set(!isToggled.get()) } } 2. 子布局 (layout_reusable_component.xml) 子布局必须使用 <data> 块声明一个 <variable> 作为接口来接收 ViewModel。 ...

2025年09月26日

Android蓝牙设备

Android蓝牙设备 [蓝牙设备特征UUID] 对于蓝牙HID输入设备直接拦截事件 原本设备JOPREE是在打开相机时控制拍照,未打开相机时增加音量 APP内直接拦截增加音量事件,不用管理蓝牙设备连接 直接连接手机即可 Activity内 override fun dispatchKeyEvent(event: KeyEvent): Boolean { val deviceName = event.device?.name if (deviceName != null && deviceName.contains("DEVICE_NAME", ignoreCase = true)) { if (event.action == KeyEvent.ACTION_DOWN) { mySubmitButton.performClick() return true } } return super.dispatchKeyEvent(event) }

2025年09月26日

Android原生侧滑

完整的 BaseActivity 原生侧滑返回方案文档,基于 AndroidX + Kotlin + 原生手势返回,可直接在项目中使用。文档包含 概念说明、实现代码、配置说明和调整方法。 BaseActivity 原生侧滑返回完整文档 1️⃣ 功能概述 实现 从屏幕左边缘滑动返回上一页 完全原生,不依赖第三方库 支持 AndroidX 可在 BaseActivity 中统一配置,所有继承的 Activity 自动生效 可自定义触发区域宽度(edgeSize)和滑动阈值(swipeThreshold) 支持 退出动画(使用 finishAfterTransition + Window ExitTransition) 2️⃣ 核心原理 手势检测:通过 onTouchEvent 监听用户触摸事件 滑动判断条件: 用户从屏幕左边缘滑动 水平滑动距离大于阈值 水平位移大于垂直位移(避免误触上下滑动) 触发返回: 调用 finishAfterTransition() 完成页面退出 可结合 Window ExitTransition 实现平滑滑出动画 3️⃣ BaseActivity 示例代码 open class BaseActivity : AppCompatActivity() { // 左边缘触发滑动区域(dp) private val edgeSizeDp = 20 private val swipeThresholdDp = 100 private var startX = 0f private var startY = 0f private var edgeSize = 0 private var swipeThreshold = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 将 dp 转 px,保证不同屏幕一致 val density = resources.displayMetrics.density edgeSize = (edgeSizeDp * density + 0.5f).toInt() swipeThreshold = (swipeThresholdDp * density + 0.5f).toInt() // 设置窗口退出动画(从右向左滑出) window.enterTransition = null window.exitTransition = android.transition.Slide(Gravity.END).apply { duration = 200 } } override fun onTouchEvent(event: MotionEvent): Boolean { when (event.action) { MotionEvent.ACTION_DOWN -> { startX = event.rawX startY = event.rawY } MotionEvent.ACTION_UP -> { val endX = event.rawX val endY = event.rawY val deltaX = endX - startX val deltaY = endY - startY // 条件:左边缘滑动 + 水平位移大于阈值 + 水平大于垂直位移 if (startX < edgeSize && deltaX > swipeThreshold && Math.abs(deltaX) > Math.abs(deltaY)) { finishAfterTransition() return true } } } return super.onTouchEvent(event) } } 4️⃣ 配置说明 参数 类型 默认值 作用 edgeSizeDp Int (dp) 20 左边缘触发滑动返回的宽度 swipeThresholdDp Int (dp) 100 滑动超过该距离才触发返回 window.exitTransition Transition Slide(Gravity.END) 页面退出动画,配合 finishAfterTransition() 使用 调整依据: ...

2025年09月26日