📅  最后修改于: 2023-12-03 15:42:31.199000             🧑  作者: Mango
颤振构建是一种先进的打包技术,可以帮助程序员构建更加安全可靠的 APK 包。其主要特点是在构建过程中使用了空安全技术,可以让程序员更加轻松地处理 null 值异常,避免了在程序运行时因为 null 值异常而导致的崩溃问题。
在使用颤振构建之前,你需要先了解一下 Kotlin 的空安全特性,并且将项目中的所有 Java 代码转换为 Kotlin 代码。
在项目的 build.gradle 文件中添加以下依赖:
buildscript {
dependencies {
classpath "androidx.hilt:hilt-android-gradle-plugin:2.35.1"
}
}
plugins {
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'
}
dependencies {
implementation 'androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03'
implementation "androidx.hilt:hilt-common:1.0.0"
implementation "androidx.hilt:hilt-navigation-fragment:1.0.0"
kapt 'androidx.hilt:hilt-compiler:1.0.0'
}
在项目的 AndroidManifest.xml 文件中添加以下代码:
<application
...
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyApplication">
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
<activity
android:name=".MainActivity"
android:exported="true"
android:theme="@style/Theme.MyApplication.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
然后在 Kotlin 代码中对空安全进行处理:
val str: String? = "Hello World"
if (str != null) {
// 这里 str 就不会为 null
println("Str length is ${str.length}")
}
if (str?.isEmpty() != false) {
// 这里判断 str 为空字符串或者为 null
println("Str is empty or null")
}
val len = str?.length ?: 0 // 如果 str 为 null,则默认长度为 0
// 下面的代码调用 str!!.length,如果 str 为 null,则抛出空指针异常
val len2 = str!!.length