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

【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

: 在 build.gradle 构建脚本中的 " android / buildTypes " 层级中 , 配置 debug / release 相关选项 , 即可开启 ProGuard ; 设置...minifyEnabled true 配置 , 并配置 proguardFiles 混淆配置文件 , 在 Android Studio 中 , 一般会生成一个默认的混淆配置文件 ; android {...; 遇到某个包或类编译遇到警告退出 , -dontwarn 配置该包不要爆出警告 ; 遇到没有找到的类 , 使用 -keep 不要混淆该类 ; 常用的混淆配置 : " -dontwarn " : 不要报出警告信息..., 如果出现警告 , 编译打包会被终止 ; # com 包名下不要爆出警告 -dontwarn com.** " -keep " : 不要混淆的类 ; # com 包名下的类不要混淆 -keep class...---- 完整的 build.gradle 构建脚本 ; plugins { id 'com.android.application' id 'kotlin-android' } android

4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Studio 遇到问题集锦

    在 Android Studio 里编译通过之后,命令行使用 gradlew build 为什么还是会重新下载 Gradle?...三、Android Studio 的 File > Settings > Build, Execution, Deployment > Build Tools > Gradle 里选择的是「Use default...UUID 在 msconfig 的「引导」里将 Windows 10 no Hyper-V 设为默认 重启 Android Studio 里对所有 Activity 显示警告 警告信息: methods...后来在 StackOverflow 上找到 解决方案: 在 build.gradle 文件顶部添加如下代码(注意 Gradle 版本与 Gradle Plugin 的版本对应): buildscript...Generate JavaDoc 提示“错误: 编码GBK的不可映射字符” 所有相关文件的编码都是 UTF-8,在 Android Studio 里没有找到设置 JavaDoc 相关的编码设置项,于是在

    5.4K30

    Android Studio 遇到问题集锦

    在 Android Studio 里编译通过之后,命令行使用 gradlew build 为什么还是会重新下载 Gradle?...三、Android Studio 的 File > Settings > Build, Execution, Deployment > Build Tools > Gradle 里选择的是「Use default...UUID 在 msconfig 的「引导」里将 Windows 10 no Hyper-V 设为默认 重启 Android Studio 里对所有 Activity 显示警告 警告信息:...后来在 StackOverflow 上找到 解决方案: 在 build.gradle 文件顶部添加如下代码(注意 Gradle 版本与 Gradle Plugin 的版本对应): buildscript...Generate JavaDoc 提示“错误: 编码GBK的不可映射字符” 所有相关文件的编码都是 UTF-8,在 Android Studio 里没有找到设置 JavaDoc 相关的编码设置项,于是在

    6.7K20

    Android项目实战(二十五):Android studio 混淆+打包+验证是否成功

    自己没写过关于混淆打包的文章,在此补上。 下面了解Android studio环境下 项目混淆打包的操作。...意图不好的也许会反编译Apk来找到你项目中的漏洞,对项目安全做出威胁。 所以现在我们在打包一个项目之前,都要对项目进行混淆处理,让Apk无法被轻易的反编译,提高产品的安全性。...在app目录下的build.gradle文件中修改android{} 区域内代码 1、 //执行lint检查,有任何的错误或者警告提示,都会终止构建 lintOptions {...#如果有引用v4包可以添加下面这行 -keep public class * extends android.support.v4.app.Fragment #忽略警告 -ignorewarning...proguard/mapping.txt ########记录生成的日志数据,gradle build时 在本项目根目录输出-end###### #如果引用了v4或者v7包 -dontwarn android.support

    1.6K70

    ProGuard 在 Android 上的使用姿势

    enable ProGuard only for your release builds, as it’s an additional step that makes the build slower...不幸的是,ProGuard 可能会发现一些引用的类缺失,并给予告警,导致您的构建失败。 修复这个问题的关键是仔细观察构建时输出的消息,理解这些警告的内容并定位他们。...当运行时发生了 ClassNotFoundException 或 MethodNotFoundException 异常意味着您肯定缺失了某些类或者方法,也许是 ProGuard 移除了他们,又或者是因为错误配置依赖而导致无法找到他们...APK Analyzer 和 ProGuard Android Studio 集成的 APK Analyzer 可以帮您看到哪些类被 ProGuard 移除了并支持为它们生成 keep 规则。...在构建您的项目后,您可以在 /build/intermediates/proguard-files/ 目录下找到这个配置文件。 感谢 Daniel Galpin。

    2.6K40

    《Android群英传 神兵利器》读书笔记

    与Gradle的爱恨情仇 配置全局参数 配置后就可以统一管理com.android.support:design版本号了 根目录的build.gradle中 ext { // Support...系统有一个默认的debug签名 Android Studio中签名文件是“.jks”文件 Eclipse中签名文件是".keystore"文件 配置签名: signingConfigs{ xys{...在清单文件创建占位符 -> 配脚本 -> 生成重命名包(注意AS3.0变化) 系统有一个BuildConfig类文件,是无法改变值的。...如果某个对象与GC Root对象没有找到引用链,则表示該对象需要进行回收,常见的GCRoot对象有以下几种。 class:由System class loader 加载的对象。...JNI:jni相关调用的引用、变量、参数。 Thread:活着的线程。 Stack:栈中的对象。 静态:方法区类的静态属性引用的对象。 常量:方法区中的常量引用的对象(final类型)。

    57610

    android混淆那些坑

    ProGuard简介 在最新的Android Studio 2.2.2版本创建的Android工程中,module中的build.gradle有如下一段配置。...(windows大小写不敏感) -dontusemixedcaseclassnames # 指定不去忽略非公共的库的类 # 默认跳过,有些情况下编写的代码与类库中的类在同一个包下,并且持有包中内容的引用...打包时忽略警告 当在导出时,发现很多could not reference class之类的warning信息,如果确认app运行中和那些引用没有什么关系的话,就可以添加-dontwarn标签,就不会在提示这些...studio 是在build.gradle修改buildTypes如下: buildTypes { release { minifyEnabled true shrinkResources...} } 常见错误 Android Studio运行时候报packageOfficialDebug错误 解决方法一: buildTypes { release {

    3.2K60

    开发工具总结(2)之全面总结Android Studio2.X的填坑指南

    自定义android studio的配置文件目录后,无法正常安装和卸载插件(貌似2.0版本之后的插件安装卸载就有问题了)是何原因?...Android studio 源码无法关联,提示Souces for android api 25 platform not found: 解决方法: 1)找到jdk.table.xml这个文件 jdk.table.xml...原因:重复依赖导致的. 解决办法: 找到报错的那个提示,看上面报错的是哪个类,双击shift搜索一下,看这个报错的类在哪个依赖库里面用到了。...在AS中,选择以project显示项目,找到最下面的External Libraries,然后继续找,找到相对应的类库。...点开之后发现了一个pom.xml,这里面就是关于这个jar的一些配置文件,往下找,发现了一个依赖库的引用, 复制里面groupId,到你的app的build.gradle里,找到那个依赖,添加{exclude

    1.8K10

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

    混淆APK 在Android Studio当中混淆APK实在是太简单了,借助SDK中自带的Proguard工具,只需要修改build.gradle中的一行配置即可。...那么现在我们来打一个正式版的APK文件,在Android Studio导航栏中点击Build->Generate Signed APK,然后选择签名文件并输入密码,如果没有签名文件就创建一个,最终点击Finish...其实就是刚才在build.gradle的release闭包下配置的proguard-android.txt文件,这个文件存放于Android SDK>/tools/proguard目录下,我们打开来看一下...-dontwarn android.support.** 表示对android.support包下的代码不警告,因为support包中有很多代码都是在高版本中使用的,如果我们的项目指定的版本比较低在打包时就会给予警告...我们需要知道,任何一个Android Studio项目,只要编译成功之后就会在项目模块的build/intermediates/classes/debug目录下生成代码编译过后的class文件,因此只需通过打包命令将这些

    1.7K70

    从构建工具看 Android APK 编译打包流程

    那在Android Studio中,又是由谁来调度这些工具的呢?Gradle构建工具。...Gradle Task 在Android Studio中,我们运行一个debug包,Build控制台上就可以看到所有的构建相关task: Starting Gradle Daemon......比如 1)、在以前的AAPT版本,Android 清单文件中出现错误的节点元素只会被忽略或警告,而AAPT2开始会对这些节点进行报错,比如: android:name=".MainActivity...Studio的更新日志中也找到了对应的说明: Android 构建团队不断进行更改以提高生成性能,在此版本中(Android Studio 3.6),我们将默认打包工具更改为 zipflinger 以进行调试生成...参考 https://developer.android.google.cn/studio/build/index.html https://cloud.tencent.com/developer/article

    4.1K30

    手把手教你如何在Android下进行JNI开发(入门)

    在 Android Studio 下,进行JNI的开发,需要准备以下内容: (1)Android Studio 2.2以上。...如果只计划使用 ndk-build,则不需要此组件。 (4LLDB:一种调试程序,Android Studio 使用它来调试原生代码。...如果启用此复选框,Android Studio 会将 -fexceptions 标志添加到模块级 build.gradle文件的 cppFlags中,Gradle 会将其传递到 CMake。...如果启用此复选框,Android Studio 会将 -frtti 标志添加到模块级 build.gradle文件的 cppFlags中,Gradle 会将其传递到 CMake。...第二个参数取决于native method是否静态方法,如果是非静态方法,那么第二个参数是对对象的引用,如果是静态方法,则第二个参数是对它的class类的引用 剩下的参数跟Java方法参数一一对应 extern

    4.5K10

    安卓入门-熟悉Android Studio以及创建第一个安卓模块

    的字样!哈哈!终于找到了,原来就是通过android:text="Hello World!"这句代码定义的。 1.4 res目录下的结构 ?...1.6 详解build.gradle文件  不同于Eclipse,Android Studio是采用Gradle来构建项目的。...1.7 掌握日志工具的使用  Android中的日志工具类是Log(android.util.Log),这个类中提供了如下5个方法来供我们打印日志。...Log.w() 用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info高一级。...日志级别控制的好处就是,你可以很快地找到你所关心的那些日志。相信如果让你从上千行日志中查找一条崩溃信息,你一定会抓狂的吧。

    2K30

    android studio与eclipse_androidstudio源码网

    ,说下载两个插件就可以,然后我试着到应用市场下载,下载第一个插件没问题,但第二个问题加载到15个的时候,就会一直报错,无法解决,然后想着还不如狠下心来迁移到android studio里面,所以就有了如下的坑...,不过:注意这种方式导入进来的话,会有很多的问题,如果你引用了很多外部的jar包,会遇到很多乱七八糟的问题,我就是一开始由于解决不了,放弃转android studio,还好使用了eclipse生成gradle...的项目,会遇到一些gradle版本需要重新下载的问题,这些好解决,打开avd managment,下载,点击sync 同步一下,就可以自动下载,最新的android studio会帮你解决很多谷歌的资源无法访问的问题...,应该是内部做了很多的代理设置,以前用eclipse都是需要设置一个代理/镜像网址才行的. 3.第3个问题:如果你项目中引用了so文件的话,自动生成android studio项目,运行会报错,...如下的错误,一般都是由于你的android studio的build.gradle中没有引用这个libs下armeabi的so文件,你需要增加如下代码在build.gradle: 4.第三步之后

    1.1K30

    Android Studio2.2下NDK开发初试

    很久没更博了,这次来记录一下如何在Android Studio2.2中进行NDK开发吧,NDK开发嘛,就是将C/C++的代码编译成so类库,供java调用(当然c调用java也是可以的),还记得以前没有...IDE的时候,需要在linux环境编译,非常麻烦,光是看完教程就不想弄了,但不得不说Android Studio是Android开发的神器,它将一切都弄的如此简单。...+= -DSTDC_HEADERS 下一步,需要在app的build.gradle中说明ndk-build的mk文件在哪里,在android范围内添加 externalNativeBuild {...接着,Android Studio可以帮助我们构建hello-jni.c文件,在错误的地方,alt+enter后,就会发现多了一个hello-jni.c文件,里面需要引用的文件和声明的函数头,as都帮我们做好了...java对象后及时调用env->DeleteLocalRef方法手动释放本地引用  如果native method返回java对象就不需要手动release,因为java会自动回收 好了,NDK开发的基础就讲到这里吧

    97750

    Gradle的一些技巧和遇到的问题

    全局变量的使用 在多个module的情况下,不同module的build.gradle文件中有部分配置项类似,或者依赖的类库,有部分是相同的,在维护上不是很方便,这个时候就可以考虑统一配置。...在项目根目录的build.gradle文件中添加以下代码和android{}同级 ext { //全局变量控制,可在module中的build.gradle文件通过rootProject.ext.xxx...maven方式依赖,每次打开Android Studio或者点击sync按钮时,都会去maven中央仓库去取第三方的库文件,一般是jar或者aar文件。...依赖包重复的问题 遇到这样的一个错误:com.android.dex.DexException: Multiple dex files define XXXX,一般情况下,是我们项目中引用了重复的库或者...jar包引起的,我们找到去掉即可解决 ?

    1.9K30
    领券