- PROTO_LABEL 4→5:与 common::PROTO_VERSION 的人工同步义务(R5 显示要求), rel_mouse_phone_proof 的 HUD v5 断言与之配对(R-5 同源注释写明) - versionCode 4→5、versionName 0.1-phase4b:真机验收跑的就是这个包, dumpsys 版本号是 proof 判「装没装对」的唯一依据(R-7 的 APK 侧对应物)
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 = 5
|
||
versionName = "0.1-phase4b"
|
||
// 阶段 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")
|
||
}
|