当前位置: 首页 > news >正文

android 资源文件混淆

AGP7.0以上引用AndResGuard有坑 记录下

  1. 在项目的build.gradle中添加如下
buildscript {ext.kotlin_version = "1.4.31"repositories {google()jcenter()maven {url "https://s01.oss.sonatype.org/content/repositories/snapshots/"}}dependencies {classpath "com.android.tools.build:gradle:7.2.2"classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
//        classpath "com.bytedance.android:aabresguard-plugin:0.1.0"classpath 'io.github.leon406:AndResGuard-gradle-plugin:1.2.23'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}
  1. 在app目录下新建脚本and_res_guard.gradle
apply plugin: 'AndResGuard'andResGuard {//mappingFile = file("./resource_mapping.txt")mappingFile = nulluse7zip = trueuseSign = truekeepRoot = falsecompressFilePattern = ["*.png","*.jpg","*.jpeg","*.gif","*.xml","*.json","*.html",
//            "assets.arsc","resources.arsc"]whiteList = [// your icon"R.mipmap.ic_launcher","R.mipmap.ic_launcher_round",// for fabric"R.string.com.crashlytics.*",// for umeng update"R.string.tb_*","R.layout.tb_*","R.drawable.tb_*","R.drawable.u1*","R.drawable.u2*","R.color.tb_*",// umeng share for sina"R.drawable.sina*",// for google-services.json"R.string.google_app_id","R.string.gcm_defaultSenderId","R.string.default_web_client_id","R.string.ga_trackingId","R.string.firebase_database_url","R.string.google_api_key","R.string.google_crash_reporting_api_key",//友盟"R.string.umeng*","R.string.UM*","R.layout.umeng*","R.drawable.umeng*","R.id.umeng*","R.anim.umeng*","R.color.umeng*","R.style.*UM*","R.style.umeng*",//融云"R.drawable.u*","R.drawable.rc_*","R.string.rc_*","R.layout.rc_*","R.color.rc_*","R.id.rc_*","R.style.rc_*","R.dimen.rc_*","R.array.rc_*"]sevenzip {artifact = 'com.tencent.mm:SevenZip:1.2.10'//path = "/usr/local/bin/7za"}/*** 可选: 如果不设置则会默认覆盖assemble输出的apk**///finalApkBackupPath = "${project.rootDir}/final.apk"
}
  1. 在app/build.gradle中引用第二步的脚本
apply from: 'and_res_guard.gradle'
  1. 其他环境配置
grade:gradle-7.3.3-bin.zip 
classpath "com.android.tools.build:gradle:7.2.2"
jdk:11
  1. 执行编译
    在这里插入图片描述
    附上demo:demo

相关文章:

android 资源文件混淆

AGP7.0以上引用AndResGuard有坑 记录下 在项目的build.gradle中添加如下 buildscript {ext.kotlin_version "1.4.31"repositories {google()jcenter()maven {url "https://s01.oss.sonatype.org/content/repositories/snapshots/"}}dependencies {class…...

注册接口和前置SQL及数据生成及封装

注册接口 演示注册接口的三步操作:【注册流程逻辑】 第一步:发送注册短信验证码接口请求 请求方法: put 请求地址:http://shop.lemonban.com:8107/user/sendRegisterSms 请求参数:{“mobile”:“13422337766”} 请求头…...

鸿蒙实战开发-通过输入法框架实现自绘编辑框

介绍 本示例通过输入法框架实现自会编辑框,可以绑定输入法应用,从输入法应用输入内容,显示和隐藏输入法。 效果预览 使用说明 1.点击编辑框可以绑定并拉起输入法,可以从输入法键盘输入内容到编辑框。 2.可以点击attach/dettac…...

深度学习中的注意力模块的添加

在深度学习中,骨干网络通常指的是网络的主要结构或主干部分,它负责从原始输入中提取高级特征。骨干网络通常由卷积神经网络(CNN)或者类似的架构组成,用于对图像、文本或其他类型的数据进行特征提取和表示学习。 注意力…...

Docker 部署开源远程桌面工具 RustDesk

RustDesk是一款远程控制,远程协助的开源软件。完美替代TeamViewer ,ToDesk,向日葵等平台。关键支持自建服务器,更安全私密远程控制电脑!官网地址:https://rustdesk.com/ 环境准备 1、阿里云服务器一 台&a…...

intellij idea 使用git ,快速合并冲突

可以选择左边的远程分支上的代码,也可以选择右边的代码,而中间是合并的结果。 一个快速合并冲突的小技巧: 如果冲突比较多,想要快速合并冲突。也可以直接点击上图中 Apply non-conflicting changes 旁边的 All 。 这样 Idea 就会…...

AcWing26. 二进制中1的个数。三种解法Java

输入一个 3232 位整数,输出该数二进制表示中 11 的个数。 注意: 负数在计算机中用其绝对值的补码来表示。 数据范围 −100≤ 输入整数 ≤100 样例1 输入:9 输出:2 解释:9的二进制表示是1001,一共有2个…...

【ADB】常见命令汇总(持续更新)

▒ 目录 ▒ 🛫 导读开发环境 1️⃣ 设备连接和识别2️⃣ 应用程序管理3️⃣ 文件传输和管理4️⃣ 设备信息和日志5️⃣ 设备操作和控制6️⃣ 截图相关🛬 文章小结📖 参考资料 🛫 导读 Android调试桥(ADB)是…...

【递归与递推】数的计算|数的划分|耐摔指数

1.数的计算 - 蓝桥云课 (lanqiao.cn) 思路: 1.dfs的变量>每一次递归什么在变? (1)当前数的大小一直在变:sum (2)最高位的数:k 2.递归出口:最高位数字为1 3.注意&#…...

企业案例:金蝶云星空集成钉钉,帆软BI

正文:在数字化转型的大潮中,众多企业开始探索并实践高效的数据流转与集成,以提升内部管理效率和决策质量。本文将以某企业为例,详细介绍如何通过将钉钉审批流程的数据实时同步至金蝶云星空,并进一步在帆软报表平台上实…...

简单设计模式讲解

设计模式是在软件开发中经常使用的最佳实践,用于解决在软件设计中经常遇到的问题。它们提供了可重用的设计,使得代码更加灵活、可维护和可扩展。下面我将为你讲解几种常见的设计模式,并提供相应的C#代码示例。 1. 单例模式(Single…...

基于springboot的社区医疗服务系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…...

影院座位选择简易实现(uniapp)

界面展示 主要使用到uniap中的movable-area&#xff0c;和movable-view组件实现。 代码逻辑分析 1、使用movable-area和movea-view组件&#xff0c;用于座位展示 <div class"ui-seat__box"><movable-area class"ui-movableArea"><movab…...

调用飞书获取用户Id接口成功,但是没有返回相应数据

原因&#xff1a; 该自建应用没有开放相应的数据权限。 解决办法&#xff1a; 在此处配置即可。...

STM32 GPIO输入检测——按键

前言 在嵌入式系统开发中&#xff0c;对GPIO输入进行检测是一项常见且关键的任务。STM32微控制器作为一款功能强大的处理器&#xff0c;具有丰富的GPIO功能&#xff0c;可以轻松实现对外部信号的检测和处理。在本文中&#xff0c;我们将深入探讨如何在STM32微控制器上进行GPIO…...

Rustdesk二次编译,新集成AI功能开源Gpt小程序为远程协助助力,全网首发

环境&#xff1a; Rustdesk1.1.9 sciter版 问题描述&#xff1a; Rustdesk二次编译&#xff0c;新集成AI功能开源Gpt小程序为远程协助助力,全网首发 解决方案&#xff1a; Rustdesk二次编译&#xff0c;新集成开源AI功能Gpt小程序&#xff0c;为远程协助助力&#xff0c…...

面试(03)————多线程和线程池

一、多线程 1、什么是线程?线程和进程的区别? 2、创建线程有几种方式 &#xff1f; 3、Runnable 和 Callable 的区别&#xff1f; 4、如何启动一个新线程、调用 start 和 run 方法的区别&#xff1f; 5、线程有哪几种状态以及各种状态之间的转换&#xff1f; 6、线程…...

纯CSS实现未读消息显示99+

在大佬那看到这个小技巧&#xff0c;我觉得这个功能点还挺常用&#xff0c;所以给大家分享下具体的实现。当未读消息数小于100的时候显示准确数值&#xff0c;大于99的时候显示99。 1. 实现效果 2. 组件封装 <template><span class"col"><sup :styl…...

【C++】C++ primer plus 第十二章--类和动态内存分配

动态内存和类 关于静态数据成员 类之作声明&#xff0c;不分配内存&#xff0c;因此静态成员变量在类中不能进行初始化&#xff0c;需要在类外进行。特殊情况&#xff1a; 存在可以在类中声明静态成员并初始化的情况&#xff0c;成员类型为const整型或者const枚举类型。 特殊…...

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测 目录 分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据…...

初创公司如何借助Taotoken控制大模型API试用与正式成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初创公司如何借助Taotoken控制大模型API试用与正式成本 对于初创公司而言&#xff0c;在产品从原型验证到正式上线的过程中&#x…...

氛围编程实战:用AI工具栈快速构建可部署应用

1. 项目概述&#xff1a;什么是“氛围编程”&#xff1f;如果你对“氛围编程”这个词感到陌生&#xff0c;或者觉得它听起来有点玄乎&#xff0c;那太正常了。我第一次听到时&#xff0c;也以为又是哪个硅谷弄潮儿发明的新潮黑话。但当我真正开始实践&#xff0c;并在几个月内从…...

STM32L4低功耗实战:用RTC内部唤醒定时1秒,让设备续航翻倍(附CubeIDE配置)

STM32L4低功耗实战&#xff1a;RTC唤醒中断与CubeIDE配置全解析 在电池供电的物联网终端设计中&#xff0c;每微安电流都关乎产品寿命。曾有个智能农业项目&#xff0c;原本预计6个月的传感器续航&#xff0c;因未优化低功耗模式&#xff0c;实际仅维持了3周。这促使我们深入研…...

【JVM】面试题-有哪些垃圾回收器

【JVM】面试题-有哪些垃圾回收器 在JVM的内存管理中&#xff0c;垃圾收集算法是内存回收的核心逻辑与方法论&#xff0c;而垃圾收集器则是将这套方法论落地实现的具体工具。 不同的垃圾收集器针对JVM堆的不同分代&#xff08;新生代、老年代&#xff09;设计&#xff0c;具备不…...

抖音下载器底层架构解析:策略模式与异步编排的高性能实现

抖音下载器底层架构解析&#xff1a;策略模式与异步编排的高性能实现 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...

Unity(十六)切换场景及鼠标相关

场景切换空间命名&#xff1a;using UnityEngine.SceneManagement;直接用代码切换场景有问题要把场景加入到场景列表之中SceneList哪个场景在前面&#xff0c;谁在运行时就会首先进入过时方法Application.LoadLevel()if (Input.GetKeyDown(KeyCode.Space)) {SceneManager.LoadS…...

V2X通信:自动驾驶安全冗余与混合交通协同的关键技术

1. 项目概述&#xff1a;当自动驾驶汽车遇上“沟通障碍”如果你认为自动驾驶汽车和车与车之间的通信是两个独立的问题&#xff0c;那说明你的思考还不够“渐进式”。是时候重新审视了。自动驾驶的拥护者们常常描绘一个乌托邦式的未来&#xff1a;道路零事故。但他们很少提及那个…...

RAD-NeRF:面向实时人像合成的神经辐射场高效架构

1. 项目概述&#xff1a;当NeRF遇上实时人像&#xff0c;RAD-NeRF到底在解决什么问题&#xff1f;我第一次看到“Efficient NeRFs for Real-Time Portrait Synthesis (RAD-NeRF)”这个标题时&#xff0c;手边正调试一个跑在RTX 4090上的标准NeRF模型——单帧渲染耗时23秒&#…...

终极指南:Python通达信数据接口MOOTDX完整使用教程

终极指南&#xff1a;Python通达信数据接口MOOTDX完整使用教程 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一款基于Python的高效通达信数据接口封装&#xff0c;专为量化投资和金融数…...

终极分布式编程框架全攻略:从零掌握Awesome BigData核心技术

终极分布式编程框架全攻略&#xff1a;从零掌握Awesome BigData核心技术 【免费下载链接】awesome-bigdata A curated list of awesome big data frameworks, ressources and other awesomeness. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-bigdata 在数据爆…...