首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

, 会自动进行如下一系列优化 : 压缩 Shrink : 检查 并 删除 没有使用的类 , 字段 , 方法 , 属性 ; 这里要注意 , 如果通过反射使用一个类时 , 可能会在该步骤被删除 ; 这里需要配置混淆文件..., 保留反射中使用的类 ; 优化 Optimize : 优化字节码 , 移除无用指令 ; 混淆 Obfuscate : 混淆 Java 层代码 , 使用无意义的标识符替代 Java 中的类名..., 由系统自动生成 ; proguard-rules.pro 是用户自己配置的混淆配置文件 , 在进行打包时 , 将这两个 ProGuard 配置文件进行合并处理 ; 二、混淆文件编写 ---- 混淆文件编写....** " -keep " : 不要混淆的类 ; # com 包名下的类不要混淆 -keep class com.**{*;} 三、混淆前后对比 ---- 混淆前编译的 APK 安装包 : \rm 3.6...MB 混淆后编译的 APK 安装包 : \rm 1.7MB 四、build.gradle 完整配置文件 ---- 完整的 build.gradle 构建脚本 ; plugins { id

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

    dotnet 使用 IndentedTextWriter 辅助生成代码时生成带缩进的内容

    随着源代码生成的越来越多的应用,自然也遇到了越来越多开发上的坑,例如源代码的缩进是一个绕不过去的问题。如果源代码生成是人类可见的代码,我期望生成的代码最好是比较符合人类编写代码的规范。...为了能让人类在阅读机器生成的代码的时候,不会想着拿刀砍那个编写代码生成代码的开发者,最好,或者说至少代码也应该有个缩进和换行吧。...本文将安利大家通过 IndentedTextWriter 这个辅助类,用来辅助生成带缩进的内容 使用 IndentedTextWriter 辅助类核心的用途在于自动加上缩进,缩进的等级由代码设置,可以通过加等和减等控制缩进等级...例如缩进等级为 1 时,将在每个行之前写入 1 个传入的 tabString 参数字符串,如上文代码,就是写入一个空格。如果自己传入其他的参数,例如两个空格,那就表示一个缩进等级写入两个空格。.../lindexi_gd.git git pull origin e54d3f45986ff8200d8601cd8dc0bedc81924d75 以上使用的是 gitee 的源,如果 gitee 不能访问

    39410

    手把手教你使用Android studio生成正式签名的APK文件

    也就是说,我们所有通过Android studio来运行的程序都是使用了这个debug.keystore文件来进行签名的: ?...不过这仅仅适用于开发阶段而已,现在如果是要发布app,便需使用一个正式的keystore文件来进行签名才行。...---- 使用Android studio生成正式签名的APK文件: 点击Android studio导航栏上的Build → Generate Signed APK,首次点击可能会提示我们输入操作系统的密码...然后点击Next,这时就要选择APK文件的输出地址了,选择好输出路径,点击Finish就可以了;然后稍等一段时间,APK文件就都会生成好了,并且会在右下角弹出一个如下图的提示: ?...我们点击提示上的Show in Explorer 可以立即查看生成的APK文件,如图: ? 这里的app-release.apk就是带有正式签名的APK文件了。 ---- 内容参考自《第一行代码》

    3.1K20

    从400多k的大小减到了2B,我的APP是怎么优化的?

    ,用户体验还是很不好的,下面我们就来整理一下 Android apk 的优化方法 一、icon 图标使用 svg 在我们的App中会有很多icon,而且美工小姐姐一般都是成套的给,所以在我们的res文件中可能需要放入多套...icon,这样一来就会使我们的apk文件体积变得非常大了,所以,优化的第一步就从icon 处理开始. icon 尽量使用svg 文件,而不要使用png文件 首先 svg 文件是以xml文件的方式存在的...时,使用 svg Android studio 自带功能,可以自行配置需要的icon尺寸,打包时会自动生成对应尺寸的png 图片....使用如下 使用 shrinkResources 进行移除,配合 //Zipalign优化 使用 shrinkResources 必须先开启代码混淆 minifyEnabled 使用如下: buildTypes...{ release { //开启代码混淆 minifyEnabled true //Zipalign优化

    1.3K40

    android 混淆规则作用,Android代码混淆详解

    一、混淆的意义 混淆代码并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,把它们改成一些毫无意义的名字,同时也可以移除未被使用的类、方法、变量等。...(1)minifyEnabled minifyEnabled为true的作用:启用代码混淆、压缩APK; minifyEnabled会对资源进行压缩,多余的代码在打包的时候就给移除掉了。...不仅仅是代码,没有被调用的资源同样也会被移除掉,因此minifyEnabled除了混淆代码之外,还可以起到压缩APK包的作用。...使用,只有当两者都为true的时候才会起到真正的删除无效代码和无引用资源的目的。...(5)proguard文件夹 代码混淆生成apk之后,项目下面会多出来一个proguard文件夹,proguard文件夹中四个文件的作用。

    1.8K30

    如何在10分钟内让Android应用大小减少 60%?

    六、混淆 1 构建多个版本 在gradle中的buildTypes中增加不同的构建类型,使用applicationSuffix和versionNameSuffix可以生成多个版本在同一设备上运行 创建...('proguard-android.txt'), 'proguard-rules.pro' } } minifyEnabled true 是否要启用通过 ProGuard 实现的代码压缩(true...请注意,只有在使用注解支持库时,才能使用此注解。 在使用-keep选项时,有许多事项需要考虑;如需了解有关自定义配置文件的详细信息,请阅读ProGuard 手册。...问题排查一章概述了您可能会在混淆代码时遇到的其他常见问题。 请注意,您每次使用 ProGuard 创建发布构建时都会覆盖mapping.txt文件,因此您每次发布新版本时都必须小心地保存一个副本。...} 通过设置 minifyEnabled 为 true,混淆将会移除所有未使用的方法、指令以减小 classes.dex 文件。

    86420

    Android Studio中的Gradle配置不同服务器地址以生成不同安装包”

    在配合git开发中还要分支管理,常用的有: dev test master  我们起初的开发过程是: 1.在项目开始时,开发人员写代码,签入代码到dev分支。...开发人员使用 开发服务器的服务器地址 2.在启动测试时,开发组负责人合并代码到 test 测试分支。...改进: 引入 Jenkins 服务自动打包,Jenkins是个非常优秀的自动构建工具,可以为我们的打包提供很棒的体验。使得 测试人员 在需要时,自己就能进行打包而不需要其他更多操作。...技术关键词: buildConfigField, BuildConfig 思路: 在gradle脚本中,使用 buildConfigField 声明一个字段,编译成功后,会为这个字段生成静态常量,我们可以在代码中使用这个常量...而在成功build后,gradle会为 美工不同的类型环境生成不同的apk包,比如一次性就生成了 测试,开发,上线三个apk包。

    1.9K00

    如何在10分钟内让Android应用大小减少 60%?

    六、混淆 1 构建多个版本 在gradle中的buildTypes中增加不同的构建类型,使用applicationSuffix和versionNameSuffix可以生成多个版本在同一设备上运行 创建...('proguard-android.txt'), 'proguard-rules.pro' } } minifyEnabled true 是否要启用通过 ProGuard 实现的代码压缩(true...请注意,只有在使用注解支持库时,才能使用此注解。 在使用-keep选项时,有许多事项需要考虑;如需了解有关自定义配置文件的详细信息,请阅读ProGuard 手册。...问题排查一章概述了您可能会在混淆代码时遇到的其他常见问题。 请注意,您每次使用 ProGuard 创建发布构建时都会覆盖mapping.txt文件,因此您每次发布新版本时都必须小心地保存一个副本。...} 通过设置 minifyEnabled 为 true,混淆将会移除所有未使用的方法、指令以减小 classes.dex 文件。

    1.6K10

    Android项目实战(二十五):Android studio 混淆+打包+验证是否成功

    4、然后回到第一步,这时候点击按钮Next, Build Type选择release Finish即可,然后在 APK Destination Folder目录下就生成项目的apk包 ?...#优化 不优化输入的类文件 -dontoptimize #预校验 -dontpreverify #混淆时是否记录日志 -verbose # 混淆时所采用的算法 -optimizations...,gradle build时在本项目根目录输出## #apk 包内所有 class 的内部结构 -dump proguard/class_files.txt #未混淆的类和成员 -printseeds...########记录生成的日志数据,gradle build时 在本项目根目录输出-end###### #如果引用了v4或者v7包 -dontwarn android.support.** ###...Apk是否混淆过 这里使用一个工具    dex2jar(源码文件获取) 下载 ?

    1.6K70

    Android架构之路--热更新Tinker(上)

    **/ tinkerEnable = true reflectApplication = true /** * 是否开启加固模式,只能在APK将要进行加固时使用...baseInfo:基准包名称,使用Tinker脚本编译在模块的build/bakApk生成编译副本。...(); } } 四、生成基准包 在生成基准包的时候,要注意一个问题,就是关闭 instant run(当tinkerEnable = true时,false的时候,就不需要),如图: 3-1:...variantName : 因为刚刚我们使用assembleRelease生成的补丁,所以我们只需要使用release 双击TinkerPatchRelease生成差分包,patch_signed_...7zip.apk就是补丁包 生成的补丁包如图: 3-4:生成补丁包 3-5:tinkerPatch下的一些文件说明 七、发布补丁包 回到Tinker后台,选中我们开始新建的项目,补丁下发->添加APP

    1.8K21

    通过Gradle为APK瘦身

    在Gradle 的Android 插件中,其构建类型下面有一个叫作minifyEnabled 的布尔类型属性,你需要将它设置为true 来激活ProGuard : android { buildTypes...除了缩减Java 代码外,还可以缩减使用过的资源。 缩减资源 当给App 打包时,Gradle 和Gradle 的Android 插件可以在构建期间删除所有未使用的资源。...如果设置该属性为true,则Android 构建工具将自动判定哪些资源没有被使用,并将它们排除在APK 外。使用此功能有一个要求,即必须同时启动ProGuard。...下面的代码片段展示了在某个构建类型中,如何配置自动化资源缩减: android { buildTypes { release { minifyEnabled = true...–nfo 当你使用该标志时,Gradle 会打印出许多关于构建过程的额外信息,包括最终构建不会输出的每个资源。

    76620

    Android Studio实现打渠道包,切换环境,混淆配置等

    gradle的加入配置便宜版本报名,签名文件,配置打包生成apk文件名称规则,配置url,配置渠道所有的配置都是android {}中只进行的,配置一些关于android的基本配置。.../nide.keystroe (相对路径) KEYSTORE_PASSWORD =密码 签名你自己可生成,可以直接用eclispe生成的。...buildConfigField "boolean", "LOG_DEBUG", "true" 定义打包方式: buildTypes { release { minifyEnabled...ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" } } 配置混淆 配置proguard-rules.pro文件 # 混淆时不使用大小写混合...这句话,混淆后就会生成映射文件# 包含有类名->混淆后类名的映射关系# 然后使用printmapping指定映射文件的名称 -verbose -ignorewarnings # Optimization

    1.4K20
    领券