Android应用(apk)代码混淆笔记

project.properties

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
sdk.dir=F:\\Android2\\adt-bundle-windows-x86_64-20131030\\sdk
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-19
# android.library.reference.1=..\\*ContactsLib

proguard-project.txt

# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

-keep public class * implements java.io.Serializable {*;}

-keep class com.*.contacts.list.entity.** { *; }

-dontwarn com.google.**
-keep class com.google.** {*;}

-dontwarn com.baidu.**
-keep class com.baidu.** {*;}

-dontwarn net.sqlcipher.**
-keep class net.sqlcipher.** {*;}

-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

-keep public class * implements java.io.Serializable {*;}

-keepattributes Signature

-keepattributes *Annotation*

-keep class sun.misc.Unsafe { *; }

-keep class com.google.gson.examples.android.model.** { *; }

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keepclassmembers class * {
   public <init>(org.json.JSONObject);
}

-keep public class com.*.cust.contacts.R$*{
public static final int *;
}
时间: 2024-10-04 09:34:28

Android应用(apk)代码混淆笔记的相关文章

android代码混淆笔记

混淆处理的apk被反编译后代码中包名类名等都变成abcd之类,很难看懂. 使用代码混淆,启用混淆器,对相关文件进行编辑,然后打包签名就可以了: ------------ 在2.3的版本中,项目中有这个文件 proguard.cfg   (没有的可以手动添加) 添加一句:  proguard.config=proguard.cfg proguard.cfg文件中内容: -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpub

【Android】Android Studio 进行代码混淆,打包release APK

整了一天,感觉坑挺多. 1. 选择如图中的选项Android Studio进行签名打包: 2. 填写APP对应的信息:(最好用个文本记下来放在项目中同步给Team) - Key store path: 如果是新APP则创建,如果已经有了选择就行: - Key store password: ******* - Key alias(别名): 自定义 - 如果是新创建的文件需要选择时间,整个25年足够用了,公司信息填上就OK - 下一步后选择release就开始打包 3. Android Studi

Android 项目的代码混淆,Android proguard 使用说明

简单介绍 Java代码是非常easy反编译的. 为了非常好的保护Java源码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能. 官网地址:http://proguard.sourceforge.net/ 原理 Java 是一种跨平台的.解释型语言,Java 源码编译成中间"字节码"存储于 class 文件里.因为跨平台的须要,Java 字节码中包

Android程序加入代码混淆器

加入代码混淆器,主要是加入proguard-project.txt文件的规则进行混淆,之前新建Android程序是proguard.cfg文件 可以看一下我采用的通用规则(proguard-project.txt文件) -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -dontpreverify -ver

Android 简单的代码混淆

Android的代码混淆是开发者需要了解的相关知识,它能够防止android应用程序的反编译.因为android程序多数是java语言开发的,而java代码很容易被反编译,所以为了使android应用程序代码应用一定的安全性,进行android代码的混淆是非常有必要的. 在了解代码混淆之前,先了解android的反编译.进行android的反编译需要借助两个工具dex2jar和jd-gui. 1.代码的反编译 在两个工具准备好之后,将apk文件的直接解压.在解压后的文件中,将classes.de

[转]Android Studio实现代码混淆

1,在build.grandle添加,其中规则写在proguard-rules.pro中,也可以自定义一个文件,将其代替,比如eclipse常用的 proguard-project.txt: buildTypes { release { signingConfig signingConfigs.release minifyEnabled true # 设置是否进行 shrink 等操作(即无用代码压缩),一般设置为 true,使混淆更有效 proguardFiles getDefaultProg

《Android第一行代码》笔记

学习Android开发差不多有两年时间了,期间也做了大大小小的一些项目.近来抽出闲暇想把Android基础强化一下,之前在网上看到了郭霖郭大神的几篇博客,从中受益不少.于是花了近一周时间看完了郭神的一本Android教材--<Android第一行代码>.这本书相比其他教材个人感觉更为基础,内容很实用.看完之后我也有一些收获,学到了一些可以很好的运用到实际中的Android小技巧,下面从中选出我认为很有价值的地方做个记录.同时欢迎各位指正补充~~ 1.查看当前界面处于哪个Activity. 很多

Android第一行代码学习笔记七---活动的生命周期

@1.返回栈 Android中的活动是可以层叠的,我们每启动一个新的活动,就会覆盖在原活动之上,然后点击Back键就会销毁最上面的活动,下面一个活动就会重新显示出来. Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈(Back Stack).栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置.而当我们按下Back键或调用finish()方法去销毁一个活动时,处于栈顶的活动会出栈,

Android第一行代码学习笔记三---在活动中使用Menu

在活动中使用Menu: 如果你活动中大量的菜单需要显示,这个·时候·界面·设计就会比较尴尬,Android给我们提供了一种方式,可以让菜单都能得到展示的同时,还能不占用任何空间.· res目录下新建一个menu文件夹,右击res目录->New->Directory,输入文件名menu,点击OK,接着在这个文件夹下.新建一个菜单文件,右击menu文件夹->New->Menu resource file.文件名输入main. 打开文件main.xml,输入如下代码: <?xml