zoukankan      html  css  js  c++  java
  • 【转】Android代码混淆指南

    请尊重他人的劳动成果,转载请注明出处:Android代码混淆指南 

    本文将和大家分享使用Eclipse+ADT与使用Android Studio进行代码混淆打包的方法。

    使用Eclipse+ADT进行代码混淆打包的方法


    新版本SDK下进行打包混淆

          如果使用新版本的SDK创建的Android项目会在项目的根目录下生成一个proguard-project.txt文件,该文件是默认的混淆规则文件。
    混淆打包的步骤:
    1.在proguard-project.txt文件中添加混淆的项目规则,大家可参考:《Android代码混淆之混淆规则》一文。
    2.将project.properties文件中的#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt前的#号去到。如下图:新版本SDK下进行打包混淆代码混淆配置
     
    至此,有关混淆的配置已经完成了。
    3.打包项目,依次:右键项目》Export》选择Export Android Application》Next》选择Android项目密钥(没有的话可以创建一个)》Finish即可。
    至此,项目已经混淆打包完成了,如果不放心的话,大家可以用《Android开发之反编译与防止反编译》一文中讲解的方法对试混淆后的代码进行测试。
    注意:直接运行程序生成的安装包是没有经过混淆的。
     

    老版本SDK下进行打包混淆 

          在老版本的SDK下创建的项目不会生成proguard-project.txt文件而是proguard.cfg文件。
    混淆打包的步骤:
    1.在proguard.cfg文件中添加混淆的项目规则,大家可参考:《Android代码混淆之混淆规则》一文。
    2.在project.properties文件中添加proguard.config=proguard.cfg即可。如下图:
    新版本SDK下进行打包混淆代码混淆配置2
    3.其余步骤和在新版本SDK下打包的方法一致。
     

    使用Android Studio进行代码混淆打包的方法


    使用Android Studio创建的项目会在项目侧根目录下生成一个proguard-rules.pro文件,此文件便是混淆规则文件。

    混淆打包的步骤:

    1.在proguard-rules.pro文件中添加混淆的项目规则,大家可参考:《Android代码混淆之混淆规则》一文。

    2.在Module下的build.gradle文件中将minifyEnabled false改为minifyEnabled true。

    如:

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

    其中:proguardFiles getDefaultProguardFile('proguard-android.txt')表示获取SDK下'proguard-android.txt‘文件中的默认混淆规则。

     'proguard-rules.pro'表示使用项目根目录下的 'proguard-rules.pro'文件中的混淆规则。

    提示:proguard-rules.pro文件名可以任意,只要在配置文件中指明即可。比如,从其它项目中复制一个proguard.cfg混淆规则文件,只需将上面的代码改成 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'即可,这句话表示使用项目中根目录下的proguard.cfg文件作为本项目的混淆规则文件。

    3.打包项目,使用Build菜单下的Generate Signed APK进行打包即可。注意,记得在Build Type:选项下选择release,否则只打包不会混淆。如下图:

    使用Android Studio打包项目使用Android Studio打包签名使用Android Studio生成混淆的项目

    推荐阅读:Android开发之反编译与防止反编译

    Android代码混淆技巧》

  • 相关阅读:
    M1卡的工作原理【转】
    磁卡ID卡IC卡的区别【转】
    磁卡结构【转】
    M1卡破解(自从学校升级系统之后,还准备在研究下)【转】
    RunJS演示代码
    Linux中inet_aton的问题(IP转整数)
    使用Hive UDF和GeoIP库为Hive加入IP识别功能
    hive下UDF函数的使用
    linux下smb
    使用Spring MVC表单标(转)
  • 原文地址:https://www.cnblogs.com/syjhsgcc/p/4771849.html
Copyright © 2011-2022 走看看