Android Studio 下混淆 文件配置 问题 初探(一)

1.参考资料 https://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk-linux/tools/proguard/docs/index.html 官方文档及网上博客 最近的项目总结

2. Android Studio(以后简称AS)  下默认有proguard-project.txt ,为混淆的配置文件 配置路径在该工程下的gradel中。实际为一个  proguard

3混淆对象  proguard默认是所有文件均进行混淆

在下列情况一般不进行混淆 :

a 四大组件、support包(一般v4、v7)

b 资源文件、r文件

c js调用

d 反射和调用反射的类

e jni调用

f so库、jar包(一般来说已经进行了混淆)

4.基本语法 由于网上资料均 省略这一部分 本文给出重要部分:

a. 通配符 与java类似  *-》代表匹配所有字符   **表示该包类所有类及其子路径的类

b. 如果保持一个类不混淆-keep  class 类名 {*;}  类名是全名(包含包名)

c. 保持一个类的子类不被混淆   -keep * extends 类名 { *;} 跟java很像是不是?

e. 保持一个类的单个方法不变 -keepclassmembers class 类名 {可含有通配符的方法名}

f. 保持含有某个方法的类不被混淆 -keepclasseswithmembers class 类名 {可含有通配符的方法名}

详见https://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk-linux/tools/proguard/docs/index.html#manual/usage.html

5 其他

a.optimize是否采用算法进行压缩

b. shrink是否删除unused(未使用文件)这个要小心如反射等

c-libraryjars为导入的jar包、so库 (只是导入) gradel有些已经配置 就会报一个 ....twice
的错

 d 关闭混淆 dontobfuscate

ps :开启混淆 在build.gradel 中开启:buildTypes --》release--》 minifyEnabled
true

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-24 04:26:36

Android Studio 下混淆 文件配置 问题 初探(一)的相关文章

Android Studio下通过Gradle配置实现资源文件的模块化

当开发一个app模块个数很多的时候,资源文件就会特别多,布局也会多起来,这时所有的layout都放在同一个目录下,就会显得臃肿,而且不好找相应的布局. 最近看到相关资料,发现在Android Studio下可以配置多个res目录,用来分割不同的模块. 如下图所示,可以在一个新的模块的res目录下 创建各种资源目录: 当然还可以在res-qa目录下创建 drawable,values等目录 这些资源文件可以和原来的一样直接R文件引用. 上面仅仅是效果,还需要在 build.gradle中进行配置

Android studio 下的svn配置使用

一.Android Studio配置SVN Android Studio关联配置SVN很简单,在Settings里面,找到Version Control->Subversion:在这个页面的控制面板中的General中将Use command line client打勾勾选上,然后浏览本地的SVN安装目录,选到"svn.exe"即可: 在Use command line client下面还有一个Use system default Subversion configuration

Android Studio 代码混淆(你真的会混淆吗)

一.前言 今天要打包新产品,突然忘了混淆的参数是怎么写的了,虽然之前也混淆过,可是具体配置的参数代码有些记不起来了,因此决定花点时间写篇博客记录一下,方便以后查找和自己的记忆. 二.Android Studio 代码混淆基本配置 在工程目录下,找到 proguard-rules.pro 文件,它就是你要进行编写混淆配置的文件,在这个文件中编写混淆规则 当然,在这之前,还需要在你 module 的 build.gradle 文件中引用该混淆文件: 上面中的 proguard-android.txt

Android Studio下项目构建的Gradle配置及打包应用变体

Gradle简介 ??Gradle是一个自动化构建工具,采用Groovy的Domain Specific Language(领域特定语言)来描述和控制构建逻辑.具有语法简洁.可读性强.配置灵活等特点.基于Intellij IDEA社区版本开发的Android Studio天生支持Gradle构建程序.Groovy是一种基于JVM的敏捷开发语言,结合了Phthon.Ruby和Smalltalk的许多强大特性.同时,Groovy代码既能够与java代码很好地结合,也能够用于扩展现有的代码. Grad

Android studio下gradle Robolectric单元测试配置

android studio下gradle Robolectric单元测试配置 1.Robolectric Robolectric是一个基于junit之上的单元测试框架.它并不依赖于Android提供的测试功能,它使用了shadow objects并且运行测试于普通的工作站/服务器JVM,不像模拟器或设备需要dexing(Android dex编译器将类文件编译成Android设备上的Dalvik VM使用的格式),打包,部署和运行的过程,大大减少了测试执行的时间. 参考:安卓单元测试相关概述h

Android Studio 下项目的依赖配置

Android Studio 下项目的依赖配置 背景 项目需要用到一个github上的开源库swipelistview,原来在eclipse环境下配置过相关的依赖(导入jar包或者是lib依赖),但是在Android Studio下还是没有操作过.上网查了一下相关的资料,在stackoverflow上找到了答案.根据上面的介绍,结合实际情况,完成了依赖配置. stackoverflow答案地址 有两种方式来进行依赖配置. 1. 使用aar包(这个不太清楚原理和效果,简单查了一下和maven相关,

关于Android Studio打包混淆以及上传mapping文件

关于android Studio打包混淆以及上传mapping文件 转载请注明出处: http://blog.csdn.net/u014163726?viewmode=contents 本文出自Wrh的博客 打包 android studio的打包很简单 然后如果已经有keystore的一路next下去,如果没有的可能需要先创建keystore,最后我们就会得到一个apk文件 混淆 现在网上关于反编译的博客很多了,我在此就不多做介绍了,放上个传送门传送门 那么我们已经知道了反编译是如此的简单,我

Android studio 下的robotium自动化测试和持续集成

一.前言 Android Studio是一个Android开发环境,基于IntelliJ IDEA.类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试.作为官方主推的开发环境和停止对其他开发IDE的支持,Android Studio将成为今后唯一的android开发环境.本文主要介绍在Android Studio环境下的Robotium测试框架使用方法和持续集成. 二.在Android Studio中使用Robotium 2.1基础环

Android Studio之Gradle文件解析

本文转载自stormzhang的博客 什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. Gradle 基本概念 下面就以我的开源项目 9GAG 来详细讲解下和Gradle相关的知识, 和Gradle相关的几个文件一般有如下几个: 红色标记部分从上到下咱们来一步步分析: 1. 9GAG/app/build.gradle 这个文件是app文件夹下这个Mod