Android kts编译使用gradle ext属性内容

Android kts编译使用gradle ext属性内容

ext属性案例

ext{
	stringA = "String"
	stringList [
		stringB = "StringB"
	]
}

这是一个gradle文件的ext属性,正常里面包含了一些常量。本质上是以map形式组织的对象。

单条属性的获取

	rootProject.ext.get("stringA")

单条属性获取就是使用get方法,参数是字符串

子属性的获取

	rootProject.ext.get("stringList") as Map<String,Any>).get("StringB")

获取子属性比较麻烦,再第一次get后,无法执行下一次get,需要强转类型才可以执行。

依赖引入

	implementation(files((rootProject.ext.get("stringList") as Map<String,Any>).get("StringB")))

新版本有新版本好用的方法,toml。发现了问题没找到方法有点意难平。

### Android 使用 `gradle.kts` 进行构建配置的最佳实践 #### 配置基础结构 为了确保最佳性能和灵活性,在使用 Kotlin DSL (`build.gradle.kts`) 构建 Android 项目时,建议采用模块化的方式管理不同部分的设置。这不仅有助于提高代码的可读性和维护性,还便于团队协作。 ```kotlin // Project-level build.gradle.kts plugins { id("com.android.application") version "7.0.2" apply false kotlin("jvm") version "1.5.31" apply false } allprojects { repositories { google() mavenCentral() } } ``` 此段脚本定义了整个项目的插件及其版本,并指定了全局仓库位置[^3]。 #### 应用级配置 对于应用程序级别的特定配置,则应在对应的 `app/build.gradle.kts` 中完成: ```kotlin // App-level build.gradle.kts plugins { id("com.android.application") kotlin("android") } android { compileSdkVersion(31) defaultConfig { applicationId = "com.example.myapplication" minSdkVersion(21) targetSdkVersion(31) versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags("") } } // ExternalNativeCmakeOptions 类型配置用于 CMake 的外部原生构建选项[^2]. } buildTypes { getByName("release") { isMinifyEnabled = false proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } externalNativeBuild { cmake { path(file("src/main/cpp/CMakeLists.txt")) version.set("3.18.1") } } sourceSets { named("main") { jniLibs.srcDirs("libs") } } } dependencies { implementation(kotlin("stdlib", "1.5.31")) val lifecycle_version = "2.4.0-alpha03" implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version") // 添加本地 JAR 文件作为依赖项 implementation(files("libs/local-library.jar")) // 引入本地 jar 文件的方法[^4] // 测试依赖 testImplementation("junit:junit:4.+") androidTestImplementation("androidx.test.ext:junit:1.1.3") androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0") } ``` 这段代码展示了如何通过 Kotlin DSL 来指定编译 SDK 版本、默认配置参数以及各种类型的依赖关系。值得注意的是,这里也包含了关于 C++ 和 JNI 资源的支持配置. 此外,还可以参考 Now In Android 示例应用以获取更多实际案例[^1].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值