竖屏看 16:9 桌面太小(用户 2026-11-01 反馈)。探针实测(docs/output/ 2026-11-01-landscape-probe/):App 级 setRequestedOrientation 在这台 vivo 上有效(761ms),且旋转只触发 surfaceChanged、不销毁 surface、不断会话、 横屏 fps=58~60——所以不需要 TextureView(探针另测 TextureView 掉 30~37% 帧率)、不需要任何解码器重建配合,旧 S3 作废。 - OrientationPolicy(AUTO/LANDSCAPE/PORTRAIT/SYSTEM)纯逻辑 + 10 单测, 常量值经 javap 对 android-34 核实;已做 mutation 反向验证(AUTO 判定 > 改 >= 时方屏用例确实红)。 - 表单页强制竖屏;连接成功按策略设方向(默认 AUTO:远端宽>高即横屏)。 - 横屏 immersive + 状态行压 36dp + 控制条 3s 无操作自动隐藏。 - 唤出区 = letterbox 黑边(stage 在隐藏态消费画面外触摸)。刻意不用 底部边缘带:R7 回归实测那种带会吃掉远端桌面底部 ~11%(Windows 任务栏 就在那里),点任务栏会变成唤出菜单。黑边不属于 SurfaceView,零冲突。 - 竖屏永不隐藏(裁决只针对横屏空间不足)。
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 = 4
|
||
versionName = "0.1-phase4a"
|
||
// 阶段 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")
|
||
}
|