build: Android APK builds working — debug (8.9MB) and release (2.0MB)

- Fix C++ std::std:: double namespace in oboe_bridge.cpp
- Auto-fetch Oboe headers from GitHub in build.rs
- Configure cargo cross-compilation (.cargo/config.toml) with NDK linkers
- Fix Gradle settings (dependencyResolutionManagement), signing configs,
  Compose LinearProgressIndicator API, and Android manifest theme
- Add Gradle wrapper, .gitignore for build artifacts
- arm64-v8a only (raptorq crate incompatible with armv7 32-bit)
- Release APK: 2.0MB signed with wzp-release key
- Debug APK: 8.9MB signed with wzp-debug key

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude
2026-04-04 19:37:08 +00:00
parent e7b1c3372a
commit 73ebcdd869
11 changed files with 123 additions and 25 deletions

View File

@@ -13,11 +13,31 @@ android {
targetSdk = 34
versionCode = 1
versionName = "0.1.0"
ndk { abiFilters += listOf("arm64-v8a", "armeabi-v7a") }
ndk { abiFilters += listOf("arm64-v8a") }
}
signingConfigs {
create("release") {
storeFile = file("${project.rootDir}/keystore/wzp-release.jks")
storePassword = "wzphone2024"
keyAlias = "wzp-release"
keyPassword = "wzphone2024"
}
getByName("debug") {
storeFile = file("${project.rootDir}/keystore/wzp-debug.jks")
storePassword = "android"
keyAlias = "wzp-debug"
keyPassword = "android"
}
}
buildTypes {
debug {
signingConfig = signingConfigs.getByName("debug")
isDebuggable = true
}
release {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
@@ -46,7 +66,7 @@ tasks.register<Exec>("cargoNdkBuild") {
workingDir = file("${project.rootDir}/..")
commandLine(
"cargo", "ndk",
"-t", "arm64-v8a", "-t", "armeabi-v7a",
"-t", "arm64-v8a",
"-o", "${project.projectDir}/src/main/jniLibs",
"build", "--release", "-p", "wzp-android"
)

View File

@@ -13,7 +13,7 @@
android:name=".WzpApplication"
android:label="WZ Phone"
android:supportsRtl="true"
android:theme="@style/Theme.Material3.DayNight">
android:theme="@android:style/Theme.Material.Light.NoActionBar">
<activity
android:name=".ui.call.CallActivity"

View File

@@ -186,7 +186,7 @@ private fun AudioLevelBar(framesEncoded: Long) {
)
Spacer(modifier = Modifier.height(4.dp))
LinearProgressIndicator(
progress = { level },
progress = level,
modifier = Modifier
.fillMaxWidth(0.6f)
.height(6.dp)