小编Ami*_*ara的帖子

为什么默认情况下发布版本中的 minifyEnabled 为 false?

在 build.gradle (app) 文件中,我们默认有这个,

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

根据https://developer.android.com/studio/build/shrink-code

minifyEnabled true 使代码更安全(使逆向工程变得困难)并缩小我们用于发布应用程序的发布版本的大小。

我知道使用minifyEnabled true会使编译时间更长,但通常调试版本用于开发和测试,无论如何都不会受到影响。

我正在寻找的是,minifyEnabled true在运行时使用会导致哪些缺点(例如性能影响)。我不担心发布版本的构建时间。

Google Play Console 还建议我们启用它,因此我想知道为什么minifyEnabled默认情况下禁用它。

obfuscation android proguard gradle android-r8

8
推荐指数
1
解决办法
2174
查看次数

如何使 MaterialAlertDialogBu​​ilder 中的 ClickableSpan 链接可点击?

我有一个带有这样链接的SpannableStringBuilder对象,ClickableSpan

SpannableStringBuilder ssb = new SpannableStringBuilder("Hi StackOverflow!");

ClickableSpan clickableSpan = new ClickableSpan() {
    @Override
    public void onClick(@NonNull View widget) {
        Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();
    }
};

ssb.setSpan(clickableSpan, 3, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
Run Code Online (Sandbox Code Playgroud)

TextView当我将其设置为 a并使用后效果很好textView.setMovementMethod(LinkMovementMethod.getInstance())

当我将ssb对象设置为 时MaterialAlertDialogBuilder

new MaterialAlertDialogBuilder(this)
                .setTitle("My Dialog")
                .setMessage(ssb)
                .show();
Run Code Online (Sandbox Code Playgroud)

它显示为可点击的链接,但实际上无法点击它 MaterialAlertDialogBu​​ilder 预览 我找不到使用setMovementMethod中的消息的方法MaterialAlertDialogBuilder。有什么办法让它可以点击吗?

android android-alertdialog clickablespan spannablestringbuilder material-components

5
推荐指数
1
解决办法
1646
查看次数