比较常用的反编译工具 JD-GUI ,直接把编译好的jar丢进去,大部分都能反编译看到源码:
简单就是把代码跑一哈,然后我们的代码 .java文件 就被编译成了 .class 文件
1、Springboot+proguard+maven 混淆. 2、proguard-spring-boot-example 3、官方解释 4、Proguard的Keep使用方法 5、ProGuard 最全混淆规则说明 6、ProGuard代码混淆技术详解 7、使用proguard混淆springboot代码
代码混淆,是指将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。
原文地址:Troubleshooting ProGuard issues on Android 原文作者:Wojtek Kaliciński 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:dieyidezui 校对者:corresponding 为什么使用 ProGuard ProGuard 是一个压缩、优化、混淆代码的工具。尽管有很多其他工具供开发者们使用,但是 ProGuard 作为 Android Gradle 构建过程的一部分,已经打包在 SDK 中
Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。
原文地址:Enabling ProGuard in an Android Instant App 原文作者:Wojtek Kaliciński 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:JayZhaoBoy 校对者:hanliuxin5 Instant Apps(即时应用)和 4 MB 字节的限制 把一个已经存在的应用程序转换成 Android Instant App(安卓即时应用程序)是很有挑战性的,但对于模块及结构化你的项目而言却是一个很好的练习,更
本文的proguard配置仅仅是根据自身工程的情况来量身定做的,不是通用的,具体的场景还需要根据具体情况对proguard参数进行调整。
近期公司的Android项目做了混淆,虽说对于保护代码并不是100%的,但混淆后的代码可以使那些不法份子难以阅读,这样也能对代码的保护做出贡献。 于是,公司写的一大堆WEB项目也想做保护。但几大问题随之而来:
Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的。当我们创建一个Android项目时会包含两个Android build.gradle配置详解文件,如下图:
总第241篇 2018年 第33篇 本文主体部分已经发表于《程序员》杂志2018年2月期,内容略有改动。 ProGuard简介 ProGuard是2002年由比利时程序员Eric Lafortune发布的一款优秀的开源代码优化、混淆工具,适用于Java和Android应用,目标是让程序更小,运行更快,在Java界处于垄断地位。 主要分为四个模块:Shrinker(压缩器)、Optimizer(优化器)、Obfuscator(混淆器)、Retrace(堆栈反混淆)。 Shrinker 通过引用标记算法,将
如果你对App优化比较敏感,那么Apk安装包的大小就一定不会忽视。关于瘦身的原因,大概有以下几个方面:
今天分享一篇匠心制作的《深入探索 Android 包体积优化》,内容比较多,因此分篇分享~
从 Gradle 角度看,Android 插件是由 Google 的 Android 团队开发的一个第三方插件。
尽量不用太复杂的lib,轻量级lib是首选。如果你的应用没用到兼容库,可以考虑去掉support包。
最近在研究一些技术,需要一些Android相关的知识,但发现要想了解 Android,必须要了解 gradle。因为gradle是Android Studio指定的自动编译脚本,它有点像 Linux C开发中的 Makefile。下面我来看下 Android Studio 是如何使用 Gradle 的。
简介 这篇文章主要介绍了Maven压缩插件YUI Compressor使用介绍以及相关的经验技巧,文章约18810字,浏览量165,点赞数5,值得参考!
由于Android项目是基于java语言的,而java属于高层抽象语言,易于反编译,其编译后的程序包包含了大量的源代码变量、函数名、数据结构等信息,根据其编译打包后的APK文件,可以非常容易的得到 近乎源代码质量 的反编译代码。如果不加混淆,相当于直接将源代码拱手送人,内容严密的app权限审核可以说是形同虚设。如果大家想避免自己的成果被别人夺取,然后重新修改策划而额外增加的工作量,那就尽量得自己的Android项目加上混淆吧。
开发壹二APP,一路上或多或少踩了一些坑,有些是太基础一时忘记,有的是细节没有注意。记录下来方便回忆,有些应该没有解决,有些结论可能不太准确,需要后续研究。没有作具体分类,只是按时间先后记录,所以,显得特别杂乱。
导语:流水线的构建耗时是研发效能的重要环节,在手Q出包流水线构建中,混淆耗时占比45%。 R8是Android中替换Proguard新一代的混淆工具,同时它整合了class转Dex功能,将混淆和Dex功能集中到了一个工具中,对混淆耗时以及包大小有明显优化。 R8作为一个新工具,鲁棒性不如proguard,在面对手Q这个庞然大物时,出现了一些问题,本文主要分享一下R8在手Q应用遇到的问题,供后面有需要的同学参考。
在项目开发中,将公用的代码提取到common_module中,将某些单独功能封装到lib_module中,再根据业务划分module,团队成员分别开发各自的模块。 但随着项目的迭代,功能越来越多,增加了一些业务模块后,相互调用的情况会增多,就会发生各个业务模块之间的耦合非常严重,导致代码难以维护且扩展性很差。组件化就应用而生了。 组件化基础:多module划分业务和基础功能。 组件:单一的功能组件,如适配,支付,路由组件等,可单独抽出来形成SDK。 模块:独立的业务模块,如直播,首页模块等。模块可能包含多个不同组件。
最近学习了翟志军老师写的《Jenkins 2.X实践指南》书中的第5章:代码质量一节,发现两方面问题:
最近有人在公众号的后台留言说让我讲讲Android代码混淆,我最近也正在想这个问题,怎样才能把混淆讲清楚和明白,不过这回不愁了,正好有人来投稿。而且还是插件化的,非常方便,不妨大家可以试着用一下。 之
ProGuard简介 在最新的Android Studio 2.2.2版本创建的Android工程中,module中的build.gradle有如下一段配置。这里的minifyEnabled即用来控制在编译时是否需要启用Proguard,将minifyEnabled修改为true,即表示启用Proguard。’proguard-android.txt’是Android SDK中自带的一个基本Progurad配置文件,默认是空白的,需要由开发者自行添加哪些需要混淆哪些不混淆,形如: -ignorewarnin
一、Android Studio 下打jar包的过程及遇到的问题处理 1,新建一个Project 含Activity项目 2,在此Project下新建一个Modul:.菜单file-->new--->
Android SDK自带了混淆工具Proguard。它位于SDK根目录\tools\proguard下面。 ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器。它可以检测并删除未使用的类,字段,方法和属性。它可以优化字节码,并删除未使用的指令。它可以将类、字段和方法使用短无意义的名称进行重命名。最后,预校验的Java6或针对Java MicroEdition的所述处理后的码。
首先要注意一点,Android Studio中把proguard.txt已经命名为proguard-rules.pro,由此可见,採用Gradle打包,混淆规则文件的名称是不重要的。能够自己随便命名。
实际开发应用时,包体积优化是必不可少的。毕竟手机内存有限,如果包体积过大很多用户会直接放弃(以前手机内存很小的时候,这个真的很重要),现在由于手机内存大了(512G已经挡不住了),现在的用户更关注流畅度和美观作为参考,但是该有的优化还是要优化的,毕竟要尽善尽美嘛。上一篇文章我们了解了安装包的结构。
除了AS自带的Analyzer之外,还有ApkChecker、ClassyShark等工具。
| 导语 本文介绍Android app代码(java + ndk)的反调试的方法和保护代码增加逆向难度的一些基本方法。 Android自问世以来得以迅速发展,各大手机厂商纷纷投入成本开发、设计开发自己的Android系统,从2016年开始,Android已经超越ios成为全球最有影响力的操作系统。针对于Android app的逆向方法和逆向工具很多,所以反调试对于Android的代码保护扮演着很重要的角色。本文从四个方面介绍一下Android反调试的一些方法。 ps:反调试并不能完全阻止逆向行为,只是在
从这章开始我们就开始介绍Android Gradle插件了,会通过几章由浅入深的详细的介绍Android Gradle,本章会简单的介绍下Android Gradle插件,然后通过一个例子对其有大概的了解,最后讲下如果从原来基于Eclipse进行Android开发的方式,转到基于Android Studio,使用Android Gradle插件开发的新方式
更多 ProGuard 混淆配置参考 : https://www.guardsquare.com/en/products/proguard/manual/usage
在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码混淆的基本操作。那么,混淆到底是什么?它的好处有哪些?具体效果如何?别急,下面我们来一一探索它的"独特"魅力。
水月沐风 读完需要 19 分钟 速读仅需7分钟 作者:水月沐风 链接:https://juejin.im/post/5d1717996fb9a07eeb13bc95 在 Android 日常开发过程
最近项目中遇到一些混淆相关的问题,由于之前对proguard了解不多,所以每次都是面向Stackoverflow的编程。copy别人的答案内心还可以接受,但是copy了之后不懂别人的逻辑是无法忍受的。首先不清楚别人的答案是不是一定符合自己的需求;其次,再遇到同类问题还是得抓瞎。于是下决心看了一下proguard的官方文档。很长,但是很详细,在这里整理一下笔记,分享给大家。
在build中配置了checkstyle中配置了生效时期段后,会在相应的周期执行,执行失败,则编译失败
第一步:aapt。为res目录下的资源生成R.java文件,同时为AndroidManifest.xml生成Manifest.java文件
本文讲述了一位开发者在开发一款视频录制软件时遇到的一个关于混淆打包的问题,以及如何解决它。首先,作者提到了在开发过程中遇到的异常,然后分析了该异常的原因,提供了一些解决方法。最后,作者通过添加 -keepattributes 来保护项目中的资源文件,成功地解决了问题。
这里的例子仅仅还是jdk是模块化的,但是工程代码还没有模块化。等所有依赖都模块化了,可以重新试验一下。
前言: 单挑Android项目,最近即时通讯用到环信,集成sdk的时候 官方有一句 在 ProGuard 文件中加入以下 keep。 -keep class com.hyphenate.** {*;} -dontwarn com.hyphenate.** 即:混淆规则。 自己没写过关于混淆打包的文章,在此补上。 下面了解Android studio环境下 项目混淆打包的操作。 ----------------------------------------------------------------
一直以来,技术圈里面只要涉及 Android Library 的文章,几乎都在讲如何发布到 Maven/Jcenter,却很少见到有文章来指导大家如何编写一个规范又好用的 Android Library。
缩减、混淆处理和优化应用 ( 官方文档 ) : https://developer.android.google.cn/studio/build/shrink-code
本文主要讲述了代码混淆和资源混淆的原理,Studio默认的混淆方案,混淆的参数,以及如何对Apk进行代码混淆(自定义混淆文件)和资源混淆(结合微信混淆和美团混淆两种方案),避免Apk被逆向。 为什么要混淆 我们的apk在打包发布之前,都要进行混淆处理来避免源代码和资源文件被小白用户通过反编译拿到。未混淆代码的反编译操作非常简单,网上有很多教程, 也可以通过使用Android Studio自带的apk分析工具(Build—-Analyze APK)直接看到未混淆Apk的源代码和原始的资源文件。对比图如下,从
在网上搜“代码混淆”关键词,可以看到n多教程。包括本篇博客,大部分重要内容也是从网上各位大神的博客里面看到然后摘取和总结出来的。虽然网上都有,但是对于我个人来说,很难找到一篇博客概括完全的,所以还是总结一下,也算是学习的纪录。
由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解。 什么是ProGuard工具? ProGuard是android提供的一个免费的工具,它能够移除工程中一些没用的代码,或者使用语义上隐晦的名称来重命名代码中的类、字段和函数等,达到压缩、优化和混淆代码的功能。具体来说,使用ProGuard工具,可以达到下面两个目的: 删除了源文件中没有调用的那部分代码,最大化的精简了字节码
在 build.gradle 中 开启 Proguard , 在编译时 , 会自动进行如下一系列优化 :
领取专属 10元无门槛券
手把手带您无忧上云