目前使用的只能是ndk下的ndk-gdb,使用介绍略NDK实现的Android应用程序分析 代码分析
主要的源码文件为
android_native_app_glue.h
android_native_app_glue.c
位于$NDK_HOME\sources\android\native_app_glue
以下为摘录
以上两个源码文件的功能为
实现一个显存内存区的绘图内存,并实现各种窗口基本事件(关闭,退出,点击,坐标等)的处理函数,并实现了内存的多线程保护机制.
主activey即main.c
需开发人员实现处理事件的函数回调实现和消息循环体.
通过sample程序的源码来看,利用NDK实现的C++窗口应用程序具有以下特点
v 允许程序员直接操作显存绘图区,框架实现内存区的线程保护
v 框架实现主体消息的处理,程序员必须要实现自已的消息处理函数!
v 不能使用framework的各种自定义组件,但可以通过jni调用组件
v 必须依赖于android系统库功能(实现事件处理,与底层硬件的抽象隔离),即Android app framework
通过以上的命令下将android的ndk程序部署到android上,我们仍可以发现,ndk开发的UI应用程序仍然不算是纯的C++的本地代码,在某些层面仍需要与jni打交道,并且必须要靠manifest文件将其与anroid系统连接起来!