Android 多渠道打包 gradle部分,如何处理代码混淆问题
来源:互联网 发布:文件收发管理系统 源码 编辑:程序博客网 时间:2024/05/20 23:29
1.Android 多渠道打包简介,看注释
apply plugin: 'com.android.application'android { compileSdkVersion 24 buildToolsVersion "24.0.3" //配置签名文件 signingConfigs { debug { // No debug config } config { storeFile file("../appkey/Invest2.jks") //其中../表示项目名那一层文件夹 后面是签名文件 storePassword "capiadmin" keyAlias "capi" keyPassword "capiadmin" } } defaultConfig { applicationId "com.liu.ijkdemo" minSdkVersion 16 targetSdkVersion 24 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" signingConfig signingConfigs.config //申明配置签名文件 multiDexEnabled true } buildTypes { debug { signingConfig signingConfigs.config } release { buildConfigField("boolean", "LOG_DEBUG", "false") minifyEnabled true//代码混淆 zipAlignEnabled true //移除无用的resource文件 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.config //批量打包 applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { //输出apk名称为:渠道名_版本名_时间.apk def fileName = "${variant.productFlavors[0].name}_v${defaultConfig.versionName}_${releaseTime()}.apk" output.outputFile = new File(outputFile.parent, fileName) output.outputFile = new File(outputFile.parent, fileName) } } } } } sourceSets { main { jniLibs.srcDirs = ['libs'] } } //配置多渠道打包,打包后包名开始为ijkdemo_relase,ijkdemo_debug productFlavors { ijkdemo_relase { applicationId "com.liu.ijkdemo.relase" resValue("string", "app_name", "IJKPlayerDemo") manifestPlaceholders = [UMENG_CHANNEL_VALUE: "ijk_relase", APP_NAME: "IJKPlayerDemo"] } ijkdemo_debug { applicationId "com.liu.ijkdemo.debug" resValue("string", "app_name", "IJKPlayerDemo测试版") manifestPlaceholders = [UMENG_CHANNEL_VALUE: "ijk_debug", APP_NAME: "IJKPlayerDemo测试版"] } }}//打包时间格式def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))}dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.1' testCompile 'junit:junit:4.12' compile files('libs/txrtmpsdk.jar') compile files('libs/universal-image-loader-1.9.4.jar') compile 'com.android.support:support-v4:24.2.1' // ijk视频播放 compile 'tv.danmaku.ijk.media:ijkplayer-java:0.7.4' compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.7.4' // # Other ABIs: optional compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.7.4' compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.7.4' // # ExoPlayer as IMediaPlayer: optional, experimental compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.7.4'}
2.在上述代码中你可以看到:minifyEnabled:true时表示开启了google默认的代码混淆。【我反编译过几个app:如微信,去哪儿都是代码混淆过】
①代码混淆规则(即:不混淆部分)在什么地方配置?答案:写入proguard-rules.pro文件
②代码混淆规则该如何写?
不混淆部分通常包括:导入的三方包,依赖文件,以及service,contentprovider部分【大部分需要混淆保持的三方包都会注明需要keep的部分】
③代码混淆后,反编译会看到很多类变成了a,aa,b,c,d,e之类的类名了,不再是原类名
0 0
- Android 多渠道打包 gradle部分,如何处理代码混淆问题
- Android Studio Gradle配置,代码混淆,多渠道一键打包
- Gradle 多渠道打包和 代码的混淆
- 【Android Studio】代码混淆与多渠道打包
- gradle android友盟多渠道混淆编译打包
- android Gradle多渠道打包
- Gradle Android 多渠道打包
- android gradle 多渠道打包
- Android Gradle多渠道打包
- ANDROID --GRADLE多渠道打包
- Android---Gradle 多渠道打包
- Gradle多渠道打包以及混淆配置总结
- android ant多渠道混淆打包
- android ant多渠道混淆打包
- android ant多渠道混淆打包
- android 签名混淆-多渠道打包
- Android 签名混淆-多渠道打包
- 【Android Studio】代码混淆与多渠道打包(二)
- maven 打jar包 mvn assembly:assembly
- VC6.0 vs2008 和 VS2010 time_t的一些区别 持续更新
- java重试工具库: 实现业务逻辑与重试逻辑的解耦
- css sprites
- Git中已被跟踪的文件怎样在git .gitignore 配置
- Android 多渠道打包 gradle部分,如何处理代码混淆问题
- mininet ns3-integration安装
- Android Studio 解决错误 Could not find method android() for arguments
- Android网络编程(六)OkHttp3用法全解析
- javax.mail实现的邮件发送
- postgis.control No such file
- Java Swing之按钮点击选择文件与获取选中文件绝对路径
- LeetCode 287---Find the Duplicate Number
- Linux常用的压缩与解压缩