转发,请保持地址:http://blog.csdn.net/stalendp/article/details/8807603
做NDK开发的时候,调试是比较头疼的事情;但是没有调试,有些具体的错误就无法了解。这里我流水似的介绍一下在真机下的ndk调试方案,以下是我的笔记:
NDK进行调试的时候,遇到了几个问题:
1) 需要对Android手机有root权限来设置执行一些命令
2)配置ndk-build
3)配置adbserver
4)配置adb client
调试的整体流程:
在进行调试之前,ndk-adb脚本要从手机上获取一些文件来做调试前准备(bug a);之后,将建立一个远程调试构架来调试应用程序。其中服务器端(adbserver)负责与手机通讯,本地客户端(client)将通过服务器端调试手机程序。
=============
bug A)权限问题
=============
在调试准备阶段,ndk-adb脚步将从手机端获取相关信息,比如 1) 位于/data/data下的app信息;还有和机器相关的应用程序: gdb.setup, app_process 和 libc.so 等文件(通过查看ndk-adb的执行日志,后两个文件分别位于手机的/system/bin 和 /system/lib下);这些目录都默认都是root的,为了在调试时能够访问,需要修改root权限为system。不然会产生如下的错误:run-as: Package 'com.example.tttt'
has corrupt installation
解决方案:修改权限。
-------
sss$ adb shell
$ su
# chmod 771 /data/data
# chown system.system /data/data
参考文章:http://stackoverflow.com/questions/4873124/android-native-debug-ndk-gdb-on-htc-desire-run-as-flaw
=============
bug B)没有调试信息的问题
=============
需要在编译阶段,在ndk-build命令上加参数“NDK_DEBUG=1”
错误消息为:Verify if the application was built with NDK_DEBUG=1
具体为:打开工程的properties,修改如下图(去掉Use Default build command,在build Command中加入相关参数):
参考文章:http://tools.android.com/recent/usingthendkplugin
=============
bug C)配置远程调试--server端
=============
就是使用系统的脚本进行,命令为:
ndk-gdb--verbose --force --start --project <project/dir> --adb=/Applications/adt-bundle-mac/sdk/platform-tools/adb
建立Eclipse工具,如下图所示:
=============
bug D)配置远程调试--client端
=============
在配置client端时,有5个变量要提供;项目名称,gdb的实际位置,本地server的端口号;还有两个是运行ndk-adb进行调试准备阶段的产物(请参考bug A中的描述,分别为:gdb.setup, app_process; 因为client端只需要跟本地的server通讯,需要把gdb.setup拷贝一份,并把最后一行“target remote :5039”去掉。
具体请参考文章结尾的参考资料。
图例如下:
==============
关于对手机的root
==============
最后关于手机刷机的技术,HTC G7需要用到的软件为: unrevoked v3.2.0.92_0.93(需要跟手机的nboot匹配)。
具体请参考http://unrevoked.com/rootwiki/doku.php/public/windows_hboot_driver_install
具体请参考 NOTE:HTC刷机
关于Eclipse中配置JNI开发环境,请参考NOTE: NDK在Eclipse中的集成开发
》》参考资料
配置NDK环境:http://www.eclipse.org/sequoyah/documentation/native_debug.php
书籍:《Android NDK Beginner's Guide》的最后一章: Chapter11 Debugging and Troubleshooting
分享到:
相关推荐
android-sdk-NDK21.0.rar
android-ndk(android-ndk-r26b-windows.zip)适用于Windows系统
android-ndk(android-ndk-r25b-darwin.zip)适用于macOS系统
android-sdk-NDK18.1.5063045.rar
android-sdk-NDK16.1.4479499.rar
android-sdk-NDK19.2.rar
android-sdk-NDK20.1.rar
Android C++高级编程----使用NDK.zip ) ,android的ndk开发,高级进阶学看看学习些新的高深的东西,不能故步自封
android-sdk-NDK20.0.rar
AndroidNDK--ndk1.5--开发
android-ndk(android-ndk-r25b-windows.zip)适用于Windows系统
android-ndk-r23-windows 安卓环境下载
其次对Android中的基础UI和高级UI的开发技巧进行了全面、透彻的讲解,接着对NDK的各个知识点进行了深入的剖析,并结合源码对其原理进行深入的分析。最后结合两大案例,让读者掌握企业中NDK开发的相关流程,以及在...
android-sdk-NDK17.2.4988734.rar
此存储库已弃用-这里是bugsnag android ndk的新家
android-ndk(android-ndk-r25b-linux.zip)适用于Linux系统
android-ndk(android-ndk-r23b-windows.zip)适用于Windows系统
arm平台下使用ndk工具交叉编译python,用于android系统;android-arm平台ndk交叉编译python
《移动开发经典丛书:Android C++高级编程:使用NDK》提供了移植、开发以及利用Android平台上的C++和其他原生代码所需要的知识和技能,以便于运行图形化的高级应用和更复杂的原生应用。 内容简介 Android是移动...
mac--ndk配置