使用NDK进行开发android
在eclips中配置ndk路径
在eclipse中点击菜单栏window-perferences,配置ndk的路径。
在工程中添加native lib
新建一个空白的android工程,在根目录上点击右键adnroid tools - add native support...
在弹出的对话框中输入要新建的lib的名称,点击finish,在工程目录下会多出一个jni文件夹,里面有一个空白的cpp文件和一个android.mk文件
android.mk文件的内容是
local_path := $(call my-dir)
include $(clear_vars)
local_module := testjni
local_src_files := testjni.cpp
include $(build_shared_library)
testjni就是要加载的lib的名称,local_src_files 是资源文件的路径。
hello jni
mainactivity.java代码如下:
代码如下:
testjni.cpp代码如下:
代码如下:
直接运行程序,可以在console窗口中看到ndk build的输出
有一点要注意:由于我使用的是x86的android虚拟机来运行,所有使用的是x86的编译器。制定编译器的方法是在jni目录新建一个application.mk的文件,输入以下内容
#app_abi := armeabi
app_abi := x86
#app_abi := armeabi armeabi-v7a x86 mips mips-r2 mips-r2-sf
#app_abi := all
app_stl := stlport_static
如果是普通arm处理器的android手机,使用app_abi := armeabi,如果是x86处理器的,使用app_abi := x86,等等。
如果app_abi := all,会编译所有指令的so。
运行结果如下:
至于c/c++的编译是怎么实现的,我们可以查看一下工程的properties
在builders里面有多了两项,一个是cdt builder,一个是scanner configuration builder。
现有的工程添加builder
如果工程里面已经有jni目录了,但是没有配置c/c++的编译器,高手们可以自己添加builder,对于我这种爱投机取巧的小菜鸟,工程右键菜单,新添加一个空白的so,然后再删除,cdt builder和scanner configuration builder就出来了。
推荐阅读
-
Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题
-
Android开发教程之Fragment定义、创建与使用方法详解【包含Activity通讯,事务执行等】
-
Node.js使用supervisor进行开发中调试的方法
-
解决Fedora14下eclipse进行android开发,ibus提示没有输入窗口的方法详解
-
Android编程开发之打开文件的Intent及使用方法
-
python使用PyCharm进行远程开发和调试
-
android开发教程之ubuntu使用adb连接小米2的步骤和adb调试方法
-
android开发教程之android的handler使用方法
-
android开发教程之获取使用当前api的应用程序名称
-
Android开发——Kotlin开发APP使用笔记