Android 开发工具使用

c++调试

在NDK调试的时候,如果找不到 符号的话,我们可以在调试配置中添加符号地址的全路径一直到根目录:,xxx/armeabi-v7a:
You must point the symbol search paths at the obj/local/ directory. This is also not a recursive search path, so you must set the full path to the obj/local/armeabi-v7a directory.
在这里插入图片描述

NDK调试的过程中,如果debug包也是将so strip的话,可以在build选项中控制不strip

buildTypes {debug {packagingOptions {doNotStrip '**/*.so'}}release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'packagingOptions {doNotStrip '**/*.so'}}
}

如果通过上面的方式 don’t strip 还是无法调试,可以尝试 增加 -g 参数,增加调试信息。

android {... buildTypes {debug {externalNativeBuild {cmake {// 生成调试信息cppFlags += "-g"}}	}}

报错解决:
如果在NDK debug 调试的时候有下面的报错:

If you experience an application crash at AInputQueue_preDispatchEvent with SIGILL (illegal instruction), there is a workaround available by disabling the SIGILL handler in LLDB. Follow these instructions to do so:

我们可以使用下面的方式去解决:

1. Open the application in Android Studio.
2. Open Run > Edit Configurations.
3. On the Run/Debug Configurations window, make sure your app is selected in the left pane, and click the Debugger tab in the right pane.
On the Debugger tab, click the LLDB Post Attach Commands tab below.
4. Click the + to the right, add the following command, and press Enter:process handle --pass true --stop false --notify true SIGILL
5. Click OK to apply the change.
perfetto

新的sysTrace工具
https://developer.android.com/studio/command-line/perfetto?hl=zh-cn

反编译工具:

jadx-gui:
方便的jadx工具,可以直接反编译apk
与jd-gui有类似的界面
支持全局搜索

Mapping 设置

打开 Settings 按照下面的方式添加自己的工程路径到项目中,这样我们就可以将项目添加到Android studio 的git 管理工,在代码编辑的地方直接右键 Annotate 可以看到代码提交记录
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/4324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】如何使用Webpack实现打包操作

一、Webpack介绍 Webpack最主要的作用就是打包操作,由两个核心部分构成分别是“出口”与“入口”。wbepack是现在比较热门的打包工具了,它可以将许多松散耦合的模块按照依赖和规则打包成符合生产环境部署的前端资源。说的直白一点,通过webpac…

redission原理笔记

加锁成功的线程,将UUID和线程id和key绑定, 加锁成功后,内部有一个看门狗机制,每隔十秒看下当前线程是否还持有锁,延长生存时间。 没有获取锁的就一直自旋等待,直到超时。 如果redis是主从同步的&#xff0…

自动驾驶新书“五一”节马上上市了

我和杨子江教授合写的《自动驾驶系统开发》终于在清华大学出版社三校稿之后即将在五一节后出版。 清华大学汽车学院的李克强教授和工程院院士撰写了序言。 该书得到了唯一华人图灵奖获得者姚期智院士、西安交大管晓宏教授和科学院院士以及杨强教授和院士等的推荐,…

不使用加减运算符实现整数加和减

文章目录 进位 进位 加粗 最近想出了不使用运算符实现加与减 首先按位与找出的是需不需要进位 按位与是两边同时为1,则为1,那么如果两边同时为1的话,是不是就该进位?所以我们用按位与来判断是否需要进位 然后再按位异或找出不同的位数 按位异或是两边不相等,也就是1 和 0的时…

[每周一更]-(第94期):认识英伟达显卡

英伟达显卡:引领图形计算的领先者,显卡也常称为GPU(图形处理器 Graphics processing unit),是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上执行绘图运算工作的…

CVPR2022 ACmix 注意力模块 | On the Integration of Self-Attention and Convolution

论文名称:《On the Integration of Self-Attention and Convolution》 论文地址:2111.14556 (arxiv.org) 卷积和自注意力是两种强大的表示学习技术,通常被认为是两种截然不同的并列方法。在本文中,我们展示了它们之间存在一种强烈…

排序试题解析(二)

8.4.3 01.在以下排序算法中,每次从未排序的记录中选取最小关键字的记录,加入已排序记录的 末尾,该排序算法是( A ). A.简单选择排序 B.冒泡排序 C.堆排序 D.直接插入排序 02.简单选择排序算法的比较次数和移动次数分别为( C )。…

【小沐学Java】VSCode搭建Java开发环境

文章目录 1、简介2、安装VSCode2.1 简介2.2 安装 3、安装Java SDK3.1 简介3.2 安装3.3 配置 4、安装插件Java Extension Pack4.1 简介4.2 安装4.3 配置 结语 1、简介 2、安装VSCode 2.1 简介 Visual Studio Code 是一个轻量级但功能强大的源代码编辑器,可在桌面上…

如何使用小浪助手快速下载学浪中的视频?

今天给大家准备好了一个工具,小浪助手,它可以帮你们快速下载学浪中的视频 小浪助手我已经打包好了,有需要自己取一下 学浪下载工具链接:https://pan.baidu.com/s/1_Sg-EGGXKc4bMW-NPqUqvg?pwd1234 提取码:1234 --…

【语音识别】搭建本地的语音转文字系统:FunASR(离线不联网即可使用)

参考自: 参考配置:FunASR/runtime/docs/SDK_advanced_guide_offline_zh.md at main alibaba-damo-academy/FunASR (github.com)参考配置:FunASR/runtime/quick_start_zh.md at 861147c7308b91068ffa02724fdf74ee623a909e alibaba-damo-aca…

电脑教程1

一、介绍几个桌面上面的软件 1、火绒:主要用于电脑的安全防护和广告拦截 1.1 广告拦截 1.打开火绒软件点击安全工具 点击弹窗拦截 点击截图拦截 拦截具体的小广告 2、向日葵远程控制:可以通过这个软件进行远程协助 可以自己去了解下 这个软件不要…

模块四:一维前缀和模板——DP34 【模板】前缀和

文章目录 题目描述算法原理解法一:暴力解法(时间复杂度为O(n*q))解法二:前缀和(时间复杂度为O(n)O(q))细节问题 代码实现CJava 题目描述 题目链接:DP34 【模板】前缀和 根据描述第一句可得数组长度应设为n 1 算法原理 解法一…

编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 编写…

个人学习-前端相关(2):ECMAScript 6-箭头函数、rest、spread

ES6的箭头函数 ES6允许使用箭头函数,语法类似java中的lambda表达式 let fun1 function(){} //普通的函数声明 let fun2 ()>{} //箭头函数声明 let fun3 (x) >{return x1} let fun4 x >{return x1} //参数列表中有且只有一个参数,()可…

kubebuilder(3)实现operator

在前面的文章我们已经了解了operator项目的基本结构。现在我们来写一点简单的代码,然后把我们的crd和operator部署到k8s集群中。 需求 这是一个真实的需求,只不过做了简化。 在开发公司自己的paas平台,有一个需求是,用户在发版…

236基于matlab的三维比例导引法仿真

基于matlab的三维比例导引法仿真,可以攻击静止/机动目标。1.三维空间内的比例导引程序,采用龙哥库塔积分法;2.文件名为bili3dnew的.m文件是主函数,执行时需调用目标机动子函数、导引律子函数、数值积分法子函数;3.文件…

统计建模——模型——python为例

统计建模涵盖了众多数学模型和分析方法,这些模型和方法被广泛应用于数据分析、预测、推断、分类、聚类等任务中。下面列举了一些常见的统计建模方法及其具体应用方式: 目录 1.线性回归模型: ----python实现线性回归模型 -------使用NumPy…

【C++】---STL容器适配器之queue

【C】---STL容器适配器之queue 一、队列1、队列的性质 二、队列类1、队列的构造2、empty()3、push()4、pop()5、size()6、front()7、back() 三、队列的模拟实现1、头文件(底层:deque)2、测试文件3、底层:list 一、队列 1、队列的…

Java基础_集合类_List

List Collection、List接口1、继承结构2、方法 Collection实现类1、继承结构2、相关类(1)AbstractCollection(2)AbstractListAbstractSequentialList(子类) 其它接口RandomAccess【java.util】Cloneable【j…

Kafka学习笔记01【2024最新版】

一、Kafka-课程介绍 官网地址:Apache KafkaApache Kafka: A Distributed Streaming Platform.https://kafka.apache.org/ kafka 3.6.1版本,作为经典分布式订阅、发布的消息传输中间件,kafka在实时数据处理、消息队列、流处理等领域具有广泛…