一: 先看看用 ndk-gdb 手动调试

这种方法只适用于手动编写 Android.mk 的情况,因为我们要手动 build debug 版本的 .so 文件。具体可以参考我的前一篇文章。

1 AndroidManifest.xml  android:debuggable 设置为 true

2 切换到 jni 目录下执行 ndk-build NDK_DEBUG=1

这样就生成了 debug 版本的库文件,还多了一个 gdbserver 和  gdb.setup

3 运行安装启动程序

4 切换到你的 src/main 目录下执行  ndk-gdb

这时报了一个错误:

ERROR: Could not find gdb.setup under /Users/lesliefang/AndroidStudioProjects/MyApplication/app/src/main/libs/
那就把 armeabi 下面的 gdb.setup 文件拷贝到 ./libs 下面

重新执行,结果又报了一个错:

ERROR: Non-debuggable application installed on the target device.
Please re-install the debuggable version!

这是因为运行时 studio 没有把 gdbserver 打包到 apk 中, 怎么办呢,反编译后手动打包进去,重新打包签名就行了

安装启动运行,再次执行 ndk-gdb 成功

2 IDE 调试, android studio 目前对 NDK 的调试支持还只是实验阶段

具体可参考   http://tools.android.com/tech-docs/new-build-system/gradle-experimental

折腾了一番,也可以调试了

熟悉 java 的同学通常 C  和 C++ 不是很熟, 熟悉 C 和 C++ 的同学 java 通常不是很熟

所以可以先定义好接口,让熟悉C 和 C++的同学先开发完C程序,测试通过后,

让熟悉 java 和 JNI 的同学在外面再包一层,处理参数的传递和返回。复用已有的C程序也可以这么做。

JNI 可以直接用 eclipse for C、C++ 开发, JNI 接口都测试通过后再用  ndk 工具打成 .so 文件,

拿到 android studio 中, 对于 C或C++ 调用 android 中方法的情况可以先 mock

一些类和方法, 其实大部分情况都是 java 调用 C和C++, C和C++很少调用 java。

所以我觉得一般来说 ndk 可以分出来独立开发。

所有说直接在 android studio 中调试C和C++的时候也不多。

android studio ndk 调试的更多相关文章

  1. Android Studio NDK环境配置

    本文参考:Android Studio NDK环境配置及JNI使用方法:http://blog.csdn.net/tongseng/article/details/53005123 并添加自己的实践: ...

  2. Android Studio & eclipse 调试技巧

    如上图设置多个断点,开启调试.想跨断点移动到下一个断点,点击如下图1箭头,程序将运行一个断点到下一个断点之间需要执行的代码.如果后面代码没有断点,再次点击该按钮将会执行完程序.点击箭头2指向的按钮,可 ...

  3. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

  4. Android Studio断点调试

    Android Studio断点调试 Android Studio包含一个debugger程序,可以帮助你在模拟器和真机上调试你的android应用.通过Android Studio的debugger ...

  5. (转载) Android Studio你不知道的调试技巧

    Android Studio你不知道的调试技巧 标签: android studio 2015-12-29 16:05 2514人阅读 评论(0) 收藏 举报  分类: android(74)    ...

  6. 【Android】Android Studio NDK 开发

    Android Studio NDK 开发 记录在Android Studio中NDK简单开发的步骤 用到的Android Studio版本为3.5. 配置NDK 下载NDK 一般在SDK下已经有自带 ...

  7. Android Studio NDK编程初探

    继上一篇学习了如何使用NDK编译FFMPEG后,接下来就是要学习如何在Android Studio中使用了. 经过参考和一系列的摸索,记录下具体步骤. 创建C++ Support的Android St ...

  8. Android Studio NDK 代码 Source Insight调试 (NDK 目前开发方案 | NDK 编译 | 导入 so 库 | 项目编码转换)

    作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/52088039 最近在移植一个 JNI 项目, 比较纠结, A ...

  9. Android Studio NDK编程-环境搭建及Hello!

    一,下载 安装android-ndk开发包 NDK各个版本链接二,新建项目NDKDemo,选择空Activity就可以:(注:Android studio 2.2,可通过SDK Tools 添加LLD ...

随机推荐

  1. vim显示行号

    在Linux环境下的编辑器有vi.vim.gedit等等.进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的.我们有二种办法可以解决: 第一种是,手动显示:在 ...

  2. spring所需包下载

    1.进入http://repo.spring.io/webapp/search/artifact/选择artifacts,在搜过栏输入spring-framework,点击查询出来的表头artifac ...

  3. Unix如何轻松快速复制

    笔者在实践中总结了一套Unix操作系统硬盘的快速复制方法,成功地运用于建行几大Unix操作系统网络的建设中,收到了良好的效果.现将该方法介绍如下,供读者参考. 系统要求,两台主机软尽量相同.要求被复制 ...

  4. git初学者这样就行了。

    Create a new repository on the command line touch README.md git init git add README.md git commit -m ...

  5. JSP基本面试的试题

    JSP基本面试的试题 1.jsp有哪些内置对象作用分别是什么 答:JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):      request 用户端请求,此请求会包含来自GET/PO ...

  6. [ruby on rails] 跟我学之(7)创建数据

    通过form来创建数据,本章节将会涉及内容:创建form,用户重导向,渲染views 和 flash消息. 1. views初步 编辑 app/views/posts/index.html.erb这个 ...

  7. systemd在各个linux发行版的普及

    后面我要说下自己的意见: 原则如果阻碍了进步,那还算个屁,不客气地说,UNIX 原则已经过时了. 移植性问题:我除了 Mac 外不用任何 BSD 系统,当然 Mac 上一般只做开发不做运维(但就算如此 ...

  8. Python之property装饰器

    参考: http://www.cnblogs.com/lovemo1314/archive/2011/05/03/2035600.html http://joy2everyone.iteye.com/ ...

  9. C++ virtual descructor

    [代码1]  C++ Code  12345678910111213141516171819202122232425262728293031323334353637383940414243444546 ...

  10. 搭建CAS单点登录服务器

    最近公司的一个项目需要用到单点登录的功能,之前对单点登录了解得不多.于是网上找了下单点登录的解决方案,发现CAS是个不错的解决方案.于是搭个环境测试了一下.这里记录下测试的详细步骤. 官网:http: ...