相对模式(默认):手指滑动按增量移动远端指针,DOWN 不发绝对移动——轻点落在 远端指针当前位置,不再「手指落下指针跳到脚下」。换算基准为视图全宽=桌面全宽 (灵敏度 1.0),慢速滑动用小数累积取整,逐次 toInt() 会静默吞掉位移。 长按右键(Q5=A):>=500ms 且位移 <12dp;触发后抑制本次 ACTION_UP 的左键, 否则一次长按会「先右键再左键」把菜单立刻点掉。超过 slop 立即转拖拽并取消计时, 所以拖窗口不会弹菜单。双指右键路径保持不变。 真机暴露并修复(N19):切到远控面板后软键盘仍绑在已隐藏的表单 EditText 上 (dumpsys 里 mServedView 指向 EditText、mInputShown=true),键盘盖住面板底部 按钮栏,**所有按钮点不动**——3b 新增的模式/灵敏度按钮把它暴露出来。改为对每个 表单输入框显式 hideSoftInputFromWindow。 新增右键计数器:长按后紧跟的 ACTION_UP 会覆盖一行式诊断文本,验收脚本读不到 「长按右键」;计数器持久且能区分长按/双指来源。
68 lines
2.0 KiB
Plaintext
68 lines
2.0 KiB
Plaintext
plugins {
|
||
id("com.android.application")
|
||
id("org.jetbrains.kotlin.android")
|
||
}
|
||
|
||
android {
|
||
namespace = "com.verify.remote"
|
||
compileSdk = 34
|
||
|
||
defaultConfig {
|
||
applicationId = "com.verify.remote"
|
||
minSdk = 26
|
||
targetSdk = 34
|
||
versionCode = 3
|
||
versionName = "0.1-phase3b"
|
||
// 阶段 1 只测真机 arm64;x86_64 留给模拟器回归
|
||
ndk {
|
||
abiFilters += listOf("arm64-v8a")
|
||
}
|
||
}
|
||
|
||
buildTypes {
|
||
release {
|
||
isMinifyEnabled = false
|
||
}
|
||
}
|
||
|
||
// 3a/U7:安卓测试基础设施(Q3=A,用户 2026-10-31 批准)。
|
||
// **仅测试作用域**:junit 不进 APK,runtime dependencies 保持为空。
|
||
testOptions {
|
||
unitTests {
|
||
// android.jar 桩方法抛 "not mocked"——本工程的单测刻意只测纯逻辑
|
||
// (不构造 Android 对象),此开关只兜常量引用类的类加载副作用。
|
||
isReturnDefaultValues = true
|
||
}
|
||
}
|
||
compileOptions {
|
||
sourceCompatibility = JavaVersion.VERSION_11
|
||
targetCompatibility = JavaVersion.VERSION_11
|
||
}
|
||
kotlinOptions {
|
||
jvmTarget = "11"
|
||
}
|
||
|
||
// .so 由外部脚本(build-android.ps1)预先拷到 app/libs/arm64-v8a/,
|
||
// 不让 Gradle 调 cargo——构建职责分离:Rust 侧失败与 Gradle 侧失败可立刻区分。
|
||
sourceSets {
|
||
getByName("main") {
|
||
jniLibs.srcDirs("libs")
|
||
}
|
||
}
|
||
|
||
packaging {
|
||
jniLibs {
|
||
// AGP 默认已按 useLegacyPackaging 处理;保持默认压缩+extractNativeLibs=false
|
||
// 由 AGP 保证 STORED+对齐,手动链的坑(lessons 记录)在 Gradle 下不存在
|
||
useLegacyPackaging = false
|
||
}
|
||
}
|
||
}
|
||
|
||
dependencies {
|
||
// 阶段 1 刻意零第三方 UI 依赖:纯 View 代码布局,减少变量。
|
||
// AndroidX 在阶段 2 做正式 UI 时再引入。
|
||
// 3a/U7(Q3=A 批准):仅 JUnit 测试作用域,不进 APK。
|
||
testImplementation("junit:junit:4.13.2")
|
||
}
|