展开

关键词

android

为了防止自己的劳动成果被别人窃取,代码能有效防止被反编译,下面来总结以下代码的步骤: 1. 最重要的就是在proguard-project.txt添加的申明了:  a. 将你不需要的部分申明进来,因为有些类经过会导致程序编译不通过,如下: -keep public class * extends android.app.Fragment   -keep public (model无关紧要,不也没多大关系)如: -keep class com.bank.pingan.model.** { *; } 下面在贴上关于Umeng分享统计的避免的申明 -dontwarn OK, 最后一步,打签名包测试,如果有问题,仔细看下Log也许有得类不能,那么你得加入到proguard-project.txt文件中 -------以上就是代码的全过程了 最后贴上proguard-project.txt

44190

Android设置

设置对sighed APK进行代码和精简,从而使得发布的代码可以防止被别人反编译解析。 注意,直接build生成的APK是不进行的,必须是signed的apk才会 app下的build.gradle中配置 buildTypes { release { minifyEnabled true -dontskipnonpubliclibraryclasses # 这句话能够使我们的项目后产生映射文件 # 包含有类名->后类名的映射关系 -verbose # 指定不去忽略非公共库的类成员 -dontskipnonpubliclibraryclassmembers # 不做预校验,preverify是proguard的四个步骤之一,Android不需要preverify,去掉这一步能够加快速度 -dontpreverify # 保留Annotation不 -keepattributes *Annotation*,InnerClasses # 避免泛型 -keepattributes Signature

40510
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年50元,还有多款热门云产品满足您的上云需求

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

    Android 打包

    代码代码原因Java 是一种跨平台的、解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中。 为了防止这种现象,我们可以使用 Java 器对 Java 字节码进行。 被过的程序代码,仍然遵照原来的档案格式和指令集,执行结果也与前一样,只是器将代码中的所有变量、函数、类的名称变为简短的英文字母代号,在缺乏相应的函数名和程序注释的况下,即使被反编译,也将难以阅读 原则jni方法不可,因为需要与native方法保持一致;反射用到的类不(否则反射可能出现问题);AndroidMainfest中的类不,四大组件和Application的子类和Framework 等框架时,所写的JSON对象类不,否则无法将JSON解析成对应的对象;使用第三方开源库或者引用其他第三方的SDK包时,需要在文件中加入对应的规则;有用到WEBView的JS调用也需要保证写的接口方法不

    31430

    android那些坑

    ProGuard简介在最新的Android Studio 2.2.2版本创建的Android工程中,module中的build.gradle有如下一段配置。 proguard-android.txt’是Android SDK中自带的一个基本Progurad配置文件,默认是空白的,需要由开发者自行添加哪些需要哪些不,形如:-ignorewarning 时是否做预校验-verbose # 时是否记录日志 -optimizations ! native ;}在Android中一提起ProGuard,我们就会认为他是用来代码的,殊不知ProGuard一共包括以下4步。 主要有三步骤:基本# 代码压缩比,在0~7之间,默认为5,一般不下需要修改-optimizationpasses 5 # 时不使用大小写合,后的类名为小写# windows下的同学还是加入这个选项吧

    1.3K60

    Android 那些事儿

    本文主要讲述了代码和资源的原理,Studio默认的方案,的参数,以及如何对Apk进行代码(自定义文件)和资源(结合微信和美团两种方案),避免Apk被逆向。 未代码的反编译操作非常简单,网上有很多教程, 也可以通过使用Android Studio自带的apk分析工具(Build—-Analyze APK)直接看到未Apk的源代码和原始的资源文件。 Android Studio 默认的方案及字段解读开启参见google官方文档压缩代码和资源要通过Proguard启动代码压缩,在build.gradle文件内相应的构建类型中添加minifyEnabled 是proguard的四个步骤之一,Android不需要preverify,去掉这一步能够加快速度。 ProGuard官方问题解答;参考文献:1、Android 项目的代码Android proguard 使用说明2、google 官方文档3、官方网址4、Android快速配置之@Keep5

    1.8K50

    android和反编译

    Android Studio: 只需在build.gradle(Module:app)中的buildTypes中增加release的编译选项即可,如下: buildTypes { release 老版本开启的命令是runProguard,现在统一用minifyEnabled命令了,将其设为true就好了。  ),如下:proguard.config=${sdk.dir}toolsproguardproguard-android.txt:proguard-project.txt1 同样,生成签名时代码就会被 语法 请参考${sdk.dir}toolsproguardproguard-android.txt文件,需要注意的是文件中虽然有了不Parcelable的语句,如下:-keep class * -keep class com.linc.datatype.XXInfo {*;}1 为微信分享而引入的jar包,我们不需要对其进行,也需要在proguard-android.txt中注明,如下:-

    34680

    Android 问题排查

    问题近期在开发过程中,突然出现后程序出现运行时异常,编译是正常的,不也是正常的, 错误信息如下提示12-07 14:10:27.056 10603-10603? 2、考虑到关闭正常,开启异常,那么就定位到时的问题 3、既然是问题那就查看配置文件proguard-rules.pro,基本的配置都已经防了 4、接下来的思路就是通过反编译来查看 结论综上,我们可以分析出来是我们的android包下面的文件都被了,于是我们把-keep class android.content.**{*;}和-keep class android.app.* *{*;}合二为一-keep class android.**{*;} 不过按照道理来讲这个不应该被,系统会做处理,猜测可能是某个配置导致系统的一些配置失效,至于该工程为啥这么奇葩待后续分析。 所以以后遇到的问题就按照提示一步一步排查,一定要反编译文件来分析问题,不然无法定位原因。还有第一次后建议反编译查看一下包里面的代码,有没有需要的核心代码被keep掉了。

    91720

    浅谈Android 和加固

    :针对项目代码,代码通常将代码中的各种元素(变量、函数、类名等)改为无意义的名字,使得阅读的人无法通过名称猜测其用途,增大反编译者的理解难度。 虽然代码可以提高反编译的门槛,但是对开发者本身也增大了调试除错的难度。开发人员通常需要保留原始未代码用于调试。 操作时机:项目打包时加固:针对apk,加固是多维度的安全防护方案,包括反破解、反逆向、防篡改等,可以防止应用被各类常见破解工具逆向,安全性要远大于单纯的代码。 操作时机:项目打包成的apk文件以上,用于让apk被反编译后获取的代码难理解,加固用于让apk难于被反编译。两种操作都是对项目的安全措施,两个操作是不冲突的,可以选择其一,也可以两个操作都做。

    2.7K30

    Android 是啥玩意儿?

    什么是 Android,是伴随着Android系统的流行而产生的一种Android APP保护技术,用于保护APP不被破解和逆向分析。 的优缺点优点:代码后阅读性降低,反编译后破译程序难度提高后字节数减少,减少了应用的体积缺点:后,测试不充分可能导致某些功能不能使用只能提高反编译的门槛,并不能完全做到代码安全如何开启 Android自带一个规则文件proguard-android.txt,这个文件在SDK目录下,里面有一些默认自带的规则。 规则基本语法文件采用白名单法,意思是不在白名单里面的都要。 log: Android SDK 默认提供了解析工具,可分别使用命令行和GUI两种方式解析,工具位置:toolsproguardbin解析日志时,需要release打包同时生成的mapping.txt

    53541

    Android你了解多少?

    Android 日常开发过程中,是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码的基本操作。那么,到底是什么? 的好处的好处就是它的目的:令 APK 难以被逆向工程,即很大程度上增加反编译的成本。此外,Android 当中的还能够在打包时移除无用资源,显著减少 APK 体积。 2Android 当中的Android 中,我们平常所说的其实有两层意思,一个是 Java 代码的,另外一个是资源的压缩。其实这两者之间并没有什么关联,只不过习惯性地放在一起来使用。 那么,说了这么多,Android 平台上到底该如何开启呢? 以上代码中的 proguard-android.txt 表示 Android 系统为我们提供的默认规则文件,而 proguard-rules.pro 则是我们想要自定义的规则,至于如何自定义规则我们将在接下来会讲到

    51700

    Android 从入门到精通

    简介作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行处理,从而让我们代码即使被反编译,也难以阅读。 概念虽然容易,但很多初学者也只是网上搜一些成型的规则粘贴进自己项目,并没有对有个深入的理解。 说在前面这里我们直接用Android Studio来说明如何进行Android Studio自身集成Java语言的ProGuard作为压缩,优化和工具,配合Gradle构建工具使用很简单,只需要在工程应用目录的 -dontoptimize 关闭优化-optimizationpasses n 表示proguard对代码进行迭代优化的次数,Android一般为5(Obfuscation):默认开启,增大反编译难度 自定义的View默认也不会被;所以像网上贴的很多排除自定义View,或四大组件被的规则在Android Studio中是无需加入的;与服务端交互时,使用GSON、fastjson等框架解析服务端数据时

    55590

    proguar在Android中的用法

    器通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和。结果是一个比較小的.apk文件,该文件比較难进行逆向project。 因此,当你的应用程序对安全敏感(要求高),比如当你授权应用程序的时候,器是一种重要的保护手段。

    16420

    Android-Proguard()

    以我们的常用开发工具andorid studio 为例,Android Studio自身集成Java语言的ProGuard作为压缩,优化,和预校验,并配合Gradle工具进行构建,我们只需要在工程应用目录的 除了proguard之外,还有一个DexGuard,是专门用来优化Android应用的。它包括资源,字符串加密,类加密和dex文件分割等。 它是在android编译的时候直接产生Dalvik字节码.......     $MyClass{*;}#使用Java的基本规则来保护特定类不被,比如用extends,implement等这些Java规则,#如下:保持Android底层组件和类不要  -keep public 自定义的View默认也不会被;所以像网上贴的很多排除自定义View,或四大组件被的规则在Android Studio中是无需加入的;4,与服务端交互时,使用GSON、fastjson等框架解析服务端数据时

    59640

    Android Proguard()

    (下面会讲) 除了proguard之外,还有一个DexGuard,是专门用来优化Android应用的。它的功能包括资源,字符串加密,类加密和dex文件分割等。 那我们的命令可以这样写:java -jar proguard.jar @proguard.cfg 这个文件也就是我们在Android Studio中经常配置的文件了。 配置-----dontobfuscate 声明不。默认情况下,是开启的。除了keep配置中声明的类,其它的类或者类的成员后会改成简短随机的名字。 如果没有这个配置,在第一次打包之后,他们两个方法可能会被赋予不同的名。如果说下一次添加代码的时候有一个类同时实现了两个接口,那么的时候必然会将两个后的方法名统一起来。 相关的点就这些了,下面的例子中是Android应用的默认文件。

    1.3K30

    042android初级篇之android代码ProGuard

    代码能有效防止被反编译,防止自己的劳动成果被别人窃取;配置文件及开关的设置配置文件的位置以及开关的设置位置,android studio 和eclipse稍微有些差异,这里以android sudio 为例:android工程中配置文件:proguard-rules.pro (默认文件名)开关:在 build.gradle buildTypes { release { minifyEnabled proguard-android.txt), proguard-rules.pro }}如上在buildTypes为release版本时,设置minifyEnabled为true,即使用proguard-rules.pro脚本进行 如果你的代码后会产生bug的话,log提示中是后的代码,希望定位到源代码的话就可以根据mapping.txt反推。 Android 代码 选项说明使用proguardandroid代码

    39030

    Android代码错误堆栈还原

    前言相信做过app的同学对代码应该不陌生吧,如果陌生就自行百度,这里不做普及。我们先思考一个问题,如果我们把代码了,如果出错了怎么定位问题? 答案非常简单,只要稍微实践下你就明白了,下面就是给你整理的对代码错误堆栈还原的方法。如何Android Studio实现很简单,只需要在build.gradle进行如下配置即可: buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile(proguard-android.txt), proguard-rules.pro } }这个是在发布模式下去代码的,如果想在调试模式下代码,就增加一个 ,它里面存放着源码到之后的代码的映射信息,这个文件是在我们执行proguard之后产生的,产生的位置如下图所示:?

    53750

    一篇文章带你领略Android的魅力

    1.1 的好处的好处就是它的目的:令 APK 难以被逆向工程,即很大程度上增加反编译的成本。此外,Android 当中的还能够在打包时移除无用资源,显著减少 APK 体积。 最后,还能以变通方式避免 Android 中常见的 64k 方法数引用的限制。我们先来看一下前后的 APK 结构对比。前:?后:? 2 Android当中的Android 中,我们平常所说的其实有两层意思,一个是 Java 代码的,另外一个是资源的压缩。其实这两者之间并没有什么关联,只不过习惯性地放在一起来使用。 那么,说了这么多,Android 平台上到底该如何开启呢? 以上代码中的 proguard-android.txt 表示 Android 系统为我们提供的默认规则文件,而 proguard-rules.pro 则是我们想要自定义的规则,至于如何自定义规则我们将在接下来会讲到

    28420

    丧心病狂的Android文件生成器

    效果后 使用获取文件自己生成规则使用intellij idea 打开 proguard-creater 工程 编辑 Main.java 根据提示填写相应参数运行即可使用已有规则前往proguard-file 下载对应的文件即可Android工程配置开启 buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile (proguard-android.txt), proguard-rules.pro }}将文件导入到 proguard-rules.pro 同一目录下编辑proguard-rules.pro,添加如下内容 5# 指定不去忽略非公共的库的类的成员-dontskipnonpubliclibraryclassmembers# 指定是采用的算法-optimizations ! classmerging*# 指定外部模糊字典 proguard-chinese.txt 改为文件名,下同-obfuscationdictionary proguard-chinese.txt# 指定

    40700

    Android开发:请你吃一顿史上最全的Android大餐

    Android 日常开发过程中,是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码的基本操作。那么,到底是什么? 的好处的好处就是它的目的:令 APK 难以被逆向工程,即很大程度上增加反编译的成本。此外,Android 当中的还能够在打包时移除无用资源,显著减少 APK 体积。 最后,还能以变通方式避免 Android 中常见的 64k 方法数引用的限制。我们先来看一下前后的 APK 结构对比:?? Android 当中的Android 中,我们平常所说的其实有两层意思,一个是 Java 代码的,另外一个是资源的压缩。其实这两者之间并没有什么关联,只不过习惯性地放在一起来使用。 那么,说了这么多,Android 平台上到底该如何开启呢?

    48620

    android代码

    proguard 就是这样的工具,它可以分析一组class 的结构,根据用户的配置,然后把这些class 文件的可以java 元素名掉。 为了避免风险,你可以只是部分关键的代码,但是这样你的的效果也会有所降低。 常见的不能的androidCode Android 程序 ,下面这样代码的时候要注意保留。 Android系统组件,系统组件有固定的方法被系统调用。 被Android Resource 文件引用到的。名字已经固定,也不能,比如自定义的View 。 本地方法,不能修改本地方法名 annotations 注释 数据库驱动 有些resource 文件 用到反射的地方 如何实施 现在的系统已经配置为时候会保留 Android系统组件 自定义View Android Parcelable Android R 文件 Android Parcelable 枚举 各个开发人员必须检查自己的code 是否用到反射 ,和其他不能的地方。

    43280

    扫码关注云+社区

    领取腾讯云代金券