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

在使用Places库时如何在proguard中编写规则

在使用Places库时,可以在proguard中编写规则来保护库的代码和资源,以确保应用程序在混淆和压缩代码时不会影响Places库的功能。

首先,需要在proguard规则文件中添加以下规则:

代码语言:txt
复制
-keep class com.google.android.libraries.places.** { *; }
-keep interface com.google.android.libraries.places.** { *; }

这些规则将保持Places库中所有类和接口的完整性,防止它们被混淆和删除。

接下来,如果应用程序使用了Places库的特定功能,例如自动完成建议或地点检索,还需要添加以下规则:

代码语言:txt
复制
-keepclassmembers class * {
    @com.google.android.libraries.places.api.model.** <fields>;
}

-keepattributes Signature

这些规则将保持Places库中与模型相关的字段的完整性,并保留它们的签名信息。

对于资源文件,可以使用以下规则来保持Places库的资源文件完整性:

代码语言:txt
复制
-keepclassmembers class * {
    @com.google.android.libraries.places.api.PlacesApiMetadata <fields>;
}

-keepclassmembers class * {
    @com.google.android.libraries.places.api.net.PlacesStatusCodes <fields>;
}

-keepclassmembers class * {
    @com.google.android.libraries.places.api.net.PlacesFieldSelector <fields>;
}

-keepclassmembers class * {
    @com.google.android.libraries.places.api.net.PlacesRequestParams <fields>;
}

-keepclassmembers class * {
    @com.google.android.libraries.places.api.net.PlacesRequestParams$Builder <fields>;
}

-keepclassmembers class * {
    @com.google.android.libraries.places.api.net.PlacesRequestParams$Builder <methods>;
}

-keepclassmembers class * {
    @com.google.android.libraries.places.api.net.PlacesRequestParams$Builder <init>(...);
}

-keepclassmembers class * {
    @com.google.android.libraries.places.api.net.PlacesRequestParams$Builder set*(...);
}

-keepclassmembers class * {
    @com.google.android.libraries.places.api.net.PlacesRequestParams$Builder build();
}

这些规则将保持Places库中与资源相关的类和字段的完整性。

需要注意的是,以上规则是基于当前版本的Places库,如果使用的是不同版本的库,可能需要根据实际情况进行调整。

推荐的腾讯云相关产品:腾讯云地理位置服务(Tencent Location Service) 产品介绍链接地址:https://cloud.tencent.com/product/location

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 R8 压缩您的应用

本文我们将对 R8 的特性进行一个简要的介绍,并介绍可预期的代码缩减程度以及如何在 R8 启用这些功能。...不过,大多数应用都会使用 Jetpack、OkHttp、Guava、Gson 和 Google Play 服务 等第三方,并且用 Kotlin 编写的应用始终包含 Kotlin 标准。...当您使用这其中的某个第三方,您的应用通常只使用其中很小一部分。若不压缩,所有代码都会保留在您的应用。...第三方可能附带了它们自己的规则,但是切记,有些不一定是为 Android 编写的,抑或是未考虑缩减问题,因此它们可能需要其他配置。...最后,配置项目,请确保将 proguard-rules.pro 文件添加到 build.gradle 配置: android { buildTypes { release {

1.4K30
  • ProGuard Android 上的使用姿势

    当一些类和方法会被动态访问到时(使用反射),某些情况下,ProGuard 构建调用图不能正确的决定他们的「生死」,导致这些代码被错误的移除掉。...这些警告的一个原因就是,您的构建路径没有加入需要依赖的 JARs,使用了 provided (仅编译)依赖。而有时候, Android 上这些代码的依赖在运行时并不会被真正的调用。...因为我们知道这些注解类在运行时不会被使用,我们可以通过 ProGuard 配置添加 -dontwarn 规则来安全地忽略掉这些警告, OkHttp 文档中加入这些规则: -dontwarn...不过有个更好的方法,第三方的维护者们如果发布的是 AAR ,那么可以指定规则打包在 AAR 并会在应用构建自动暴露给构建系统,通过添加下面几行代码到模块的 build.gradle 文件:...文件规则将会在应用构建附加到应用主 ProGuard 配置并被使用

    2.6K40

    配置Android项目 - 一些重要的事情

    Studio创建一个新的Android项目,它已经生成了gitignore文件,但通常它不包含所有必要的规则。...通常我在那里放一些自定义的gradle脚本文件,proguard和静态代码分析工具的规则pmd,findbugs,lint。 模板项目中查看 tools文件夹。...用于调试构建的Proguard规则必须具有以下行以强制proguard忽略警告,跳过代码混淆和优化: ? 对于发布版本,设置proguard规则将会更加困难,因为几乎每个都有自己的特定规则。...幸运的是,有一个开源代码 —  android-proguard-snippets,它包含所有主要proguard规则。 ?...我建议你只调试的时候打开它并且使用detectAll方法来检测所有类型的问题。 ? 这里是当你忘记关闭SQLiteCursor的日志的例子: ? 模板代码查看StrictMode。

    66520

    Android-Proguard(混淆)

    build.gradle文件设置minifyEnabled为true,然后可以到proguard-rules.pro文件中加入我们的混淆规则即可。...大家看到了,有两个混淆文件,proguard-android.txt和proguard-rules.pro,proguard-rules.pro是我们需要自己编写的混淆文件,proguard-android.txt...#匹配所有方法     }  你还可以或前面加上private 、public、native等来进一步指定不被混淆的内容, -keep class com.xzt.demotwo...自定义的View默认也不会被混淆;所以像网上贴的很多排除自定义View,或四大组件被混淆的规则在Android Studio是无需加入的; 4,与服务端交互使用GSON、fastjson等框架解析服务端数据...,所写的JSON对象类不混淆,否则无法将JSON解析成对应的对象; 5,使用第三方开源或者引用其他第三方的SDK包,如果有特别要求,也需要在混淆文件中加入对应的混淆规则; 6,有用到WebView的

    1.4K40

    混淆技术 发布于 2023年05月30

    Minecraft Minecraft Java版本身作为一个使用Java编写的收费游戏,自然是需要使用混淆技术来保护源码程序的。...Android开发,开发者通常也会采用混淆工具构建安卓程序时对源码进行混淆。 Android开发,最常用的混淆工具是ProGuard。...ProGuard 使用 ProGuard 来混淆Android应用一般需要以下几个步骤: 启用ProGuardAndroid项目中,找到build.gradle文件,然后android节,找到buildTypes...这些规则proguard-rules.pro文件定义的,这个文件通常位于应用模块的根目录。在这个文件,可以添加一些保留规则,告诉ProGuard不要混淆某些类、方法或者变量。...制作和发布恶意软件:有些人可能会使用反混淆工具来修改原始应用,添加恶意代码,病毒、木马或间谍软件,然后将它们发布到互联网上。 虽然反混淆是一种技术手段,但如何使用它取决于个人的道德和法律责任。

    39630

    Android 代码混淆规则

    如果开启了混淆,Proguard默认情况下会对所有代码,包括第三方包都进行混淆,可是有些代码或者第三方包是不能混淆的,这就需要我们手动编写混淆规则来保持不能被混淆的部分。 2....Proguard作用 Android的“混淆”可以分为两部分,一部分是 Java 代码的优化与混淆,依靠 proguard 混淆器来实现;另一部分是资源压缩,将移除项目及依赖的未被使用的资源(资源压缩严格意义上跟混淆没啥关系...2.2 资源压缩 资源压缩将移除项目及依赖的未被使用的资源,这在减少 apk 包体积上会有不错的效果,一般建议开启。...Proguard使用 7.1 开启混淆 项目的可执行工程Module打开build.gradle文件进行编辑: android { .........这里面是一些比较常规的不能被混淆的代码规则proguard-rules.pro:针对自己的项目需要特别定义的混淆规则,它位于项目每个Module的根目录下面,里面的内容需要我们自己编写

    2.5K10

    iOS代码安全加固利器:深入探讨字符串和代码混淆器的作用

    (通过这种方式创建的工程文件结构方面可能和直接使用eclipse或android-studio创建的工程有略微差别,但是影响不大)android 2.3之后,sdk中就已经集成了混淆器proguard...这样代码混淆功能就开启了,在打签名包,项目会自动进行代码混淆。...对于eclipse工程来说,代码混淆的规则 proguard-project.txt 文件,我们需要根据规则去选择哪些代码需要混淆,哪些代码(一般我们引用的第三发jar包,如果已经被混淆过,就不能再混淆...编写proguard-project.txt文件的规则,后面介绍咯。...不过我们使用代码混淆的时候可能还有一些坑,例如工程引用了很多外部的,导致代码函数数量超过了65535,混淆的时候可能会出错。此时需要分文件混淆,也就是把所有的代码分成两个部分来进行混淆。

    18210

    从0系统学Android--1.3创建你的第一个 Android 项目

    APP 目录下进行分析 build 编译自动生成的文件 libs 使用了第三方 jar ,存放目录 androidTest 编写 Android Test 测试用例的,可以对项目进行一些自动化测试 Java...Activity 不同系统版本增加的新特性和功能可以比较旧的系统上仍然使用(兼容到 Android 2.1)。...界面是不在 Activity 中直接编写的。而是布局文件编写界面。...proguardFiles 用于指定混淆使用规则文件,这里指定了两个文件,一个是 proguard-android.txt ,这个 Android SDK 下面,是所有项目通用的混淆规则,第二个是...proguard-rules.pro 在当前根目录下,里面编写当前项目的混淆规则,通过 Android Studio 直接运行的都是测试安装文件。

    56120

    【解决问题的思路】its super classes have no public methods with the @Subscribe annotation

    https://github.com/greenrobot/EventBus#r8-proguard 检查你的压缩/混淆规则。...第三方也可能用到反射,并且由于第三方实际上是您的应用的一部分,您 (作为应用开发者) 将负责这些以及您自己的代码中使用的反射。...第三方可能附带了它们自己的规则,但是切记,有些不一定是为 Android 编写的,抑或是未考虑缩减问题,因此它们可能需要其他配置。 解决方案 明白了前因后果之后,解决方案就应然而生了。...方案一 关闭R8压缩 minifyEnabled false 但是这样会使得你的应用增大不少,比如你使用了某个第三方,应用使用了其中很小一部分,但打包所有代码都会保留在应用。...,并没有发现什么问题 EventBus的issues中看看是否有同样的问题,果然是有的,并知道了是R8压缩导致的 去google官网查看R8相关介绍,并知道了原因,且提供了解决方案 举一反三,也适用其他的问题

    1.3K10

    Android代码混淆之混淆规则

    ProGuard默认会对第三方也进行混淆的,而第三方有的已经混淆过了,有的使用了Java反射技术,所以我们进行代码混淆的时候要排除这些第三方。...排除对第三方的混淆需要在混淆规则文件(通常是:proguard-project.txt或proguard.cfg或proguard-rules.pro或proguard-rules.txt也可以是其它的文件名只要在配置文件中将含有混淆规则的文件名配置进去就行了...)添加如下规则: 1.如果使用了Gson之类的工具要使JavaBean类即实体类不被混淆。...4.对第三方的类不进行混淆 a.混淆保护引用的第三方jar包 :-libraryjars libs/baidumapapi_v3_2_0.jar #保护引用的第三方jar包不被混淆 注意:使用...b.混淆保护第三方jar包的类不被混淆 :-keep class com.baidu.** { *; } #让ProGuard不要警告找不到com.baidu.

    1.5K20

    Android组件化架构

    组件化中流行的数据有Jetpack套件的Room。它通过注解的形式完成数据的创建、增删改查等操作。使用简单、高效。...组件化开发,我们将normal级别的权限放在CommonModule每个module中分别申请dangerous级别的权限,这样的好处是当添加或移除某个模块移除dangerous级别权限,做到最大程度的解耦...的规则路径 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro...' } } 每个module创建之后,都会自带一个proguard-rules.pro的自定义混淆文件,每个module可以有自己的混淆规则。...方案:将固定的第三方混淆放到CommonModule,每个module独有的引用混淆放在各自的的proguard-rules.pro,最后App 的proguard-rules.pro中放入Android

    1.1K10

    一篇文章带你领略Android混淆的魅力

    以上代码proguard-android.txt 表示 Android 系统为我们提供的默认混淆规则文件,而 proguard-rules.pro 则是我们想要自定义的混淆规则,至于如何自定义混淆规则我们将在接下来会讲到...: -keep class twitter4j.** { *; } -dontwarn twitter4j.** 其他的命令用法可参考 Android 系统提供的默认混淆规则: #混淆不生成大小写混合的类名...其实,我们使用代码混淆ProGuard 对我们项目中大部分代码进行了混淆操作,为了防止编译出错,我们应该通过 keep 命令保留一些元素不被混淆。...此外,我们每次使用 ProGuard 创建发布构建都都会覆盖之前版本的 mapping.txt 文件,因此我们每次发布新版本都必须小心地保存一个副本。...哈哈,就不卖关子了,其实很简单,只要生成一套自己的 txt 格式的混淆字典,然后在混淆规则 Proguard-rules.pro 应用一下即可: ?

    97020

    Android开发:请你吃一顿史上最全的Android混淆大餐

    以上代码proguard-android.txt 表示 Android 系统为我们提供的默认混淆规则文件,而 proguard-rules.pro 则是我们想要自定义的混淆规则,至于如何自定义混淆规则我们将在接下来会讲到...其他命令 dontwarn -dontwarn 命令一般我们引入新的 library 时会使用到,常用于处理 library 无法解决的警告。...: -keep class twitter4j.** { *; } -dontwarn twitter4j.** 其他的命令用法可参考 Android 系统提供的默认混淆规则: #混淆不生成大小写混合的类名...其实,我们使用代码混淆ProGuard 对我们项目中大部分代码进行了混淆操作,为了防止编译出错,我们应该通过 keep 命令保留一些元素不被混淆。...此外,我们每次使用 ProGuard 创建发布构建都都会覆盖之前版本的 mapping.txt 文件,因此我们每次发布新版本都必须小心地保存一个副本。

    4.8K30

    深入探索 Android 包瘦身(上)

    使用如下规则可以关闭混淆: -dontobfuscate 关闭混淆 Proguard 的优化细节 Proguard 中所做的优化包括 内联、修饰符、合并类和方法等 30 多种优化项,特定的情况下,它尽可能地做了相应的优化...例如,R8 本身集成 ProGuard V6.1.1 版本压缩 apk 的大小方面,与 ProGuard 的 8.5% 相比,使用 R8 apk 尺寸减小了约 10%。...优化遍历的顺序,尤其是数学运算和字符串运算可从中受益。 3、最后,ProGuard 具有独特的能力来优化使用 GSON 将对象序列化或反序列化为 JSON 的代码。...很多的代码结构都设计的比较好,比如 Fresco,它将图片加载的各个功能, webp、gif 功能进行了剥离,它们都处于单个的当中。...最后,还有一些 代码编写方面的优化,可以开发过程 尽量减少 enum 的使用,每减少一个 enum 可以减少大约 1.0 到 1.4 KB 的大小。

    2K30

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

    使用方式: build.gradle 文件配置 proguard-rules.pro 文件,然后项目构建执行混淆。...使用方式:通过工具将 APK 文件与壳程序整合在一起,然后进行签名和打包。 数据加密: 将部分敏感数据进行加密处理,字符串、文件、等,以避免数据泄露。...'), 'proguard-rules.pro'         // 默认的 ProGuard 文件和自定义的规则文件     } } 项目根目录创建一个 proguard-rules.pro 文件...// 不略过非公共类 -verbose // 输出详细信息 ​ # 第三方混淆规则 ​ # 自定义混淆规则 proguard-rules.pro 文件添加自定义的混淆规则。...使用加固技术,需要注意以下几点: 加固技术不能完全杜绝破解行为,只能增加攻击者的难度,应用程序开发过程需从多个方面提高应用程序的安全性。

    43720

    Android混淆你了解多少?

    不难看出,我们一般在打 release 包才启用混淆,因为混淆会增加额外的编译时间,所以不建议 debug 模式下启用。 此外,需要注意的是:只有启用混淆的前提下开启资源压缩才会有效!...以上代码proguard-android.txt 表示 Android 系统为我们提供的默认混淆规则文件,而 proguard-rules.pro 则是我们想要自定义的混淆规则,至于如何自定义混淆规则我们将在接下来会讲到...: 其他的命令用法可参考 Android 系统提供的默认混淆规则: #混淆不生成大小写混合的类名 -dontusemixedcaseclassnames #不跳过非公共的的类 -dontskipnonpubliclibraryclasses...其实,我们使用代码混淆ProGuard 对我们项目中大部分代码进行了混淆操作,为了防止编译出错,我们应该通过 keep 命令保留一些元素不被混淆。...StackSource 查找效率: # 保留源文件名和具体代码行号-keepattributes SourceFile,LineNumberTable 此外,我们每次使用 ProGuard 创建发布构建都都会覆盖之前版本的

    1.9K00
    领券