📜  颤振构建 apk 空安全 (1)

📅  最后修改于: 2023-12-03 15:42:31.199000             🧑  作者: Mango

颤振构建 apk 空安全

简介

颤振构建是一种先进的打包技术,可以帮助程序员构建更加安全可靠的 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
颤振构建的优点
  • 更加安全可靠:颤振构建使用了空安全技术,可以帮助程序员正确地处理 null 值异常,避免了程序崩溃的问题。
  • 更加高效可控:颤振构建可以在构建过程中进行优化,提高程序的运行效率,让程序更加高效可控。
  • 更加易于维护:颤振构建可以让程序员更加轻松地维护程序代码,避免了因为 null 值异常而导致的调试困难问题。