android 通过eclipse混淆代码、签名
一、签名
生成keystore (如已有可直接利用)按照下面的命令行 在D:\Program Files\Java\jdk1.6.0_07\bin>目录下,输入keytool -genkey -alias android.keystore -keyalg RSA -validity 100000 -keystore android.keystore
参数意义:-validity主要是证书的有效期,写100000天;空格,退格键 都算密码。命令执行后会在D:\Program Files\Java\jdk1.6.0_07\bin>目录下生成 android.keystore文件。
签名对你的App的影响。
你不可能只做一个APP,你可能有一个宏伟的战略工程,想要在生活,服务,游戏,系统各个领域都想插足的话,你不可能只做一个APP,谷歌建议你把你所有的APP都使用同一个签名证书。
使用你自己的同一个签名证书,就没有人能够覆盖你的应用程序,即使包名相同,所以影响有:
1) App升级。 使用相同签名的升级软件可以正常覆盖老版本的软件,否则系统比较发现新版本的签名证书和老版本的签名证书不一致,不会允许新版本安装成功的。
2) App模块化。android系统允许具有相同的App运行在同一个进程中,如果运行在同一个进程中,则他们相当于同一个App,但是你可以单独对他们升级更新,这是一种App级别的模块化思路。
3) 允许代码和数据共享。android中提供了一个基于签名的Permission标签。通过允许的设置,我们可以实现对不同App之间的访问和共享,如下AndroidManifest.xml:<permission android:protectionLevel="normal" />
二、混淆代码
1、没有第三方lib包的话
如果您是2.3之前的sdk版本,在工程文件project.properties中加入下proguard.config=proguard.cfg
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-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 <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 * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
如果是之后的则为:根目录添加proguard-project.txt,在工程文件project.properties中加入下proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt: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 *;
#}
2、如果有第三方lib包的话,则混淆时需要注意了,以下是常用的一些lib包的混淆配置:
友盟sdk:
-libraryjars libs/umeng_sdk.jar
-keepclassmembers class * {
public (org.json.JSONObject);
}
-keep public class com.smile.android.R$*{
public static final int *;
}
-libraryjars libs/gson-2.2.2.jar
-keep class sun.misc.Unsafe { ; }
-keep class com.google.gson.stream.* { ; }
-keep class com.google.gson.examples.android.model.* { ; }
-keep class com.google.gson.* { *;}
-libraryjars libs/android-support-v4.jar
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-libraryjars /libs/nineoldandroids-2.4.0.jar
-dontwarn com.nineoldandroids.**
-keep class com.nineoldandroids.** { *;}
注:(lib包的混淆配置,一般放到此文件的最后面!)
- 项目里project.properties文件 android 通过eclipse混淆代码 打包 加入了易支付
- android 通过eclipse混淆代码 打包 + proguard 总结
- android 通过eclipse混淆代码 打包 + proguard 总结
- android 通过eclipse混淆代码 打包 + proguard 总结
- android 通过eclipse混淆代码 打包 + proguard 总结
- android 项目通过eclipse混淆代码 打包 + proguard的配置
- android 通过eclipse混淆代码 打包 + proguard 总结
- android 通过eclipse混淆代码 打包 + proguard 总结
- android 通过eclipse混淆代码 打包 + proguard 总结
- android 通过eclipse混淆代码 打包 + proguard 总结
- android开发步步为营之10:代码签名混淆后编译和打包
- Eclipse+ADT进行Android应用程序的代码混淆和签名
- Eclipse+ADT进行Android应用程序的代码混淆和签名
- android项目通过jocky工具做代码混淆时报错
- 为Eclipse ADT创建的android项目通过ant添加proguard混淆支持
- Android Eclipse 代码混淆
- Eclipse+ADT进行Android应用程序的代码混淆和签名
- Android上架相关(代码混淆和反编译工具的使用,签名,打包,加固)
- 基于微信api Android程序签名+代码混淆
- Android 4.0以后代码混淆及签名