首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Instant App(安卓即时应用程序)启用 ProGuard (混淆)

问题剖析 - 两种不同的构建方式 一个典型的场景模块化应用程序并使用新的 Gradle 插件,您的项目结构将如下所示: ? 一个典型的多功能安装 + 即时应用程序项目。...在你构建你的可安装程序启用 ProGuard(混淆)并修复所有的运行时异常 这是最困难的部分,也是唯一不容易复现的部分,因为每个项目所需的 ProGuard(混淆)配置规则会有所不同。...为你所有的即时应用功能启用 ProGuard(混淆) 可安装的应用程序版本构建过程ProGuard(混淆)只运行一次:使用 com.android.application 插件的模块。...首先,准备好一个调试版本(或者没有启用 ProGuard(混淆)的调试版本)。...要解决这个问题,首先要启用 ProGuard(混淆)来开发即时应用程序(例如使用刚刚在前面步骤设置的构建方式)。

2.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

Gradle For Android(9)--自定义构建

'), 'proguard-rules.pro' } } } 当你设置了minifyEnabled为true,proguardRelease任务就会执行,并且构建过程调用...启用ProGuard之后,最好重新测试一下整个APP,有可能它仍然把你一些有用的代码都移除了,比如说JNI调用的Java代码。...你可以gradle.properties添加: org.gradle.daemon=true Android StudioGradle Daemon是默认启用的。...我这也就意味着IDE第一次启动构建,后续的构建都会比较快。如果你从命令行执行构建的话,Gradle Daemon则是关闭的,除非在Properties启用。...Gradle的属性,名为jvmargs,可以用来为JVM启用设置内存分配的值。这两个参数也会对构建速度有直接的影响:Xms和Xmx。

65210

RNAndroid打包发布App(详解)

Windows上keytool命令放在JDK的bin目录(比如C:\Program Files\Java\jdkx.x.x_x\bin),你可能需要在命令行先进入那个目录才能执行此命令。...2-:设置gradle变量 把my-release-key.keystore文件放到你工程的android/app文件夹下。...6-:启用Proguard代码混淆来缩小APK文件的大小(可选) Proguard是一个Java字节码混淆压缩工具,它可以移除掉React Native Java(和它的依赖库没有被使用到的部分,...重要:启用Proguard之后,你必须再次全面地测试你的应用。Proguard有时候需要为你引入的每个原生库做一些额外的配置。参见app/proguard-rules.pro文件。...要启用Proguard,设置minifyEnabled选项为true: /** * release发行版启用Proguard来减小 to shrink the Java bytecode in

1.7K60

使用 R8 压缩您的应用

本文我们将对 R8 的特性进行一个简要的介绍,并介绍可预期的代码缩减程度以及如何在 R8 启用这些功能。...启用 R8 来压缩您的应用 要在 release build 上启用 R8 压缩,需要在应用的主 build.gradle 文件中将 minifyEnable 属性设置为 true,如下所示: android...跟踪完成,R8 使用摇树优化来删除未使用的代码。在此示例,摇树删除了未使用的方法,因为 R8 的跟踪过程检测到从任何已知的入口都无法到达该方法。...将其放置适当位置,运行代码即可得到预期的 JSON 对象 {"name": "SørenGjesse"} 。...最后,配置项目时,请确保将 proguard-rules.pro 文件添加到 build.gradle 配置: android { buildTypes { release {

1.3K30

【Android Gradle 插件】BuildType 编译类型配置 ② ( consumerProguardFiles 配置 | debuggable 配置 | embedMicroApp配置 )

的混淆文件配置 ; 发布的AAR包含的ProGuard规则文件。...然后,使用AAR的任何应用程序项目都将使用这些proguard规则文件(如果启用proguard)。 这允许AAR指定收缩或模糊排除规则。 这仅对库项目有效。这在应用程序项目中被忽略。...These proguard rule files will then be used by any application project that consumes the AAR (if ProGuard...#debuggable 配置设置为 false, 则生成的 apk 文件安装运行 , 无法对 debug 版本的代码进行调试 ; boolean debuggable Whether this build...BuildType#embedMicroApp 配置是 可穿戴设备应用使用的配置 , 普通的手机应用不用处理该配置 ; 是否应使用此构建类型将链接的Android Wear应用嵌入变体

1.5K20

【Android Gradle 插件】BuildType 编译类型配置 ④ ( minifyEnabled 配置 | multiDexEnabled | pseudoLocalesEnabled )

混淆效果 ) 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆的报错信息 | Proguard 混淆映射文件 mapping.txt ) 【Android 安全】DEX 加密...( Proguard 混淆 | 将混淆的报错信息转为原始报错信息 | retrace.bat 命令执行目录 | 暴露更少信息 ) 【Android 安全】DEX 加密 ( Proguard 混淆 |...混淆的报错信息 | Proguard 混淆映射文件 mapping.txt ) 【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆...; 是否APK中生成伪语言环境。...如果启用,将向APK添加两个伪区域设置(en-XA和ar-XB),以帮助测试应用程序的国际化支持。

53210

第八章 自定义Android Gradle工程

配置,实际情况下可以选择不同的配置方式。...8.3 构建的应用类型 关于构建类型,前面的章节我们已经用到了一些,Android Gradle工程,Android Gradle已经帮我们内置了debug和release两个构建类型,他们两种模式的只要差别在于能否设备上调试以及签名不一样...一般情况下我们发布到市场的版本一定是要混淆的,也就是我们的release模式编译的版本,但是我们自己调试的版本不用混淆,因为混淆无法断点跟踪调试了,也就是我们的debug模式。...现在我们启用了混淆,但是Android Gradle还不知道按何种规则进行混淆,不知道要保留哪些类不混淆,要做到这些就需要我们的Proguard配置文件了,现在我们为我们的混淆指定配置文件。...除了BuildType启用混淆和配置混淆外,我们也可以defaultConfig启用和配置,还记得我们前面8.1章节讲的吧,因为这个是默认配置,一般用的比较少。

54010

提高APP安全性的必备加固手段——深度解析代码混淆技术

使用方式: build.gradle 文件配置 proguard-rules.pro 文件,然后项目构建时执行混淆。...iOS APP加固代码实现 以下是使用 ProGuard 工具对 iOSAPP 进行代码混淆的示例: 项目 build.gradle 文件添加以下代码: buildTypes {     release...'), 'proguard-rules.pro'         // 默认的 ProGuard 文件和自定义的规则文件     } } 项目根目录创建一个 proguard-rules.pro 文件...构建 release 版本时,自动启用混淆并将混淆的 APK 文件输出到 app/build/outputs/apk/release 文件夹。...防反编译,dex加固实战代码分析 防止反编译是 iOSAPP 加固的一项重要工作,而 dex 文件加固则是防御反编译的一种实现方式。

28420

【Android 安装包优化】开启资源压缩 ( 资源压缩配置 | 启用严格模式的资源引用检查 | 自定义保留移除资源配置 | 资源压缩效果 )

文章目 一、开启资源压缩 二、启用严格模式的资源引用检查 三、自定义保留/移除资源配置 四、资源压缩效果 五、完整配置 1、keep.xml 配置 2、build.gradle 构建脚本 六、参考资料...build.gradle 构建脚本的 " android / buildTypes " 下的 debug / release 下配置 shrinkResources true 选项 ; 资源压缩 配置示例..., 压缩的布局资源变成了如下内容 , 程序没有引用该资源 , 在编译时 , 该资源自动替换成如下类型 ; <?...混淆的报错信息 | Proguard 混淆映射文件 mapping.txt ) 【Android 安全】DEX 加密 ( Proguard 混淆 | 将混淆的报错信息转为原始报错信息 | retrace.bat...命令执行目录 | 暴露更少信息 ) 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆的报错信息 | Proguard 混淆映射文件 mapping.txt ) 博客资源 :

1.2K40

使用Gradle管理你的Android Studio工程

build.gradle构建文件输入以下构建脚本: task hello { doLast { println 'Hello world!'...启用proguard混淆 我们可以为不同的buildTypes选择是否启用混淆,一般release发布版本是需要启用混淆的,这样别人反编译之后就很难分析你的代码,而我们自己开发调试的时候是不需要混淆的,...根目录下的proguard.cfg文件 启用zipAlign 这个也是比较简单的,同样也是buildTypes里配置,可以为不用的buildTypes选择时候开启zipAlign android {...这个常量可以我们编码引用。我们进行打包的时候会根据Gradle配置动态替换。...今天我们不谈这个,我想要的是我们生成的APK包已经包含了检测代码覆盖率的代码,这样当我们安装APK运行进行一些测试的时候,这些检测代码覆盖率的代码就会被执行到,这样最后我们导出一份代码测试覆盖率的文件

95140

第七章 Android Gradle插件

+Android Studio搭配,工作不累。...我们可以通过Android Studio创建一个App工程,创建我们可以看到其大概工程目录结构如下: 其目录结构和Java工程相比没有太大的变化,proguard-rules.pro是一个混淆配置文件...release就是一个BuildType,后面章节我们会详细介绍BuildType,例子我们用到了两个配置 minifyEnabled 是否为该构建类型启用混淆,我们这里是false表示不启用,如果想要启用可以设置为...true proguardFiles,当我们启用混淆时,所使用的proguard的配置文件,我们可以通过它配置我们如何进行proguard混淆,比如混淆的级别,哪些类或者方法不进行混淆等等。...目录下的默认的proguard配置文件,android-sdk/tools/proguard/目录下,文件名就是我们传入的参数的名字proguard-android.txt。

90720

【Android 安全】DEX 加密 ( Proguard 简介 | 默认 ProGuard 分析 )

混淆大小写 : 不要使用混合大小写类名进行混淆 , 混淆的名称全部都是小写 , 增加阅读难度 # 不要使用混合大小写类名进行混淆 , 混淆的名称全部都是小写 , 增加阅读难度 -dontusemixedcaseclassnames...manual/usage.html # # 从 Gradle 插件 2.2 版本开始 , 该文件与插件一同发布, 在编译构建时取出 . # 不再维护 $ANDROID_HOME 的文件 , 新的 Gradle...# Dex 自己会执行优化 , 不建议 ProGuard 步骤中进行优化 ....# 如果想要启用优化 , 不能只 ProGuard 项目配置中将优化标志设为 true ; # 相反还要在 build.gradle 中指向 "proguard-android-optimize.txt...keepclasseswithmembernames class * { native ; } # 不要混淆继承自 View 的 get set 函数 , 以便让动画可以继续工作

36200

React Native App设置&Android版发布

二、打包发布android应用 1.生成签名秘钥 Windows上keytool命令放在JDK的bin目录(比如C:\Program Files\Java\jdkx.x.x_x\bin),你可能需要在命令行先进入那个目录才能执行此命令...2.设置gradle变量 ①.把my-release-key.keystore文件放到你工程的~/android/app文件夹下。...Proguard代码混淆来缩小APK文件的大小(可选) 进入目录~/android/app/build.gradle,设置minifyEnabled选项为true: def enableProguardInReleaseBuilds...Proguard是一个Java字节码混淆压缩工具,它可以移除掉React Native Java(和它的依赖库没有被使用到的部分,最终有效的减少APK的大小。...重要:启用Proguard之后,你必须再次全面地测试你的应用。Proguard有时候需要为你引入的每个原生库做一些额外的配置。参见app/proguard-rules.pro文件。

95460

【Android Gradle 插件】ProductFlavor 配置 ( consumerProguardFiles 配置 | dimension 配置 )

/2.3/ android 模块配置文档 : https://google.github.io/android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html...ProductFlavor 文档 : https://google.github.io/android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html...1、consumerProguardFiles 配置 consumerProguardFiles 配置 : 设置 发布的 AAR 依赖库 对应的混淆文件 ; 发布的AAR包含的ProGuard规则文件...然后,使用AAR的任何应用程序项目都将使用这些proguard规则文件(如果启用proguard)。 这允许AAR指定收缩或模糊排除规则。 这仅对库项目有效。这在应用程序项目中被忽略。...配置 , 此外还可以自定义配置 ProductFlavor ; build.gradle , 自定义 ProductFlavor 时 , android 下使用 productFlavor

1.5K10

Android 手记 | Android MobPush 接入小结

方案很多,各位按照自身需求进行对应接入即可,下面开始个人习惯的 MobPush 集成啦~ MobPush 集成 --- 从下面官网进入,准备开始接入: MobPush 登录成功选择工作台: [image.png...app 下 build 文件中进行引用: // 引入 Mob 配置 apply from: 'MobSettings.gradle' 4、gradle.properties 配置隐私协议适配版本 #...华为Push注册流程 MobSettings 填写对应的 appId: // 调用MobTech SDK apply plugin: 'com.mob.sdk' // MobSDK 的扩展中注册...虽然因为工作原因没能认真看看,但是这个认真负责的态度,赞一波~ 一句话,免费的东西,这就不错了。...奇怪的是 AndroidManifest 也看到了上文说到的 ContentProvider: <provider android:name="com.mob.MobProvider"

2.1K30

集成推送那点事-友盟Mob-FlutterFCM

PS:其实我还是蛮喜欢放个效果图的,至少一上来就能看到效果,But 涉密,阿哦~ 一、友盟厂商申请对应 key 由于我司账号问题,无法集入所有厂商,尴尬啊。...关于友盟推送需要离线厂商推送,所以涉及到大部分的配置项,这里我直接提取一个 gradle,避免主 gradle 各种杂乱不堪。...gradle 也就是 app 下的 gradle 添加对此依赖: // 友盟推送 apply from: 'UMeng_Push.gradle' 1.2 初始化友盟推送并设置通知栏点击动作 Application...3.2 FCM 集成 进入首页,点击 Android 图标,开始 Android 接入/集成相关工作: ? 一共有如下四步: 第一步填写对应包名以及 SHA-1,反之我是都填了。 ?...3.3 FCM 消息处理 app build 完善下依赖: // FCM implementation 'com.google.firebase:firebase-analytics:17.4.4

11.2K41
领券