文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android 中的 R8详解

2024-11-30 17:42

关注

Google 发布了 R8 来作为 Proguard 的替代品,用以帮助开发人员通过生成更好的输出 (APK) 来缩减代码。与 Proguard 相比,R8 被认为要比Proguard要快得多。

1、什么是R8?

(1)开启R8的好处

2、R8 怎么用

(1)R8 编译器主要作用有:

(2)启用与禁用 R8

如需启用缩减、混淆处理和优化功能,请在项目级 build.gradle 文件中添加以下代码:

android {
buildTypes {
release {
// Enables code shrinking, obfuscation, and optimization for only
// your project's release build type.
//启用 R8 的代码缩减功能
minifyEnabled true
// Enables resource shrinking, which is performed by the
// Android Gradle plugin.
//启用 R8 的资源缩减功能
shrinkResources true
// Includes the default ProGuard rules files that are packaged with
// the Android Gradle plugin. To learn more, go to the section about
// R8 configuration files.
proguardFiles getDefaultProguardFile(
'proguard-android-optimize.txt'),
'proguard-rules.pro'
}
}
...
}

关闭R8,gradle.properties中添加配置

# 显式启用 R8
android.enableR8 = true
# 只对 Android Library module 停用 R8 编译器
android.enableR8.libraries = false
# 对所有 module 停用 R8 编译器
android.enableR8 = false

R8 普通模式是兼容 Proguard 的,若原项目里已使用了 Proguard,直接启用 R8 即可。同时,R8 也有完全模式,但是与 Proguard 不直接兼容,可以在 gradle.properties 文件中另外设置以下内容开启:

android.enableR8.fullMode=true

额外的优化功能会使 R8 的行为与 ProGuard 不同,因此可能会需要您添加额外的 ProGuard 规则,以避免运行时问题

(3)自定义要保留的代码

强制 R8 保留某些代码,在 ProGuard 规则文件中添加 -keep 代码行,如

-keep public class MyClass

为要保留的代码添加 @Keep 注解

3、R8 与 Proguard 的比较

(1)比较一下 Proguard 和 R8的性能

Proguard:

在使用 Proguard 时,应用程序代码由 Java 编译器转换为 Java 字节码。转换后,Proguard 使用我们编写的规则对其进行优化。然后 dex 将其转换为优化的 Dalvik 字节码。

将其转换为 Dalvik 字节码大概需要 4 个步骤。

R8:

来源:Android开发编程内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯