过滤Android工程中多余的资源文件

安卓逆向工程环境搭建全指南 安卓逆向工程是安全研究和漏洞挖掘的基础技术,涉及反编译、动态调试等核心操作。其原理是通过工具链解析APK文件结构,还原代码逻辑并监控运行时行为。在移动安全领域,逆向技术对恶意软件分析、漏洞挖掘具有重要价值。典型的应用场景包括应用安全审计、协议分析和漏洞复现。本文以Frida动态插桩和Apktool反编译为核心,详细讲解如何搭建模块化的安卓逆向环境,涵盖JDK配置、adb调试、反编译工具链集成等关键技术环节,并针对ARM架构兼容性等常见问题提供解决方案。 阅读详情

(欢迎访问:http://www.3body.tk/iblog/)

在Android项目开发过程中经常会遇到这样的情况:界面开发人员发布了一个新版本的资源包,不过有的图片名称改了,有的图片删掉了,可是在实现的时候开发人员只是把新的资源覆盖到原来的资源文件夹中,随着版本的发布,在drawable或values中积累的无用资源越来越多,直到最后发布正式版的时候再想要删除这些多余的文件,于是不得不一个一个文件检查看是否有用,再决定要不要删除之。

那能不能将这个检测过程自动化呢,对于无所不能的程序猿们来说这是必须地~

处理这一类问题大家首先想到的应该就是shell脚本,下面是一段使用shell脚本来自动检测文件有没有用到,并实现自动删除没有用到的文件的功能:

  #!/bin/sh
  resfile=result.txt
  #drawdir=res/layout
  drawdir=res/drawable-hdpi
  tmpdrawfile="tmpdraw.txt"

  #clear tmp file
  echo "" > $tmpdrawfile
  echo "" > $resfile
  ls $drawdir > $tmpdrawfile
  #ls $tmpdrawfile
  cat $tmpdrawfile | while read line
  do
  filename=`echo $line | sed 's/..*//'`
  #echo $filename
  #start to search
  grepMode=@drawable/$filename"
  grepDir=./res
  #grepMode=R.layout.$filename
  #grepDir=./com
  result=`grep -r $grepMode $grepDir`
  if [ "$result" == "" ]
  then
    echo $line
    echo $line >> $resfile
    rm -f $drawdir/$line
  #else
   # echo "----------------"
  fi
  done
  rm -f $tmpdrawfile

上面的代码很简单,首先将drawable(或者你可以改成任意目录)下的所有文件列出来,然后在整个目录中遍历,对每个文件检测有没有‘@drawable/$filename’这种格式的用法(你可以自己改成任意格式),如果没有使用到的话,就将文件删除。使用的时候需要将这个脚本放在跟res同级的目录。

这段代码也可以用在其他任何需要检测出未使用/已使用文件的地方,只要将对应的目录和匹配模式修改一下就可以了,或者如果为了通用,可以将所有配置写在一个配置文件,也可以将配置作为参数传递进去。

安卓逆向工程实战:Magisk Root与LSPosed框架搭建指南 安卓逆向工程是深入理解移动应用运行机制与安全性的关键技术,其核心在于通过系统级权限获取与运行时修改,实现对应用行为的深度分析与定制。这一过程通常依赖于Root权限,它突破了安卓沙盒限制,允许对系统分区和进程进行底层操作。为实现精准、稳定的运行时行为修改,开发者常采用Hook技术,而LSPosed框架作为现代模块化注入方案,通过作用域管理提供了更安全可控的Hook能力。结合Magisk实现的无系统修改Root,这套组合为安全研究、应用调试与功能定制提供了强大支持,广泛应用于恶意软件分析、隐私保护检测、应用功能 阅读详情

相关推荐

Dataset - DeepFashion 服装数据集

Dataset - DeepFashion 服装数据集 [Dataset - DeepFashion] [Project - DeepFashion] 1. 服装类别和属性预测集 [Category - Attribute 下载] [百度网盘] 289,222 张服装图片 clothes images; 50 个服装类别 clothing categories 1,000 ...

长风破浪会有时,直挂云帆济沧海 2万+

Android打包时排除assets文件夹下的某些文件

assets文件夹下的一些文件在生产包中是用不到的,为了缩小安装包体积,我们可以在打包时删掉这些文件。 在build.gradle文件中: android.applicationVariants.all { variant -> if (variant.buildType.name == 'release') {//release版本 variant.mergeAss...

toaksg的博客 8346

ZYNQ裸机LWIP双网口实现

文章目录前言一、LWIP双网口二、使用步骤1.部分说明2.部分代码总结 前言 一、LWIP双网口 由于项目需要多通讯口,查阅资料发现lwip支持多网口操作。于是,就开搞了。 二、使用步骤 1.部分说明 利用xemac_add函数在网卡链表中添加一个网卡,即使用netif块重复xemac_add操作。 先用轮询的方式实现双网口,后期修改为中断模式 2.部分代码 导入官方例程LWip echo server, 修改main函数,增加一个netif块 #if LWIP_IPV6==0 #if L..

weixin_35865280的博客 1万+

android混淆打包配置(忽略第三方jar)

修改project.properties文件 [html] view plaincopy #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt   去掉之前的#,即取消注释 修改progu

ckdroid的专栏 1239

Localizing LabVIEW Application to Different Languages

本文探讨了LabVIEW应用程序的多语言本地化实现方案。文章首先分析了LabVIEW对多语言的支持现状,指出其默认仅支持ANSI编码,对Unicode支持有限,且仅适配中英法德日韩六种语言。然后重点介绍了JKISimpleLocalization工具包的使用方法,该工具能导出/导入JSON词典文件,实现界面语言的实时切换。文章还结合实际工程案例,分析了该方案的局限性:部分控件不可翻译、切换速度较慢(33个界面需50秒)、小语种支持不足等。最后提供了完整的应用流程和工具包附件,包括词典文件转换工具和工程案例。

2301_80383260的博客 1409

【多媒体交互】Unity+普通摄像头实现UI事件分析

利用摄像头捕捉用户的手势或动作,结合坐标映射与事件系统触发UI交互

qq_38350004的博客 1318

/dev/null 的总结

https://www.iteye.com/blog/aoyouzi-2076130 /dev/null ,是一个空文件(写入到/dev/null时全部丢失,读取/dev/null时自己返回EOF),具体总结下几种常见用途. 一、禁止标准输出. eg: cat $filename >/dev/null # 文件内容丢失,不会输出到标准输出,. 二、禁止标准错误 eg: rm $badname...

newbeixue的博客 691

银河飞腾FT6678实战指南:OpenMP多核并行编程优化技巧

本文详细介绍了在银河飞腾FT6678多核处理器上使用OpenMP进行并行编程的实战技巧与优化方法。从基础语法到环境配置,再到性能优化的五大核心技巧,包括循环并行化、并行粒度控制、reduction子句使用等,帮助开发者充分发挥FT6678的8核计算能力。通过实际案例展示如何将图像处理算法从200ms优化到28ms,并深入探讨了任务调度、内存访问优化等进阶主题。

weixin_29234423的博客 287

android打包排除文件,Gradle:从Android资源文件夹中排除文件

请问,您是否知道如何在多个资产文件夹合并或合并之前如何排除Android项目资产文件夹中的某些文件?例如:android {sourceSets {main {assets.srcDirs = [fileTree(dir: 'assets1', exclude: 'myfile.txt'), 'assets2'] // does not workassets.exclude 'assets1/my...

weixin_34737066的博客 2636

K-Core, K-Shell & K-Crust傻傻分不清楚

K-Core(K-核)就是所有大于等于K的K-Shell的并集;K-Crust(K-皮)就是所有小于等于K的K-shell的并集。

欢迎订阅 -- 小源笔迹 2256

MOS五类漏电流与优化策略

分析了五种主要漏电流机制:1)反偏结泄漏,由PN结热激发和隧

硬核科技 443

android 过滤格式,过滤Android工程中多余资源文件的解决方法

本文以实例讲述了过滤Android工程中多余资源文件的解决方法,很有实用价值!具体描述如下:很多开发人员在Android项目开发过程中经常会遇到这样的情况:界面开发人员发布了一个新版本的资源包,不过有的图片名称改了,有的图片删掉了,可是在实现的时候开发人员只是把新的资源覆盖到原来的资源文件夹中,随着版本的发布,在drawable或values中积累的无用资源越来越多,直到最后发布正式版的时候再想要...

weixin_39720510的博客 501

uniapp [全端兼容] - 实现人脸识别对比+人脸相似度,从相册选择或拍照上传两张图片进行人脸对比得到人脸相似度及判断是否是同一个人,人脸活体检测及对比(免费纯前端方案+调用第三方API接口方案)

uniApp人脸对比 人脸对比识别 人脸对比相似度,uniapp实现获取手机摄像头权限,调用相机拍照实现人脸识别相似度对比,uniapp实现人脸识别对比,计算两张人脸的相似度,从而判断是否同一个人,并给出相似度评分。uniapp H5网页如何实现人脸相似度比对,uniapp纯前端怎么对比两张图片的相似度,计算两幅图像的相似度,图像相似度对比方法,UNI-APP人脸相似度对比,快速识别两张照片的相似程度(用百分比)图片相似度对比在线测试,图片相似度对比,uniapp微信小程序人脸相似度对比分析,uniapp

🏆 前端领域优质创作者 5020

清除安卓应用里多余的资源文件

项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理掉这些垃圾,对于一个稍微大一点的工程来说,手工清理明显是不现实的,这就需要一个方法做这些事情。清理资源文件要清理没用的资源,首要的工作当然是找到他们,我们知道Anroid SDK中有一个工具叫lint,

AsIam 1189

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【Android性能优化】清除Android工程中没用到的资源

项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理掉这些垃圾,对于一个稍微大一点的工程来说,手工清理明显是不现实的,这就需要一个方法做这些事情。 清理资源文件 要清理没用的资源,首要的工作当然是找到他们,我们知道Anroid SDK中有一

wangjia55的专栏 1710

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android快速入门 基础知识,系统架构(快速开发第一个安卓应用程序),最新Android面试合集

Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。人生不可能一帆风顺,有高峰自然有低谷,要相信,那些打不倒我们的,终将使我们更强大,要做自己的摆渡人。资源持续更新中,欢迎大家一起学习和探讨。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

2401_84149496的博客 1285

Android项目工程目录结构说明及作用

问题?Android项目工程目录结构说明及作用 一、序言 对于初学者来说,理解整个Android项目目录结构很重要,各自的作用,分别在什么时候用,那个资源,那个文件,那个配置放在什么地方需要很明白,如何增加删除更新。下面这个是我自己做的一个目录结构说明 二、Android目录结构 例子:              三、详细说明 (1)应用源码              这

Mr_li13的博客 7480

利用python自动清除Android工程中的多余资源

################################################# #环境: win + python 2.7 #作者:马波 #邮箱:mabo02@baidu.com #部门:hao123-无线 #说明:首次使用时lint分析会耗几分钟,请耐心等待。 # 使用前先clean工程,确保工程bin下重新生成dex, # 以便lint...

weixin_34399060的博客 97

安卓基础001

安卓基础

qiuqiushuibx的博客 821

AndroidStudio——安卓项目结构与文件介绍

主要说明了本项目的名称,所包含的子项目,以及本项目仓库的位置等。简单来说,Gradle是运行于JVM中的一个用于自动构建项目的程序,目前安卓将其作为官方的构建程序,且Springboot也逐渐支持Gradle。在主目录/根目录下的build.gradle也是gradle的配置文件,主要说明了本项目所需的依赖包、Kotlin/SDK的版本等信息。例如如果一个2*2的网格布局中,所有控件的比重都为1,则将均分父控件。从安卓中的类的角度来看,控件就是view类的对象,布局就是viewgroup类的对象。

2301_79188932的博客 3063
上一篇: 正确的在GridView中使用Bitmap图像
下一篇: Sass 技术和相关工具介绍
凄凄迷人
博客等级 码龄21年 58粉丝 58原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值