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

对于android支持库,推荐的proguard设置是什么?

对于Android支持库,推荐的ProGuard设置是混淆和优化代码,以减小应用的体积并提高安全性。

ProGuard是一个Java字节码优化和混淆工具,可以删除未使用的代码、压缩方法、字段和类名称,并对代码进行混淆,使得反编译变得困难。以下是推荐的ProGuard设置:

  1. 在项目的proguard-rules.pro文件中添加以下配置:
代码语言:txt
复制
-dontwarn android.support.**
-keep class android.support.** { *; }
-keep interface android.support.** { *; }

这些配置将防止ProGuard删除Android支持库的类和接口,并避免出现警告信息。

  1. 如果应用使用了特定的Android支持库模块,还需要添加相应的保留规则。例如,如果应用使用了AppCompat库,可以添加以下配置:
代码语言:txt
复制
-keep class android.support.v7.widget.** { *; }
-keep interface android.support.v7.widget.** { *; }

这些配置将保留AppCompat库中的类和接口。

  1. 如果应用使用了其他第三方库,还需要添加相应的保留规则,以确保这些库的代码不会被删除或混淆。

在使用ProGuard进行代码混淆时,需要注意以下几点:

  • 确保在发布版本中使用ProGuard进行代码混淆,而在调试版本中禁用ProGuard,以便更容易进行调试和错误追踪。
  • 在混淆代码之前,建议先进行全面的测试,以确保应用在混淆后仍然正常运行。
  • 需要定期更新ProGuard工具和Android支持库,以获取最新的优化和安全性改进。

推荐的腾讯云相关产品:腾讯移动应用安全检测(https://cloud.tencent.com/product/mas)可以帮助开发者检测应用的安全性,并提供相应的修复建议。

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

相关·内容

优化| APK瘦身最佳实践

具体使用方法:https://github.com/shwenzhang/AndResGuard。 资源文件 Lint 由于Proguard只对Java代码起作用,对于资源文件,它就无能为力了。...矢量图和分辨率无关,理论上支持任何级别的缩放。以一张常用 点赞 图标为例,在 Android中使用 Vector 矢量图,大小为: ? 而它对应xxxhdpipng格式,大小为: ?...在显示差异不大情况下,我们可以尽量复用一套图片资源,一套布局,然后再考虑特定屏幕密度。 语言资源 说完了图片,我们还要来说说语言资源。对于大多数应用,并不需要支持几十种国际化。...例如,我们应用如果只需要支持中文和英语: android { defaultConfig { ......其他 别忘了最简单,也最容易忽视,去除重复依赖,或者是引用更加轻量级,也可以达到apk瘦身效果。 在Release版本中,去除那些只会在debug时才会出现代码。

96330

编写 Android Library 最佳实践

引用者项目必须添加 Kotlin 支持 如果你是 Kotlin 编写,不管用你的人是用 Java 调还是 Kotlin,请他们把项目添加 Kotlin 支持,否则在编译期间没问题,但在运行期间很有可能遇到...('proguard-android.txt'), 'proguard-rules.pro' } 这样一来,调用者依赖了你之后,除了你自己暴露方法或者类,一些内部实现就不那么容易找到了。...把自己 ProGuard 配置文件打包进 aar 我们经常在一些开源主页介绍下面看到一段 Proguard 内容,目的是让调用者把他加到自己 app 模块 Proguard 配置文件中去。...其实 Android 编译系统早就支持模块包含自己 ProGuard 配置文件了,如果你希望你自己库里一些代码,在调用者编译时也不被混淆,可以在自己 library proguard-rules.pro...使用单个文件统一依赖版本 如果你项目分了好多模块,结构比较复杂,我这边推荐大家使用一个 versions.gradle 文件来统一所有模块依赖版本。

1.2K01

快速支持客户知识核心优势是什么

客户总是希望轻松访问信息而不是什么都需要通过联系客服人员。问题答案获得应该是快速、有用知识就能满足这个要求。 1....因为老实说,所有用户想要是全天候访问快速、最新信息。您可以通过知识将其提供给他们!4. 降低客户支持成本拥有知识可以帮助您企业降低成本。...借助知识,您可以获得有用结果,例如:用户搜索最多信息是什么?有没有多余信息?哪些文章满意率最高?哪些知识资料未能解决用户问题?...例如,如果许多用户正在阅读指南以帮助他们安装您工具或更改设置,这可能表明该过程过于复杂。您可以通过进一步简化事情来改善客户体验。...这是一种双面帮助,这意味着客户能够获得解决方案和员工来提高他们对公司流程了解。一个简单知识搭建工具推荐使用Baklib进行知识搭建,让知识管理更简便!

23610

Android性能优化(十)之App瘦身攻略

} ... } 其中,proguard-android.txt是获取默认ProGuard设置proguard-rules.pro文件用于添加自定义ProGuard规则。...备注:对于Proguard,虽然效果很明显,但仍然需要谨慎; 代码混淆会拖慢项目构建速度,因此debug模式下关掉Proguard不至于RD在运行代码时候抓狂; 因为在debug模式下关掉了Proguard...原生支持,意味着要兼容4.0以下机型需要添加适配;当然现在市面上适配4.0以下应用已经很少了。...ndk { //设置支持SO架构 abiFilters 'armeabi' } 备注:原本x86架构CPU是不支持运行arm架构So,但Intel和Google合作在x86机子系统内核层之上加入了一个名为...《WebP原理和Android支持现状介绍》 《谈谈Androidso》 《Android SO文件兼容和适配》

1.6K30

从400多k大小减到了2B,我APP是怎么优化

前言 本篇文章主要针对 Android性能优化 中 Android APK大小优化 虽然现在网速已经非常快,用户流量也很多,但是对于我们 Android apk 文件进行优化还是很有必要,动不动几十上百兆大小...Android 本身是不支持直接导入svg文件,所以我们需要将svg 文件进行转换一下.如下: 使用如下: <ImageView android:layout_marginTop="...使用如下: 转化前后对比 五、 移除无用资源 一键移除 (不推荐) 一键移除未用到资源,如果出现使用动态id加载资源会出现问题,而且这是物理删除,一旦删除将找不回了,所以能不用尽量别用,非要用请事先备份...但400多k大小变成了2B 六、资源打包设置 由于第三方引入,如appcompat-v7引入库中包含了大量国际化资源,可根据自身业务进行相应保留和删除 原始包如下: 原始包中存在各国语言,所以我们一般只需要保留中文即可...如果不进行配置会自动打包全cpu架构动态进入apk,而对于真机,只需要保留一个armeabi或者armeabi-v7a就可以了,所以可以进行一下配置 //配置so架构(真机: arm ,模拟器

1.3K40

学(kao)习(bei)官方关于64k异常处理 ^_^

解决Android 64k 要解决Android64k,你需要将你应用项目设置为使用 Dalvik 可执行文件分包配置,其次需要对项目进行以下修改,具体取决于应用支持最低 Android 版本。...true ... ... } 如果 minSdkVersion 设置为 20 或更低值,则必须按如下方式使用 Dalvik 可执行文件分包支持android { defaultConfig...Dalvik 可执行文件分包支持局限性 Dalvik 可执行文件分包支持具有一些已知局限性,将其纳入APP应用构建配置之中时,我们应该注意这些局限性并进行针对性测试: 启动期间在设备数据分区中安装...对于开发定制,将 minSdkVersion 设置为 21。...对于发布定制,将 minSdkVersion 设置为适于您实际最低支持级别。此设置生成 Dalvik 可执行文件分包 APK 可兼容更多设备,但构建时间更长。

94720

Android开发中安全

根据Android四大框架来解说安全机制 代码安全 java不同于C/C++,java是解释性语言,存在代码被反编译隐患; 默认混淆器为proguard,最新版本为4.7; proguard...配置方法为在Android.mk中设置LOCAL_PROGUARD_FLAG_FILES := proguard.flags packages/apps/Launcher2/proguard.flags...另外通过keypass可以设置数字证书私钥密码,通过keysize可以设置算法位长,默认为1024比特,推荐2048比特及更长,通过storepass可以设置证书密码。...目前ksoap不支持WS-Security TCP层 SSL、TSL 数据链路层 WAPI 数据安全 Android采用SQLite目前采用明文存储数据;安全涉及加密、读写、搜索等。...访问数据方法为: 文件方式 数据权限开放 配置文件开放 Intent通信 文件访问控制 Android在权限管理上应用了LinuxACL(Access Control List)权限机制

90090

Android 开发17个建议,紧跟Google官方,进阶必看!

摘要 使用 Gradle 和它推荐工程结构 把密码和敏感数据放在gradle.properties 不要自己写 HTTP 客户端,使用Volley或OkHttp 使用Jackson解析JSON数据...jar文件,那么它们可能成为永久版本,如2.1.1.下载jar包更新他们是很繁琐, 这个问题Maven很好解决了,这在Android Gradle构建中也是推荐方法。...使用它时先安装JDK8,在Android Studio工程结构对话框中把它设置成为SDK路径,同时设置JAVA8_HOME和JAVA7_HOME环境变量, 然后在工程根目录下配置 build.gradle...Designtime attributes 设计时布局属性,Android Studio已经提供支持,而不是硬编码android:text (译者注:墙内也可以参考stormzhang这篇博客链接)。...Android SDK支持其它文件,styles这个文件名称并没有作用,起作用是在文件 里xml标签。

55810

Android App瘦身实战

可以看到APK由以下主要部分组成: 文件/目录 描述 lib/ 存放文件,存放so文件,可能会有armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips,大多数情况下只需要支持...图片优化 为了支持Android设备DPI多样化([l|m|tv|h|x|xx|xxx]dpi)以及用户对高质量UI期待,往往在App中使用了大量图片以及不同格式,例如:PNG、JPG 、WebP...但是Android从4.0才开始WebP原生支持,但是不支持包含透明度,直到Android 4.2.1+才支持显示含透明度WebP。...资源混淆 这里推荐使用微信开源资源混淆AndResGuard,具体使用方法请查看安装包立减1M–微信Android资源混淆打包工具 无用资源优化 在上面的介绍中,可以通过shrinkResources...删除资源包中对应资源文件。 重复资源优化 产生重复资源原因是不同的人,在开发时候没有注意资源可重用,对于人数比较少,规范到位是可以避免,但是对于业务比较多,就会造成资源重复。

1.7K80

android混淆那些坑

ProGuard简介 在最新Android Studio 2.2.2版本创建Android工程中,module中build.gradle有如下一段配置。...再压缩步骤中,ProGuard或从上述EntryPoint开始递归遍历,搜索那些类和类成员在使用。对于没有被使用类和类成员,就会在压缩阶段丢弃。...接下来优化步骤中,那些非EntryPoint类、方法都会被设置为private、static或final,不使用参数会被移除,此外,有些方法会被标记为内联。...(windows大小写不敏感) -dontusemixedcaseclassnames # 指定不去忽略非公共类 # 默认跳过,有些情况下编写代码与类类在同一个包下,并且持有包中内容引用...# 指定混淆时采用算法,后面的参数是一个过滤器 # 这个过滤器是谷歌推荐算法,一般不改变 -optimizations !

3.1K60

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

想一下你项目中可能存在典型 common(公共) 模块(在 Instant Apps(即时应用程序)术语中,我们将称这个模块为 base feature(基础功能) 模块):它可能依赖于支持许多部分...在这种情况下,ProGuard(混淆)能够分析你整个代码,找出哪些类被使用,哪些可以被安全地删除。 **在即时应用程序构建中,每个功能模块都会生成自己 APK。...要解决这个问题,首先要启用 ProGuard(混淆)来开发即时应用程序(例如使用刚刚在前面步骤中设置构建方式)。...更好方法是在完整,可安装应用程序中重新使用 ProGuard(混淆)映射文件,但设置和维护起来很困难。更简单方法是简单地禁用非基本特征中混淆。...构建并测试你即时应用程序 如果你按照步骤 1 中进行了最初 ProGuard(混淆)设置,并且正确执行了步骤 2-4,那么到目前为止,你应该拥有一个较小,经过优化即时应用,该应用不会因 ProGuard

2.5K30

升级Android支持版本遇到两个问题

公司项目之前support Library 版本比较混乱,各moudle有好几个版本v7包和v4包,而且版本还比较低,今天抽时间统一了下支持以及buildToolsVersion等版本,但是遇到了两个问题...在主题设置隐藏ActionBar无效 最初我appcompat-v7版本是20,所以activity继承是ActionBarActivity,所以在style文件里是这样设置是有用: true 升级到26.1.0后,ActionBarActivity被AppCompatActivity替代,这时候用android:windowActionBar这种方式设置就不行了,...:”,至于这两种写法区别: 若添加在属性名称前添加 andoird: 时即指定属性为 android 包下。...所以错误地使用 android:windowActionBar 和 android:windowNoTitle,应该使用 windowActionBar 和 windowNoTitle

62720

如何用kotlin开发同时支持iOS和Android

如何用kotlin开发同时支持iOS和Android 虽说kotlin-native可以支持链接到c,java,objective-c等语言,甚至可以进行原生开发,但是在使用过程中并不友好,配置繁琐且...通过kotlin构建不失为一个好办法,可以将iOS和安卓共有的参数、model和通用方法用kotlin写成,并分别打包给两个平台使用,在未来应该是一个可行性方案。...下面就介绍一下怎么用kotlin来开发一个支持两个平台: 新建Gradle工程 一、在idea中打开 File -> New -> Project 二、在侧边栏选择gradle并取消勾选java 三...、设置项目的GroupId、artifactId、 Version信息 四、选择gradle环境,如果选择本地配置,可以省去配置时间 五、配置项目名称和存放路径,并Finish 写Demo代码 在根目录新建一个名为...src文件夹,并在里面按照java开发方式添加package:com.leacode.model 新建名为base.kt文件 package com.leacode.model const val

2.9K20

Android 代码混淆规则

大家好,又见面了,我是你们朋友全栈君。 1. Proguard介绍 Android SDK自带了混淆工具Proguard。它位于SDK根目录\tools\proguard下面。...Proguard作用 Android“混淆”可以分为两部分,一部分是 Java 代码优化与混淆,依靠 proguard 混淆器来实现;另一部分是资源压缩,将移除项目及依赖中未被使用资源(资源压缩严格意义上跟混淆没啥关系...code/allocation/variable:混淆时所采用算法(谷歌推荐算法) -libraryjars libs(*.jar;):添加支持jar(引入libs下所有jar包) -renamesourcefileattribute...:混淆规则配置文件 proguard-android.txt:AndroidStudio默认自动导入规则,这个文件位于Android SDK根目录\tools\proguard\proguard-android.txt...(谷歌推荐算法) -optimizations !

2.5K10

Android安全攻防战,反编译与混淆技术完全解析(下)

因为对于我们而言可能Cellphone类call()方法意味着很多信息,而A类b()方法则没有任何意义,但是对于计算机而言,它们都是平等,计算机不会试图去理解Cellphone是什么意思,它只会按照设定好逻辑来去执行这些代码...对第三方进行保留,不混淆android-support,以及LitePal代码。 下面我们就来逐一实现这些目标。...经过这些例子演示,相信大家已经对Proguard用法有了相当不错理解了,那么根据自己业务需求来去编写混淆配置相信也不是什么难事了吧?...实际上Android对混淆Jar包支持在很早之前就有了,不管你使用多老版本SDK,都能在 /tools目录下找到proguard这个文件夹。...当然除了使用混淆之外,还有一些加固软件也能提升程序安全性,不过这些软件都是第三方,并非Google原生支持,所以我就不进行讲解和推荐了。

1.6K70

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

(特别是对于那些使用Project视图,而不是Android视图) 尝试创建一个文件夹(例如tools),并将所有这些文件放入此文件夹。 ?...flavors Flavours用于创建具有不同设置构建。...proguard Android proguard用来做三件事: 压缩未使用代码 — 帮助你不超出64k限制 优化代码和apk 混淆代码 — 使你APK难以做逆向工程 问题是混淆和代码优化显着增加了编译时间...用于调试构建Proguard规则必须具有以下行以强制proguard忽略警告,跳过代码混淆和优化: ? 对于发布版本,设置proguard规则将会更加困难,因为几乎每个都有自己特定规则。...幸运是,有一个开源代码 —  android-proguard-snippets,它包含所有主要proguard规则。 ?

65120

「玲珑宝塔」优化 Apk 包大小

1.1 设置支持语言(减少 0.2 MB) 关于这块,个人觉得虽然占比较小,但是用啥玩啥,用不到直接干掉。...设置完之后打个包,看下有没有什么变化。 ? 从上图中可以很清晰看到,经过设置支持国家语言后,包大小减少了 0.2 MB。随后我们看下资源映射文件中关于 string 中会有什么变化。 ?...默认语言中设置为中文,且应用也只支持了中文,少了好多东西,爽得很~ 1.2 设置支持 CPU 架构类型(减少 1.5 MB) 话说这里 lib 为何兼容了这么多 CPU 架构类型???...目前而言,项目中使用到真正用到 So 没几个,全部兼容太过于浪费,据说 arm 属于通用,那么这里同语言设置一样,仅支持 arm 即可。 defaultConfig { ......ndk { // 设置支持SO架构 abiFilters "armeabi" }} 打包运行后,继续查看现在包大小: ?

81620
领券