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

Python-一键查找iOS项目中使用图片、音频、视频资源

前言 在iOS项目开发过程中,如果版本迭代开发时间比较长,那么在很多版本开发以后或者说有多人开发参与以后,工程中难免有一些垃圾资源,未被使用却占据着api包大小!...这里我通过Python脚本来查找项目中未被使用图片、音频、视频资源,然后删除掉;以达到减小APP包大小目的!...代码 先查找项目中所以资源文件存到你数组里面 def searchAllResName(file_dir): global _resNameMap fs = os.listdir(file_dir...,那就先删除project.pbxproj中引用,再删除本地资源文件; # 删除无用资源文件 def delAllRubRes(): global _resNameMap, _hadDelMap...,开始_resNameMap中移除已被处理过资源文件 # 并删除本地对应资源文件 for item in _needDelResName: tmp_path = _resNameMap

1.2K40
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发:请你吃一顿史上最全Android混淆大餐

根据 Java 官方介绍,Proguard 对应具体中文定义如下: 它是一个包含代码文件压缩、优化、混淆和校验等功能工具 它能够检测并删除无用类、变量、方法和属性 它能够优化字节码并删除使用指令...它能够将类、变量和方法名字重命名为无意义名称从而达到混淆效果 最后,它还会校验处理后代码,主要针对 Java 6 及以上版本和 Java ME 资源压缩 Android 中,编译器为我们提供了另外一强大功能...资源压缩能够帮助我们移除项目及依赖仓库中使用资源,有效地降低了apk包大小。...Affected Modules: app 自定义要保留资源 当我们开启了资源压缩之后,系统会默认替我们移除所有使用资源,假如我们需要保留某些特定资源,可以在我们项目中创建一个被 <resources...这时,资源压缩器会采取防御性行为,将所有具有匹配名称格式资源标记为可能已使用,无法移除。

3.6K30

一篇文章带你领略Android混淆魅力

根据 Java 官方介绍,Proguard 对应具体中文定义如下: 它是一个包含代码文件压缩、优化、混淆和校验等功能工具 它能够检测并删除无用类、变量、方法和属性 它能够优化字节码并删除使用指令...它能够将类、变量和方法名字重命名为无意义名称从而达到混淆效果 最后,它还会校验处理后代码,主要针对 Java 6 及以上版本和 Java ME 2.3 资源压缩 Android 中,编译器为我们提供了另外一强大功能...资源压缩能够帮助我们移除项目及依赖仓库中使用资源,有效地降低了apk包大小。...Affected Modules: app 2.4 自定义要保存资源 当我们开启了资源压缩之后,系统会默认替我们移除所有使用资源,假如我们需要保留某些特定资源,可以在我们项目中创建一个被标记...这时,资源压缩器会采取防御性行为,将所有具有匹配名称格式资源标记为可能已使用,无法移除。

91720

Android混淆你了解多少?

根据 Java 官方介绍,Proguard 对应具体中文定义如下: 它是一个包含代码文件压缩、优化、混淆和校验等功能工具 它能够检测并删除无用类、变量、方法和属性 它能够优化字节码并删除使用指令...它能够将类、变量和方法名字重命名为无意义名称从而达到混淆效果 最后,它还会校验处理后代码,主要针对 Java 6 及以上版本和 Java ME 资源压缩 Android 中,编译器为我们提供了另外一强大功能...资源压缩能够帮助我们移除项目及依赖仓库中使用资源,有效地降低了apk包大小。...Affected Modules: app 自定义要保留资源 当我们开启了资源压缩之后,系统会默认替我们移除所有使用资源,假如我们需要保留某些特定资源,可以在我们项目中创建一个被 <resources...这时,资源压缩器会采取防御性行为,将所有具有匹配名称格式资源标记为可能已使用,无法移除。

1.7K00

❤️Android 安装包体积优化 ❤️

实际项目中肯定是图片资源占比相对较大) 从上图看出,实际上 APK Analyzer 作用不光是查看 APK 大小,名字也能看出它是用来分析 APK ,因此可以使用它来分析一些优秀 APK...安装包优化实践 Lint查找无用文件 使用 Lint 查看引用资源。Lint 是一个静态扫描工具,它可以识别出项目中没有被任何代码所引用到资源文件。...具体使用也很简单,只要在 Android Studio 中点击 Analyze -> Inspect Code,如下所示: image.png 选中整个项目,如下所示 image.png 如果项目中有未被使用资源...image.png 上面就是使用资源:会使应用程序变大,并降低构建速度。 还有很多就不多介绍了,感兴趣可以去玩玩。...关于 App Bundle 这个功能就跟ios一样了,他们就是将所有资源全部打到项目中,然后App Store,根据安装设备属性,来选取相应资源打包进行下载。

1.1K30

六个小技巧帮你瘦身Android APK

ProGuard来删除使用资源文件和类,以减小APK体积。...通过精简和优化代码,可以减小APK文件大小。 代码混淆:使用ProGuard或R8进行代码混淆,删除使用类和方法,减小APK文件大小。...移除使用库和依赖,可以显著减小APK体积。 资源优化:使用向量图标代替位图图标,减小图标资源大小。同时,删除使用资源文件。...Lint分析:使用Android StudioLint工具来分析应用,它会识别和报告使用资源文件。根据Lint建议,删除使用资源。...压缩工具:使用APK压缩工具,如APKTool来手动优化APK文件,删除使用资源。 结论 APK瘦身是Android应用开发中关键任务,可以提高应用性能和用户体验。

32420

静态测试技术之 Lint 冗余资源清理

资源目录中分类组织资源后,我们就可以通过引用资源 ID 来引用资源所有资源ID 都在项目中aapt工具自动生成./gen/R类中定义,该文件不能被手动修改,当资源发生变动时,它会相应更新。...Android Lint是针对Android静态代码分析工具,能够对Android目中潜在bug、可优化代码、安全性、性能、可用性、可访问性、国际化等进行检查。...resource文件 3、也可以在Android Studio中使用Analyze-unUsedResources查找出所有未被引用资源列表: 在结果上右键选择ApplyFix’Android Lint...Quick Fixes’,可以直接删除所有无用资源: 可能存在删除与白名单配置 lint扫描工具无法判断出通过反射方式(android.content.res.Resources#getIdentifier...()返回true,那么代码中资源引用会触发visitResourceReference()处理函数: 3、同样,查找xml文件中引用: 4、收集到资源声明列表中删除被引用资源列表并去除xml

1.9K00

五年Android开发,让我“刻骨铭心”那些坑

1 系统APIAndroid library中资源ID在R.java中不是final类型: 问题现象:在library中使用switch语句区分不同资源ID时,IDE...Task是放在一个独立后台线程中执行,也就是如果有多个Task同时被调用也是顺序执行1.6开始,改为通过线程池可以支持并行执行多个Task;但从3.0开始,又改回只有一个独立后台线程执行所有...Android这样做目的是防止广播无意或者不必要地开启启动APP后台服务。...也就是说在Android3.1及以上版本,程序在启动情况下通过应用自身完成一些操作是不可能,但Android提供了一种借助其它应用发送指定Flag广播方式,达到应用在启动情况下仍然能够收到消息效果...Android 3.1开始,系统给Intent定义了两个新Flag,分别为FLAGINCLUDESTOPPEDPACKAGES(表示包含启动App)和FLAGEXCLUDESTOPPEDPACKAGES

1.4K40

Flutter App混淆加固、保护与优化原理

删除不必要空白字符、注释和换行符。 优化代码结构,例如内联函数、删除使用代码和资源等。 对控制流进行混淆,例如添加冗余代码、修改循环结构等。...io.flutter.plugin.** { *; } 三、优化应用程序包体积 3.1、移除使用资源 移除项目中使用资源(如图片、字体和动画),以减小应用程序包体积。...在Android目中,可以使用shrinkResources选项来移除使用资源android { ... buildTypes { release { ... shrinkResources...true } } ... } 3.2、压缩图片资源 压缩项目中图片资源,以降低它们文件大小。...可以使用像ipaguard这样工具来压缩图片资源。 四、提高反编译难度 4.1、混淆字符串 为了提高反编译难度,可以在编译阶段处理掉明文字符串。

25710

Flutter App混淆加固、保护与优化原理

删除不必要空白字符、注释和换行符。 优化代码结构,例如内联函数、删除使用代码和资源等。 对控制流进行混淆,例如添加冗余代码、修改循环结构等。...io.flutter.plugin.** { *; } 三、优化应用程序包体积 3.1、移除使用资源 移除项目中使用资源(如图片、字体和动画),以减小应用程序包体积。...在Android目中,可以使用shrinkResources选项来移除使用资源android { ... buildTypes { release { ... shrinkResources...true } } ... } 3.2、压缩图片资源 压缩项目中图片资源,以降低它们文件大小。...可以使用像ipaguard这样工具来压缩图片资源。 四、提高反编译难度 4.1、混淆字符串 为了提高反编译难度,可以在编译阶段处理掉明文字符串。

52910

创建Android方法及Android .aar文件用法小结

以依赖形式添加您库 要在另一个应用模块中使用 Android代码,请按以下步骤操作: 1、通过两种方式之一将库添加到您项目(如果您是在相同项目中创建库模块,则该模块已经存在,您可以跳过此步骤...要阻止您库用户访问仅供内部使用资源,您应通过声明一个或多个公开资源方式来使用这种自动私有标识机制。 要删除某个公开资源,请将一个声明添加到您 public.xml文件中。...如果多个 AAR 库之间发生冲突,将使用依赖列表首先列出(位于 dependencies块顶部)库中资源。...为了避免常用资源 ID 资源冲突,请使用在模块(或在所有项目模块)中具有唯一性前缀或其他一致命名方案。...主模块和库模块生成 R 类会在所需所有软件包(包括主模块软件包和库软件包)中创建。

2.8K10

Android Studio 3.2新功能特性

Android应用程序包 Android App Bundle是一种新上传格式,其中包含应用程序所有已编译代码和资源,但会延迟APK生成并登录到Google Play商店。...这些新检查范围关于潜在可用性问题警告到关于潜在安全漏洞高优先级错误。 新Gradle目标 使用lintFixGradle任务将lint检查建议所有安全修复直接应用于源代码。...这意味着,如果您有使用V1编译库依赖,则可以将它们与使用Data Binding V2项目一起使用。但是请注意,使用V1项目无法使用通过V2编译依赖。...通过此版本,您现在还可以查看和检查包含在导入到应用项目中外部C / C ++库依赖头文件。...在cpp 目录中,位于应用程序项目范围内所有头文件都将在每个本地C / C ++库依赖include节点下进行组织。

5.3K10

成功逆袭:越来越胖怎么能忍,我APK瘦身之路!

APK构成中可以看出占比较大几个部分,可以着重对其优化 优化 res文件夹 图片资源压缩 1、ImageOptim 提供了相应客户端,支持通过客户端批量处理,mac上可以使用如下命令开启: ?...开发了一个gradle插件来批量操作,网上也有一些类似的插件:TinyPng Gradle插件 移除无用资源 1、通过使用Lint检测删除无用资源,某些业务代码删除时候遗漏了相应资源,可以写个脚本检测移除不再使用资源...xxhdpi"配置支持资源,只能人肉删除。...资源混淆 开源解决方案AndResGuard可以看下,通过使用段路径和压缩可以减小apk,需要注意是你目中某些资源需要keep,减少了1.5M。...架构支持 Android系统目前支持以下七种不同CPU架构:ARMv5,ARMv7 (2010年起),x86 (2011年起),MIPS (2012年起),ARMv8,MIPS64和x86_64

62820

Google推荐在Compose中使用collectAsStateWithLifecycle替代collectAsState

如果您使用 Jetpack Compose 构建 Android 应用程序,请使用 collectAsStateWithLifecycle API UI以生命周期感知方式收集流。...在后台保持资源活跃 Android 应用程序可以在无数 Android 设备上运行。不幸是,并非所有设备和所有用户都拥有无穷无尽资源。应用程序通常在受限环境中运行。...运行 Android 应用时,有一些重要因素会影响用户体验和设备系统健康: CPU 使用率:在所有设备组件中,CPU 电池消耗量最高。电池寿命是用户长期关注问题。...如果被滥用,用户可能会卸载您应用。 数据使用:在连接到 Wi-Fi 时减少应用程序中网络流量可以帮助用户节省资金。 内存使用:应用程序如何使用内存会对设备整体稳定性和性能产生非常大影响。...但是,在 Android 应用程序中使用 Compose 时,Android 生命周期在如何管理资源方面也起着至关重要作用。

2.9K20

Android性能优化(十)之App瘦身攻略

Proguard是一个免费Java类文件压缩、优化、混淆、预先验证工具,可以检测和移除使用类、字段、方法、属性,优化字节码并移除使用指令,并将代码中类、字段、方法名字改为简短、无意义名字...4、 Apk瘦身之资源瘦身 对于重要性,代码和资源瘦身同样重要,但是效果上来说,资源文件瘦身效果比代码瘦身效果要好非常多。...4.1 移除无用资源文件 移除无用资源文件要比移除无用代码容易,在Android Studio任何文件中右击,选择清除无用资源即可删除没有用到资源文件。 ?...目前Android共支持七种不同类型CPU架构,分别是:ARMv5,ARMv7 (2010年起),x86 (2011年起),Mips (2012年起),ARMv8,Mips64和x86_64 (...一点经验:对Apk进行瘦身,瘦身So以及资源文件是见效最快操作。瘦身So以及删除不用图片、压缩图片之后,Apk会缩减很大比例;而针对Dex优化可能作用不会很明显。

1.6K30

C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码

在Application Icon选项中,我们可以任意选择一个已有的图片资源文件,并设置为应用程序图标....然后,链接器将丢弃使用(或引用)所有使用程序集,类型和成员。这就使得我们最终应用大小得到了显着降低。...ProGuard通常用于减少APK中大型附加库(如Google Play服务)占用空间来获得较小应用程序。 ProGuard会删除使用Java字节码,这就会让生成应用程序更小。...一般,在小型Xamarin.Android应用程序上使用ProGuard通常可以减少大约24%大小 如果,在具有多个库依赖性较大应用程序上使用ProGuard通常可以实现更大尺寸缩小。...Xamarin.Android还支持自定义ProguardConfiguration构建操作。您可以将自定义ProGuard配置文件添加到项目中,右键单击它,并将其作为构建操作选择.

2.7K80

实现Android APK瘦身99.99%

让我们当一次坏人,将我们所有的加载图标替换为单一单像素黑点,并置于验证res/drawable目录中。图片大小约 67 个字节。...但是resources.arsc依然引用了如下: 一个布局文件; 一个字符串资源; 一个调用图标。 让我们第一着手。...这看上去是一个小更改,但是它从resources.arsc中删除了一,削减了 Manifest 文件中字符数,并从“res”目录中移除了一个文件。略有裨益,我们削减了 228 个字节。...总而言之,gradle 生成了一个签名归档文件,zipalign 更改了压缩资源字节对齐方式,用于改进加载 APK 时 RAM 使用,最后 APK 将被加密签名。...因此,只要简单地删除原始文件并在终端运行touch classes.dex,使用这一空文件就能获得近 10% 规模削减。 有时看上去最愚蠢方法反而最有效。

1.8K30

「玲珑宝塔」优化 Apk 包大小

目前而言,项目中使用到真正用到 So 库没几个,全部兼容太过于浪费,据说 arm 属于通用,那么这里同语言设置一样,仅支持 arm 即可。 defaultConfig { ......: 代码优化:通过检测并安全移除使用类、字段、方法和属性; 资源压缩:应用中移除使用资源,此过程包含移除库依赖使用资源文件。...随后我们继续打包,查看混淆、资源压缩后 Apk 大小以及部分变化: ? dex 3 个降低到 2 个。 Keep 文件均已混淆,而 Keep 文件依旧傲娇挺立,如下图: ?...其目的是要确保所有压缩数据开头均相对于文件开头部分执行特定对齐。具体来说,它会使 APK 中所有压缩数据(例如图片或原始文件)在 4 字节边界上对齐。...这样一来,即可使用 mmap() 直接访问所有部分,即使其中包含具有对齐限制二进制数据也没关系。这样做好处是可以减少运行应用时消耗 RAM 容量。 如何使用

80220

Android减包 - 减少APK大小

一个APK文件就是ZIP包,其中包含了组成你应用所有文件,比如Java类文件,资源文件,和一个包含被编译资源文件。...当lint工具发现了项目中潜在使用资源,它会打印以下类似信息: res/layout/preferences.xml: Warning: The resource R.layout.preferences...为了使用shrinkResources,你必须要启用代码混淆。在构建过程中,首先proguard移除了使用代码,然后gradle移除使用资源。...尽管Android支持所有这些屏幕密度,但你不需要为每个密度都配置相应资源。 如果你知道某种特定屏幕密度已经很少有用户使用了,那么你可以考虑是否需要为这个屏幕密度配置资源。...使用Android NDK提供arm-eabi-strip工具,能从Native库中删除不必要调试符号,之后你再编译release包。

1.7K100
领券