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

Android 优化之 查找so 文件的来源

序言

有时候我们需要优化apk的包体积大小。比如下面这样的。一个so文件大小有10M。但是我们并不知道so文件是那个库引入的。所以需要研究一下。

方法

在参考网上现有方法,加上自己测试以后。有了下面的成功。而且在gradle 8.4.2都可以成功。相信大家都可以成功。

  classpath 'com.android.tools.build:gradle:8.4.2'

代码

需要配置到根目录的build.gradle文件中,需要配置到allprojects中

allprojects {
   
    //列出所有包含有so文件的库信息
    tasks.configureEach { task ->

        if (task.name.contains('NativeLibs')) { //如果是有多个flavor,则用 mergeFlavorDebugNativeLibs的形式


            task.inputs.files.each {
                file->   printDir(new File(file.absolutePath))
            }
            task.doFirst {

                println("------------------- find so files start -------------------")
                println("------------------- find so files start -------------------")
                println("------------------- find so files start -------------------")

                it.inputs.files.each { file ->
                    printDir(new File(file.absolutePath))
                }

                println("------------------- find so files end -------------------")
                println("------------------- find so files end -------------------")
                println("------------------- find so files end -------------------")
            }
        }
    }

}

def printDir(File file) {
    if (file != null) {
        if (file.isDirectory()) {
            file.listFiles().each {
                printDir(it)
            }
        } else if (file.absolutePath.endsWith(".so")) {
            println "find so file: $file.absolutePath"
        }
    }
}

执行

点击gralde菜单,找到任务mergeXXXZZZNativeLibs 双击执行就行了。XXX是你的风味名称,ZZZ是你的编译类型。
在这里插入图片描述

结果

所有的so文件都打印出来了,搜索一下就行了
在这里插入图片描述

注意

如果不输出内容可以先清理一下工程
在这里插入图片描述


http://www.kler.cn/news/285246.html

相关文章:

  • Camtasia 2024 v2024.0.6 for Mac 中文版 屏幕录像视频录制编辑软件
  • 找出两个序列的中位数
  • Python3.0以后各个版本区别介绍
  • 网络模型及协议介绍
  • STM32原理图一些引脚VDDA/VSSA/VBAT/OSC/NRST/BOOT
  • 随手记录第十五话 -- Spring Boot 3.2.3+Grafana+Prometheus+Loki实现一套轻量级监控加日志收集系统
  • 波导阵列天线单元学习笔记7 一种用直接金属激光烧结考虑的轻质量,宽带,双圆极化波导腔体阵列
  • Datawhale X 李宏毅苹果书 AI夏令营 Task2打卡
  • c++命令模式
  • Vscode推送代码到 Gitee
  • 关于一个早期的计算机网络的理解
  • Nginx 负载均衡深入指南:`proxy_pass` 指令的高效使用
  • Nginx: 负载均衡场景下上游服务器异常时的容错机制
  • docker python 3.11 容器报错
  • Windows连接虚拟机中的mysql5失败
  • C程序设计(潭浩强教授版)精选程序题
  • Bluetooth: gatt profile
  • 学习之SQL语句之DCL(数据控制语言)
  • 广电手机卡靠谱吗?
  • 【爬虫软件】YouTube评论采集工具
  • LVS工作模式
  • IBM退出中国,LabVIEW未来走向何方?
  • 5G智慧工地项目汇报方案
  • ElementPlus下拉框实现可选择,可输入
  • pm2 + linux + nginx
  • C++拷贝构造函数
  • 智能儿童对讲机语音交互,乐鑫ESP-RTC音视频通信,ESP32无线语音方案
  • JAVA:文字写入图片、图片插入图片
  • 睿考网:2024年中级经济师考试备考技巧
  • Java设计模式【享元模式】-结构型