【原创文章,转载请保留或注明出处,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 ...
随机推荐
-
C++之路进阶——codevs2306(晨跑)
2306 晨跑 2009年省队选拔赛山东 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description Elaxia最近迷恋 ...
-
Jira中Activity Stream中显示Localhost不能正常访问的处理
在“介绍”中 “你可以在系统管理页面 编辑此段文字.”将地址改为IP和端口即可
- 自定义获取html元素对象的7种方法。
-
MultiMap
类关系 ArrayListMultiMap.java Multimap <I> | | AbstractMultimap <A> Serializable <I> ...
-
特征选择:Filter/Wrapper/Embedded
一.特征的来源 在做数据分析的时候,特征的来源一般有两块,一块是业务已经整理好各种特征数据,我们需要去找出适合我们问题需要的特征:另一块是我们从业务特征中自己去寻找高级数据特征.我们就针对这两部分来分 ...
-
(3)python tkinter-消息框、对话框、文件对话框
消息框 导入 import tkinter import tkinter.messagebox #这个是消息框,对话框的关键 提示消息框 tkinter.messagebox.showinfo('提示 ...
-
VS Access DataSet 插入
在使用vs2008+access数据库,然后又使用了数据集,这时候插入操作遇到了问题,各种乱七八糟.各种头疼的问题就不说了,现在说找到的解决方法: 在xsd文件中插入TableAdapter后,会自动 ...
-
【cocos2d-x 手游研发----界面UI设计】
简单探讨一下如何在cocos2d-x的游戏引擎里面去制作各做交互UI界面,常见的UI如下: 人物头像,血条值,经验条,技能按钮,以及各种玩家交互的界面按钮:背包,人物属性,门派,等: 类似上面的图示交 ...
-
Unity主线程和子线程跳转调用(2)
在上一篇介绍了多线程和Unity交互方式,但是由于我的项目是一个unity编辑器插件项目,很显然上一篇的代码需要加以修改,在编辑器下实现Loom. 1,Editor下的没有Update这个生命周期函数 ...
-
C#面向对象的编程语言具三个特性
C#面向对象的编程语言具三个特性:有封装性.继承性.多态性 .