diff --git a/sdk/android/build.gradle.kts b/sdk/android/build.gradle.kts new file mode 100644 index 0000000..7d340ad --- /dev/null +++ b/sdk/android/build.gradle.kts @@ -0,0 +1,27 @@ +plugins { + id("com.android.library") version "8.11.0" + kotlin("android") version "2.1.21" +} + +android { + namespace = "dev.uatu.sdk" + compileSdk = 35 + + defaultConfig { + minSdk = 24 + consumerProguardFiles("consumer-rules.pro") + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = "17" + } +} + +dependencies { + testImplementation("junit:junit:4.13.2") +} diff --git a/sdk/android/consumer-rules.pro b/sdk/android/consumer-rules.pro new file mode 100644 index 0000000..1822aa0 --- /dev/null +++ b/sdk/android/consumer-rules.pro @@ -0,0 +1,2 @@ +# ProGuard rules shipped to consumers of dev.uatu:sdk-android. +# None needed for v0.1 — socket + semaphore APIs are all reflection-free. diff --git a/sdk/android/src/main/AndroidManifest.xml b/sdk/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b2d3ea1 --- /dev/null +++ b/sdk/android/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/sdk/android/src/main/kotlin/dev/uatu/sdk/Uatu.kt b/sdk/android/src/main/kotlin/dev/uatu/sdk/Uatu.kt new file mode 100644 index 0000000..00413ad --- /dev/null +++ b/sdk/android/src/main/kotlin/dev/uatu/sdk/Uatu.kt @@ -0,0 +1,18 @@ +package dev.uatu.sdk + +import android.app.Application + +object Uatu { + fun start(application: Application, configuration: Configuration = Configuration()) { + // stub — real implementation in tasks #6–8 + } + + fun extract(name: String, function: () -> Any?) { + // stub — registry lands in task #8 + } +} + +data class Configuration( + val socketName: String = "uatu-agent", + val pauseTimeoutMillis: Long = 5_000L, +)