`
zhonglunshun
  • 浏览: 138954 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android studio 使用代码混淆

 
阅读更多

对于一些安全性要求比较高的应用,需要使用代码混淆,android  studio很好的提供了这个功能,使我们能够方便的进行代码混淆;

 

1,在build.grandle添加,其中规则写在proguard-rules.pro中,也可以自定义一个文件,将其代替,比如eclipse常用的 proguard-project.txt

buildTypes {
  release {
    signingConfig signingConfigs.release
    minifyEnabled true
    proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
  }
}

 

2,在proguard-rules.pro中加入以下代码,基本可以涵盖所有

-optimizationpasses 5          # 指定代码的压缩级别
-dontusemixedcaseclassnames   # 是否使用大小写混合
-dontpreverify           # 混淆时是否做预校验
-verbose                # 混淆时是否记录日志

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  # 混淆时所采用的算法

-keep public class * extends android.app.Activity      # 保持哪些类不被混淆
-keep public class * extends android.app.Application   # 保持哪些类不被混淆
-keep public class * extends android.app.Service       # 保持哪些类不被混淆
-keep public class * extends android.content.BroadcastReceiver  # 保持哪些类不被混淆
-keep public class * extends android.content.ContentProvider    # 保持哪些类不被混淆
-keep public class * extends android.app.backup.BackupAgentHelper # 保持哪些类不被混淆
-keep public class * extends android.preference.Preference        # 保持哪些类不被混淆
-keep public class com.android.vending.licensing.ILicensingService    # 保持哪些类不被混淆

-keepclasseswithmembernames class * {  # 保持 native 方法不被混淆
    native <methods>;
}
-keepclasseswithmembers class * {   # 保持自定义控件类不被混淆
    public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {# 保持自定义控件类不被混淆
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity { # 保持自定义控件类不被混淆   
    public void *(android.view.View);
}
-keepclassmembers enum * {     # 保持枚举 enum 类不被混淆    
    public static **[] values();    
    public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆  
    public static final android.os.Parcelable$Creator *;
}

 

0
2
分享到:
评论

相关推荐

    androidStudio代码混淆插件AndroidProguard

    Android Studio是一款广泛使用的Android应用程序开发集成环境,而代码混淆是其中的一个重要环节,尤其是在发布应用时,为了提高代码的安全性和减少体积,通常会使用到Proguard工具。AndroidProguard插件则是为...

    Android-Androidstudio多module混淆成一个Jar

    本文将详细介绍如何在Android Studio中将多个Module混淆并打包成一个Jar文件。 1. **创建Module** 首先,确保你已经拥有多个独立的Android Studio Module。每个Module代表一个独立的功能或库。在Android Studio中,...

    Android studio 混淆配置详解

    在Android开发中,为了保护应用的安全性和优化APK的大小,开发者通常会使用混淆技术。Android Studio通过集成Proguard工具来实现这一目标。Proguard是一个强大的工具,它能执行四个关键操作:Shrinking(压缩)、...

    AndroidStudio清理无用冗余资源文件工具使用方法

    启用`shrinkResources`后,Gradle会在运行ProGuard(或R8)代码混淆时,一起删除未使用的资源。 三、使用步骤 1. 打开Android Studio项目。 2. 修改`build.gradle`文件,确保`minifyEnabled`和`shrinkResources`...

    Android Studio使用指南(v0.1)

    标题中提到的知识点有:《Android Studio使用指南》和版本号(v0.1),说明这是一份为Android Studio的初期用户提供入门使用的指南文档,主要目的是帮助用户快速掌握如何使用Android Studio进行Android应用的开发。...

    Android SO文件保护OLLVM混淆加固——混淆篇(二)

    本文将深入探讨如何使用OLLVM对Android SO文件进行混淆加固。 首先,我们需要了解OLLVM的工作原理。OLLVM基于LLVM(Low Level Virtual Machine),一个开源的编译器基础设施项目,它提供了编译器前端、中间表示(IR...

    Android Studio使用手册

    ### Android Studio 使用手册知识点详解 #### 一、Android Studio 简介 - **定义**:Android Studio 是一款由 Google 开发的、基于 IntelliJ IDEA 的 Android 集成开发环境(IDE)。它专为 Android 应用程序的开发与...

    Android Studio混淆导出jar

    在Android开发过程中,为了保护应用源代码的安全,开发者通常会使用代码混淆技术。混淆可以将原始的、可读性强的类名、方法名和变量名转换为无意义的短名称,使得逆向工程变得困难。Android Studio作为Android开发的...

    Android 反编译和代码混淆

    1. **ProGuard**: ProGuard是Android Studio内置的代码混淆工具,它支持优化、 Shrinking(减少代码大小)、Obfuscation(混淆)和Preverification(预验证)等功能。通过配置ProGuard规则,开发者可以自定义混淆...

    Android代码混淆前后分析

    在Android开发过程中,为了保护应用的安全性和防止反编译,开发者常常会进行代码混淆这一重要步骤。本文将深入探讨Android代码混淆的前因后果、原理以及如何实施。 首先,我们来理解什么是代码混淆。代码混淆是将源...

    Android Studio使用指南

    - 支持ProGuard和应用签名:支持代码混淆工具ProGuard以及应用签名功能,这有助于保护应用代码并确保其安全性。 - 模板向导和布局编辑器:提供了模板向导用于创建常见的Android设计和组件,同时具有丰富的布局编辑器...

    Android代码混淆配置

    本篇文章将深入探讨Android代码混淆配置的细节,帮助开发者理解如何有效地使用这一技术。 混淆是通过重命名类、方法和变量,使得原始代码变得难以理解的过程。在Android中,我们通常使用ProGuard工具进行代码混淆,...

    Android Studio 4.2.1 for Linux

    1. **基于IntelliJ IDEA**:Android Studio基于JetBrains的IntelliJ IDEA,这意味着它拥有强大的代码编辑器,支持智能代码补全、语法高亮和重构等功能,极大地提高了开发效率。 2. **Gradle集成**:Android Studio...

    Android Studio打包生成APK教程.rar

    总结,Android Studio的Release模式打包生成APK涉及多个环节,包括创建签名、配置Build Variant、代码混淆、APK优化以及发布测试。每个步骤都至关重要,确保应用的安全性、性能和用户体验。熟练掌握这些流程,将有助...

    Android Developer Tools Essentials: Android Studio to Zipalign

    以及ProGuard,一个代码混淆工具,可以减少APK大小并保护代码安全。 此外,书籍可能还会讨论版本控制工具,如Git,以及如何将其与Android Studio集成,进行团队协作。还有可能包含关于Android Studio的插件使用,...

    Android Studio入门指南

    4. 支持ProGuard和应用签名:ProGuard可以对Android应用进行代码混淆和压缩,增加逆向工程的难度。应用签名则是在发布应用前进行的一种加密操作,用于确保应用的完整性以及验证应用来源。 5. 基于模板的向导来创建...

    Android studio和Eclipse分别生成jar包并混淆jar包的demo

    在Android开发领域,Android Studio和Eclipse都是广泛使用的集成开发环境(IDE)。它们各自有其优点,但在某些情况下,开发者可能需要将项目打包成可移植的Java类库,即jar包。本文将深入探讨如何在Android Studio和...

    android studio多渠道打包

    3. 使用Gradle插件:Android Studio提供了`apply plugin: 'com.android.application'`,这使得我们可以使用Gradle的任务来处理多渠道打包。在`buildTypes`或`productFlavors`下定义不同的渠道: ```groovy android ...

Global site tag (gtag.js) - Google Analytics