Android NDK调试C++源码(转)
【原创文章,转载请保留或注明出处,http://download.csdn.net/download/bigmaxim/5474055】
1. 相关软件
adt-bundle-windows-x86.zip --- Eclipse集成ADT插件,需要联网安装相应的Android SDK。
jdk-6u43-windows-i586.exe --- JDK6 Eclipse运行需要JAVA环境,编译ANDROID应用也需要JAVA编译器。
android-ndk-r8e-windows-x86.zip --- NDK r8e,支持在ANDROID应用中用C语言进行开发。说明:ndk-build可以不需要cygwin环境。
Cygwin --- 使用ndk-gdb调试C源码,需要Cygwin环境的支持。
2. WinXP系统环境变量配置
ADB_PATH=D:\GreenProgram\adt-bundle-windows-x86\sdk\platform-tools
classpath=.;%JAVA_HOME%\lib;%JAVA_HOME\lib\tools.jar
CYGWIN_BIN=C:\cygwin\bin
ECLIPSE_PATH=D:\GreenProgram\adt-bundle-windows-x86\eclipse
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_43
NDK_ROOT=D:\GreenProgram\adt-bundle-windows-x86\android-ndk-r8e
Path=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%NDK_ROOT%;%ADB_PATH%;%CYGWIN_BIN%;%ECLIPSE_PATH%
3. Cygwin配置
在当前用户的home目录下文件.bash_profile末尾添加以下2行
NDK_ROOT=/cygdrive/d/GreenProgram/adt-bundle-windows-x86/android-ndk-r8e
export NDK_ROOT
为方便调试程序,可添加以下一行。当启动cygwin时,直接进入项目目录。
cd /cygdrive/f/EclipseWorkspace/01_Capella/05_Test/01_L1Test/EMVTest
4. 应用工程配置
在“window –> preferences ->Android -> NDK”中添加NDK的路径。
AndroidManifest.xml文件中Debuggable设为true。
NDK编译设置:ndk-build NDK_DEBUG=1 V=1。
在android工程中的项目上点击右键,选择android tools中的add natie support,这样会增加c/c++等的编译链接选项。
5. Native方法中C源码级调试
5.1. 编译完应用,生成文件。
5.2. 右键点击工程 ->Run As->Android Application。
下载安装应用程序到开发板(或模拟器)中,并启动应用程序。
注意:这里只是要将生成的应用程序安装到开发板(或模拟器)
5.3. 启动Cygwin进入当前工程目录。
执行命令 ndk-gdb --force --verbose –start
在提示符<gdb>下输入quit退出。
在目录obj\local\ armeabi下增加了4个文件。
5.4. 右键点击工程 ->Debug As->Android Native Application。
在需要调试的位置设好断点,开始C源码级调试。
6.参考资料
http://download.csdn.net/download/bigmaxim/5474055
http://xzhoumin.blog.163.com/blog/static/408811362013230517254/
Android NDK调试C++源码(转)的更多相关文章
- Android动态方式破解apk进阶篇(IDA调试so源码)
一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为 ...
- Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)
Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...
- Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)
一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk 主要采用的是静态方式,步骤也很简单,首先使用 ...
- Android 自定义View及其在布局文件中的使用示例(三):结合Android 4.4.2_r1源码分析onMeasure过程
转载请注明出处 http://www.cnblogs.com/crashmaker/p/3549365.html From crash_coder linguowu linguowu0622@gami ...
- 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码
http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...
- 动态方式破解apk进阶篇(IDA调试so源码)
动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/qq_21051503/article/details/74907449 下面就说关于在IDA中And ...
- 使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码
前段时间Cocos2d-x更新了一个Cocos引擎,这是一个集合源码,IDE,Studio这一家老小的整合包,我们可以使用这个Cocos引擎来创建我们的项目. 在Cocos2d-x被整合到Cocos引 ...
- 使用VS2012调试ReactOS源码
目录 一 下载并安装VS2012 二 下载并安装WDK80 三 下载ReactOS0315源码 四 下载并安装RosBE211 五 用RosBE命令行编译ReactOS源码 六 用VS2012编译nt ...
- Android音乐播放器源码(歌词.均衡器.收藏.qq5.0菜单.通知)
一款Android音乐播放器源码,基本功能都实现了 qq5.0菜单(歌词.均衡器.收藏.qq5.0菜单.通知) 只有向右滑动出现,菜单键和指定按钮都还没有添加. 源码下载:http://code.66 ...
随机推荐
- Photoshop图层混合模式计算公式大全(转)
混合模式可以将两个图层的色彩值紧密结合在一起,从而创造出大量的效果.在这些效果的背后实际是一些简单的数学公式在起作用.下面我将介绍photoshop cs2中所有混合模式的数学计算公式.另外还介绍了不 ...
- Struts2 原理
.Struts2原理 .Struts 1 原理 .Struts1 和webwork的关系 .HttpServletRequest Struts2原理
- IOS中tableView每组的头部控件、通过tableView的代理方法控制某一行的cell能否达到高亮选中状态
一.tableView每组的头部控件 1.控件宽度默认就是tableView的宽度 2.控件高度由下面的代理方法决定 - (CGFloat)tableView:(UITableView *)table ...
- HDU 1018 Big Number (阶乘位数)
题意: 给一个数n,返回该数的阶乘结果是一个多少位(十进制位)的整数. 思路: 用对数log来实现. 举个例子 一个三位数n 满足102 <= n < 103: 那么它的位数w 满足 w ...
- HDU 5003 Osu!
解题思路:水题,不多说. #include<cstdio> #include<cstring> #include<algorithm> #include<cm ...
- RAC实例 表空间 维护
先配置一下监听,这样我们就可以从客户端进行连接了. 我这里写了三种连接. 第一种是正常方式,一般都采用这种方式,后面的rac1和rac2 是方便测试.因为如果用第一种方式的话,客户端连哪个实例是随机的 ...
- Content-type 的说明
如果要将查询结果导出到Excel,只需将页面的Context-Type修改一下就可以了: header( "Content-Type: application/vnd.ms-excel& ...
- php查询汉字的拼音首字母的函数
function getfirst($str, $charset='utf8'){ $dict=array( 'a'=>0xB0C4, 'b'=& ...
- 防范 DDoS 攻击的 15 个方法
为了对抗 DDoS(分布式拒绝服务)攻击,你需要对攻击时发生了什么有一个清楚的理解. 简单来讲,DDoS 攻击可以通过利用服务器上的漏洞,或者消耗服务器上的资源(例如 内存.硬盘等等)来达到目的.DD ...
- linux清空日志文件内容 (转)
随着系统运行时间越来越长,日志文件的大小也会随之变得越来越大.如果长期让这些历史日志保存在系统中,将会占用大量的磁盘空间.用户可以直接把这些日志文件删除,但删除日志文件可能会造成一些意想不到的后果.为 ...