Android 开发部分基础工具使用

news2024/11/23 12:36:00
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 false
        proguardFiles 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 可以看到代码提交记录
在这里插入图片描述

Android 布局查看和分析 uiautomatorviewer 位置
uiautomatorviewer : “UIautomatorviewer” is a GUI tool to scan and analyze the UI components of an Android application
使用 该工具可以去分析布局的层级和结构,mac中ui autoviewer的位置 android-sdk→tools→bin→uiautomatorviewer.bat

使用 Android Studio Dump 线程的信息
在这里插入图片描述

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

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

相关文章

C++奇迹之旅:C++内存管理的机制初篇

文章目录 📝C/C内存分布🌠 C语言中动态内存管理方式🌉C内存管理方式 🌠new/delete操作内置类型🌉C与C链表构建对比 🚩总结 📝C/C内存分布 这是C/C中程序内存区域划分图: 数据段&am…

基于springboot+vue+Mysql的网上商城购物系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

蓝桥杯练习系统(算法训练)ALGO-951 预备爷的悲剧

资源限制 内存限制:512.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 英语预备爷gzp是个逗(tu)比(hao),为了在即将到来的英语的quiz中不挂科,gzp废寝忘食复习英语附录单词…

V23 中的新增功能:LEADTOOLS React Medical Web 查看器

LEADTOOLS (Lead Technology)由Moe Daher and Rich Little创建于1990年,其总部设在北卡罗来纳州夏洛特。LEAD的建立是为了使Daher先生在数码图象与压缩技术领域的发明面向市场。在过去超过30年的发展历程中,LEAD以其在全世界主要国家中占有的市场领导地位…

JUC常见类

背景 JUC是java.util.concurrent的简称,这个包里面存放的都是和多线程相关的类,在面试中非常的重要 目录 1.Callable接口 2.ReentrantLock 3.信号量Semaphore 4.CountDownLatch 5.集合的线程安全问题 1.Callable接口 1.1.认识Callable接口 &#x…

phpstudy 搭建 upload-labs 文件上传靶场

phpstudy 搭建靶场:下载安装好phpstudy后,下载靶场源码: upload-labs下载地址: https://github.com/c0ny1/upload-labs 下载完压缩文件,解压文件,解压后的文件夹命名为upload--labs 将解压后到文件夹放…

爱普生晶振在物联网LoRa通讯中的应用

LoRa 是LPWAN通信技术中的一种,是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。这一方案改变了以往关于传输距离与功耗的折衷考虑方式,为用户提供一种简单的能实现远距离、长电池寿命、大容量的系统,进而扩展传感网络…

频分复用系统设计及其MATLAB实现

引言 随着通信技术的飞速发展,通信系统的容量需求不断增长。频分复用(Frequency Division Multiplexing, FDM)作为一种重要的多路复用技术,被广泛应用于现代通信系统中。本文将介绍频分复用系统的设计原理,并展示如何…

springboot 自动配置源码解读

什么是自动装配 当我们程序依赖第三方功能组件时,不需要手动将这些组件类加载到IOC容器中。例如 当程序需要用到redis时,在pom.xml文件中引入依赖,然后使用依赖注入的方式直接从IOC容器中拿到相应RedisTemplate实例。 SpringBootApplication …

cuda非root用户安装及mamba库安装报错问题

1、先检查是不是cuda版本的问题(cuda≥11.6) 非root用户安装指南: (1)先去NVIDIA官网CUDA Toolkit Archive | NVIDIA Developer 选一个版本 查看architecture的命令 uname -m 查看version的命令 lsb_release -a 下…

探索AIGC技术:创新、挑战与责任

🎥 个人主页:Dikz12📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 #如何看待AIGC技术? 目录 AIGC简单介绍 创新 责任 未来展望和挑战 AIGC简单介绍 A…

34.基础乐理-简谱需要移调吗?

首先需要具备 首调 与 固定调的知识,才能理解,以两只老虎为例子,如下图: 首调:可以看到C大调、D大调、E大调三种方式的乐谱,记录的数字,记录的唱名,都是1231,唯一不同的…

深度学习中的归一化:BN,LN,IN,GN的优缺点

目录 深度学习中归一化的作用常见归一化的优缺点 深度学习中归一化的作用 加速训练过程 归一化可以加速深度学习模型的训练过程。通过调整输入数据的尺度,归一化有助于改善优化算法的收敛速度。这是因为归一化后的数据具有相似的尺度,使得梯度下降等优化…

开源框架 NanUI 项目宣布将暂停开发,作者转行卖钢材

NanUI 界面组件是一个开源的 .NET 窗体应用程序界面框架,适用于希望使用 HTML5 / CSS3 等前端技术来构建 Windows 窗体应用程序用户界面的 .NET 开发人员。 该项目的作者林选臣日前在 GitHub 上发布了停更公告,称因去年被裁员失业,他目前已经…

VBA技术资料MF147:从Excel运行PowerPoint演示文稿

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

毫米波雷达多人呼吸心跳检测MATLAB仿真

本文基于TI的IWR1642毫米波雷达 2T4R MIMO阵列,通过实际采集数据算法仿真,实现多人呼吸心跳检测。 文章末尾给出了本文的仿真代码。 主要内容包含: (1)雷达参数设定 (2)ADC数据导入 &#xff08…

uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之使用jar包插件

前言 如果你不会编写安卓插件,你可以先看看我之前零基础的文章(uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之零基础编写安卓插件), 我们使用第三方包,jar包编写安卓插件 开始 把依赖包,放到某个模块的/libs目录(myTestPlug/libs) 还要到build…

采访OpenAI奥特曼:预计会有几个不同版本的通用人工智能,并且各有擅长 | 最新快讯

在我与山姆奥特曼(Sam Altman)的短暂会面中,有许多瞬间让我更加了解了这位 OpenAI CEO 的世界观。 第一个瞬间是他指着我的 iPhone SE 说:“这是最好的 iPhone。”不过,展示其更清晰愿景的瞬间是,他描绘了人…

运维的利器--监控--zabbix--第二步:建设--选择中文--导致乱码问题

文章目录 问题原因解决方法1解决方法2:修改图形的数据展示(默认字体有问题) 问题 点击对应主机的【图形】即可看到以下乱码情况 原因 上述的图标数据,下面的小白框表示乱码含义,是因为我们改了zabbix的 语言为中文…

c语言——二叉树

目录 目录 二叉树关键概念理解 一颗拥有1000个结点的树度为4,则它的最小深度是? 那么对于二叉树,只掌握这些是远远不够的,我们还需要掌握几个最基本的经典问题, 求二叉树大小 求叶子结点个数 求深度 求第k层的…