Android NDK调试C++源码(转)

时间:2022-09-13 23:36:13

【原创文章,转载请保留或注明出处,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的路径。

Android NDK调试C++源码(转)

AndroidManifest.xml文件中Debuggable设为true。

Android NDK调试C++源码(转)

NDK编译设置:ndk-build NDK_DEBUG=1 V=1。

Android NDK调试C++源码(转)

在android工程中的项目上点击右键,选择android tools中的add natie support,这样会增加c/c++等的编译链接选项。

Android NDK调试C++源码(转)

5. Native方法中C源码级调试

5.1. 编译完应用,生成文件。

Android NDK调试C++源码(转)

5.2. 右键点击工程 ->Run As->Android Application。

Android NDK调试C++源码(转)

下载安装应用程序到开发板(或模拟器)中,并启动应用程序。

注意:这里只是要将生成的应用程序安装到开发板(或模拟器)

5.3. 启动Cygwin进入当前工程目录。

Android NDK调试C++源码(转)

执行命令 ndk-gdb --force --verbose –start

在提示符<gdb>下输入quit退出。

在目录obj\local\ armeabi下增加了4个文件。

Android NDK调试C++源码(转)

5.4. 右键点击工程 ->Debug As->Android Native Application。

Android NDK调试C++源码(转)

在需要调试的位置设好断点,开始C源码级调试。

Android NDK调试C++源码(转)

6.参考资料

http://download.csdn.net/download/bigmaxim/5474055

http://xzhoumin.blog.163.com/blog/static/408811362013230517254/

Android NDK调试C++源码(转)的更多相关文章

  1. Android动态方式破解apk进阶篇&lpar;IDA调试so源码&rpar;

    一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为 ...

  2. Android逆向之旅---动态方式破解apk进阶篇&lpar;IDA调试so源码&rpar;

    Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...

  3. Android动态方式破解apk前奏篇&lpar;Eclipse动态调试smail源码&rpar;

    一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用 ...

  4. Android 自定义View及其在布局文件中的使用示例&lpar;三&rpar;&colon;结合Android 4&period;4&period;2&lowbar;r1源码分析onMeasure过程

    转载请注明出处 http://www.cnblogs.com/crashmaker/p/3549365.html From crash_coder linguowu linguowu0622@gami ...

  5. 【转】Ubuntu 14&period;04&period;3上配置并成功编译Android 6&period;0 r1源码

    http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...

  6. 动态方式破解apk进阶篇&lpar;IDA调试so源码&rpar;

    动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/qq_21051503/article/details/74907449 下面就说关于在IDA中And ...

  7. 使用&OpenCurlyDoubleQuote;Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码

    前段时间Cocos2d-x更新了一个Cocos引擎,这是一个集合源码,IDE,Studio这一家老小的整合包,我们可以使用这个Cocos引擎来创建我们的项目. 在Cocos2d-x被整合到Cocos引 ...

  8. 使用VS2012调试ReactOS源码

    目录 一 下载并安装VS2012 二 下载并安装WDK80 三 下载ReactOS0315源码 四 下载并安装RosBE211 五 用RosBE命令行编译ReactOS源码 六 用VS2012编译nt ...

  9. Android音乐播放器源码&lpar;歌词&period;均衡器&period;收藏&period;qq5&period;0菜单&period;通知&rpar;

    一款Android音乐播放器源码,基本功能都实现了 qq5.0菜单(歌词.均衡器.收藏.qq5.0菜单.通知) 只有向右滑动出现,菜单键和指定按钮都还没有添加. 源码下载:http://code.66 ...

随机推荐

  1. C&plus;&plus;之路进阶——codevs2306(晨跑)

    2306 晨跑 2009年省队选拔赛山东  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master       题目描述 Description Elaxia最近迷恋 ...

  2. Jira中Activity Stream中显示Localhost不能正常访问的处理

    在“介绍”中 “你可以在系统管理页面 编辑此段文字.”将地址改为IP和端口即可

  3. 自定义获取html元素对象的7种方法。

  4. MultiMap

    类关系 ArrayListMultiMap.java Multimap <I> | | AbstractMultimap <A> Serializable <I> ...

  5. 特征选择:Filter&sol;Wrapper&sol;Embedded

    一.特征的来源 在做数据分析的时候,特征的来源一般有两块,一块是业务已经整理好各种特征数据,我们需要去找出适合我们问题需要的特征:另一块是我们从业务特征中自己去寻找高级数据特征.我们就针对这两部分来分 ...

  6. &lpar;3&rpar;python tkinter-消息框、对话框、文件对话框

    消息框 导入 import tkinter import tkinter.messagebox #这个是消息框,对话框的关键 提示消息框 tkinter.messagebox.showinfo('提示 ...

  7. VS Access DataSet 插入

    在使用vs2008+access数据库,然后又使用了数据集,这时候插入操作遇到了问题,各种乱七八糟.各种头疼的问题就不说了,现在说找到的解决方法: 在xsd文件中插入TableAdapter后,会自动 ...

  8. 【cocos2d-x 手游研发----界面UI设计】

    简单探讨一下如何在cocos2d-x的游戏引擎里面去制作各做交互UI界面,常见的UI如下: 人物头像,血条值,经验条,技能按钮,以及各种玩家交互的界面按钮:背包,人物属性,门派,等: 类似上面的图示交 ...

  9. Unity主线程和子线程跳转调用(2&rpar;

    在上一篇介绍了多线程和Unity交互方式,但是由于我的项目是一个unity编辑器插件项目,很显然上一篇的代码需要加以修改,在编辑器下实现Loom. 1,Editor下的没有Update这个生命周期函数 ...

  10. C&num;面向对象的编程语言具三个特性

    C#面向对象的编程语言具三个特性:有封装性.继承性.多态性 .