`Android NDK` `readelf` 在`Terminal`上的使用(配置`readelf`)

news/2024/9/17 19:03:45/ 标签: android

Android NDK readelfTerminal上的使用(配置readelf

当一个 Android APP 需要集成别的地方来的原生库(.so)时,你可能也会跟我一样会有那么几点疑惑:

  • 这个 so 用的什么 NDK 版本编译的?会不会跟项目里其它的so 冲突,尤其项目里使用共享 C++ STL的情况下 ANDROID_STL=c++_shared,一个应用不能使用多个 C++ 运行时
  • 这个 so 目标 Android API 等级是多少?会不会大于项目的minSdkVersion
  • 这个 so 依赖(链接)其它哪些 so?这些 so 有没有都放进项目里?
  • 这个 so 有没有除了用文件哈希之外唯一编号,用来标识崩溃堆栈等?

1.可以用 ndk-which 找到 NDK 中预编译好的 readelf

$ANDROID_NDK_HOME/ndk-which --abi arm64-v8a readelf
/Users/xxx/Library/Android/sdk/ndk/21.4.7075529/prebuilt/darwin-x86_64/bin/../../../toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android-readelf

androidreadelf_13">2.定义一个名为 readelf alias 方便在 Terminal 中调用 aarch64-linux-android-readelf

alias readelf=`$ANDROID_NDK_HOME/ndk-which --abi arm64-v8a readelf`readelf -v

3.以 NDK中带的libc++_shared.so为例

readelf -WS $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so

http://www.ppmy.cn/news/1523723.html

相关文章

【conda】理解 `conda` 和 `pip`:Python 包管理工具的全面对比与最佳实践

目录 1. 概述2. 主要区别2.1 包管理范围2.2 环境管理2.3 安装机制2.4 依赖解决 3. 是否可以混用3.1. 混用Conda和Pip的注意事项3.2 混用时的最佳实践 4. 安装位置5. 如何判断包来源5.1 查看包列表5.2 检查包的来源 总结 在 Python 的开发过程中,包管理工具扮演了至关…

深入解析`node-html-to-image`的`main.ts`源码:实现HTML到图片的转换

引言 node-html-to-image是一个强大的Node.js库,它允许开发者将HTML内容转换为图片。本文将深入解析该库的main.ts文件,揭示其内部工作原理,并帮助开发者更好地理解和使用该库。 项目背景与功能概述 node-html-to-image的主要功能是将HTML…

判断语句有几种写法

在编程中,判断语句用于基于特定条件来控制程序的执行流程。以下是一些常见编程语言中判断语句的几种基本写法: ### 1. if 语句 if 语句是最基本的条件判断结构,用于在条件为真时执行一段代码。 **示例**: c if (condition) { // 条件为…

西门子博途零基础学PLC必会的100个指令

#西门子##PLC##自动化##工业自动化##编程##电工##西门子PLC##工业##制造业##数字化##电气##工程师# 工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群

深度学习算法:现代人工智能的核心驱动

深度学习(Deep Learning)在人工智能领域表现出色,其复杂但强大的算法驱动了许多突破性应用。从图像分类、自然语言处理到自动驾驶等,深度学习展现了前所未有的可能性。本文将深入剖析深度学习算法的核心概念、主要框架及其面临的挑…

浙大数据结构:01-复杂度3 二分查找

数据结构MOOC PTA习题 01-复杂度3 二分查找 标准的二分查找。 注意下标从1开始&#xff0c;Last结束 没找到返回NotFound Position BinarySearch( List L, ElementType X ) {int nL->Last;int l1,rn;while(l<r){int mid(lr)/2;if(L->Data[mid]>X)rmid;else lm…

奋楫者“先”,中国产业数字化以“存”致远

回顾人类社会发展历程&#xff0c;从甲骨文、纸张&#xff0c;到磁带、光盘&#xff0c;再到硬盘、SSD&#xff0c;数据存储的每一次变革&#xff0c;都推动着人类文明和社会经济飞速发展。 进入到数字经济时代&#xff0c;数据作为核心生产要素&#xff0c;正逐步融入到生产、…

尚品汇-支付宝退款、支付成功库存系统对接实现(四十九)

目录&#xff1a; &#xff08;1&#xff09;支付宝退款 &#xff08;2&#xff09;支付成功处理 &#xff08;3&#xff09;订单模块发送减库存通知 &#xff08;4&#xff09;消费减库存结果 &#xff08;1&#xff09;支付宝退款 直接在浏览器发起请求即可&#xff01; …

【鸿蒙开发从0到1 day08】

鸿蒙开发基础 一.联合类型二.枚举类型三.组件和样式1. ArkUI基本语法 四.尺寸五.字体1.字体颜色2.字体样式3.LineHeight() 设置行高 上间距文字下间距4.下划线:5.对齐方式(1)水平对齐方式(2)垂直对齐方式 6.文本缩进和文本省略号设置 六.图片1.图片的等比例缩放2.占位符3.图片填…

QT之QML学习四:Qt开启终端窗口,以及qml自定义Button聚焦矩形框去除

开发环境: 1、Qt 6.7.2 2、Pyside6 3、Python 3.11.4 4、Windows 10 前言:开启中端窗口的好处就是能够看到各种Debug信息以及能够看到各种报错信息。 最终效果如下 QT之QML学习四:Qt开启终端窗口,以及qml自定义Button聚焦矩形框去除 一、设置显示终端窗口1.勾选在终端运…

Redis实战:存储笔记点赞+好友关注+GEO搜索附件商户+用户签到+UV统计

存储笔记点赞&#xff1a; 这个需求也很简单&#xff0c;就是将每一篇笔记或者文章的点赞用户存储到redis中 我觉得我们需要有一个概念&#xff1a; 就是我们的key是什么&#xff0c;这个key肯定是这个笔记的id&#xff0c;所以我们需要有一个想法&#xff0c;就是一个笔记在…

计算机毕业设计 校内跑腿业务系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)

Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络) 文章目录 Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)前言一、Ubuntu依赖安装二、创建操作目录, 下载build_chain.sh脚本2.1 先…

Python作为客户端连接websocket

缘起 因为需要将MQTT中的数据推送给前端,但是前端不会直接连接MQTT,所以服务端做了一个中间层,通过websocket推送,但是在开发的过程中前端总是认为推送的数据不及时,所以这里又实用Python单独做了一个客户端做时间记录验证。开始吧 安装三方包 Python的生态很方便,这里…

已解决:ppt文件打开就是只读模式,如何改为可编辑模式?

PPT文档打开是只读模式&#xff0c;如何改成可编辑文档呢&#xff1f;这需要分几种情况来说&#xff0c;所以今天将介绍几种方法帮助PPT只读文档改为可编辑文档。 方法一&#xff1a; 我们可以先查看一下文件属性&#xff0c;属性中有只读属性&#xff0c;当我们打开文档之后带…

DFS算法专题(一)——二叉树中的深搜【回溯与剪枝的初步注入】

目录 1、DFS算法简介 2、算法实战应用【leetcode】 2.1 计算布尔二叉树的值 2.1.1 算法原理 2.1.2 算法代码 2.2 求根节点到叶节点数字之和 2.2.1 算法原理 ​2.2.2 算法代码 2.3 二叉树剪枝 2.3.1 算法原理 2.3.2 算法代码 2.4 验证二叉搜索树 2.4.1 算法原理 …

5G网络建设

题目描述 现需要在基城市进行5G网络建设&#xff0c;已经选取N个地点设置5G基站&#xff0c;编号固定为1到N&#xff0c;接下来需要各个基站之间使用光纤进行连接以确保基 站能互联互通&#xff0c;不同基站之间假设光纤的成本各不相同&#xff0c;且有些节点之间已经存在光纤…

企业微信群管理:构建高效沟通与协作的社群生态

在数字化时代&#xff0c;企业微信群已成为企业内部沟通、团队协作及外部客户交流的重要平台。一个管理得当的企业微信群&#xff0c;不仅能够促进信息的快速流通&#xff0c;提升工作效率&#xff0c;还能增强团队凝聚力&#xff0c;优化客户体验。本文将从群规制定、内容管理…

一文彻底搞懂,设计模式六大原则(建议收藏)

目录 前言 1.单一职责原则&#xff08;Single Responsibility Principle, SRP&#xff09; 2.里氏替换原则&#xff08;Liskov Substitution Principle, LSP&#xff09; 3.依赖倒置原则&#xff08;Dependency Inversion Principle, DIP&#xff09; 4.接口隔离原则&#xff0…

6.测试用例设计方法

一、场景法 场景法就是把业务的场景通过用例来遍历&#xff0c;验证软件系统功能的正确性 1.场景法的使用场景 对项目的业务流程功能用例的设计&#xff0c;基于场景法来进行设计 2.业务流程图 基于场景法设计测试用例的依据&#xff0c;由产品提供业务流程图 业务流程图 正常…