初识 Android Native Development Kit (NDK)
来源:互联网 发布:北京农大网络教育 编辑:程序博客网 时间:2024/05/16 12:36
Android开发者社区对JNI的呼声一直很高,这次Google发布NDK可以说是顺应民意。NDK和SDK一样提供了Linux、Windows、Mac三大开发平台的版本。
在Linux上,尤其是Debian/Ubuntu上进行安装,非常顺利,不会有什么问题。但是在Windows平台进行安装,就不那么轻松了,根据Google的建议,我们需要安装cygwin,而且特别提醒一定在安装时,注意把make和gcc包含进去。
For Windows, a recent release of Cygwin, including both the gmake and gcc packages, is required.
尽管如此,首次安装时,总是会遇到这样和那样的问题。由于没有经验,第一次安装,统统采用默认设置,由此遇到的第一个问题:
your C compiler doesn't seem to work:
gcc.exe: /temp/android-4068-test.c: No such file or directory
gcc.exe: no input files
根据错误信息,可以推定应该是安装cygwin时没有进行正确的设置,一番Google之后,找到答案,原来在安装时,要选择上make和gcc的 包选项,–这就是不看install.txt的后果,不过cygwin的安装界面实在让人看着别扭,我根本没有留意到可以选择包进行安装。
为了以防万一,遗漏掉依赖的包,干脆把Devel包从default变为install,这样这个包下所有内容一律安装。
安装之后,再尝试执行build/host-setup.sh,仍旧看到问题:
ERROR:
It seems you do not have the correct arm-eabi-4.2.1 toolchain binaries.
Please go to the official Android NDK web site and download the appropriate NDK package for your platform (windows).
See http://developer.android.com/sdk/index.html
又一番Google之后,在android-ndk的Google group上找到了答案:
When I explicit entered the following in my Cygwin shell environment
in file .bashrc it worked:
export ANDROID_NDK_ROOT=C:/Users/jonas/Android/android-ndk-1.5_r1
安装好NDK之后,最好花上几分钟读一读/docs目录下文档。特别是要完整阅读OVERVIEW.TXT,读完以后你就可以明白NDK的初衷以及如何使用它了。
- 把native source放在/sources/,当然也可以建立链接。
- 创建/sources//Android.mk,描述native sources。
- 创建/apps//Application.mk,描述Android applicaiton和navite sources。
- 在NDK路径的最顶极目录里执行make命令来build native code : make APP
- 最后,使用SDK工具,以通常的方式编译应用,SDK的build工具会将共享库打包进apk的文件。
NDK包含了两个示例应用,指明应该如何在你的应用使用native code,这里挑个简单的来看,hello-jni,一个简单的应用,从native方法中获取字符串,然后显示在应用的UI上。—这个native方法是在共享库实现。
一旦安装完NDK之后,就可以使用这些命令,从NDK的根目录下build共享库了:make APP=hello-jni 这将会编译/sources/samples/hello-jni/hello-jni.c,并输出共享库到/apps/hello-jni /project/libs/armeabi/libhello-jni.so.由于实际工作中,我们很少会把工程放在/apps下,因此下面将尝试如何 将应用和ndk分开来放置。
拷贝/apps/hello-jni/project,重命名为my-hello-jni,然后使用”Import from Existing Source”,创建名称为my-hello-jni的android工程。在/apps下新建文件夹my-hello-jni,并从hello-jni 下拷贝Application.mk到新文件夹下,打开该文件,修改APP_PROJECT_PATH为正确的路径,注意这里的路径应该是cygwin下 的路径,例如我的路径是:/cygdrive/e/workspace/my-hello-jni。
完成之后,到ndk的根路径下,执行make APP=my-hello-jni,然后即可成功看到结果:
Android NDK: Building for application 'my-hello-jni'
Compile thumb: hello-jni <= sources/samples/hello-jni/hello-jni.c
SharedLibrary: libhello-jni.so
Install : libhello-jni.so => /cygdrive/e/worskspace/my-hello-jni/libs/armeabi
- 初识 Android Native Development Kit (NDK)
- Android Native Development Kit (NDK)
- Android NDK 环境搭建(Native Development Kit )
- Android NDK: Native Development Kit 入坑篇
- NDK全称 Native Development Kit
- NDK全称 Native Development Kit
- NDK(Native Development Kit)文档:入口
- Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit
- Android高级篇-NDK(Native Development Kit)之坏境搭建【一】
- Android高级篇-NDK(Native Development Kit)之坏境搭建【二】
- Android JNI 开发 Demo by NDK (native develop kit)
- Android C native development using the NDK under Windows
- Android Open Accessory Development Kit
- Program for Android in C/C++ with the Native Development Kit (if you dare)
- Android Native Development Kit Cookbook 中 第二章 Manipulating strings in JNI代码错误问题
- Android native development tool
- android native c development
- Android NDK Development ---- Android 4.4
- FCKeditor添加新的功能
- Webdev.webserver.exe出现问题需要关闭
- 关于读取当前屏幕和光标信息的语句和方法
- 广告发布系统beta版本已经上线使用,待测试完成后,将会直接发布1.0版本
- pdf文件以2进制放在数据库中,然后再读出来
- 初识 Android Native Development Kit (NDK)
- Oracle常用函数
- 让人力资源管理成本成为企业利润驱动力
- 除非指定DeleteMethold,否则 ObjectDataSource“odsNetwork”不支持删除
- Download Android 1.5 NDK, Release 1
- SolpartMenu 与 UpdatePanel 异步冲突的问题
- 电阻式触摸屏的基本结构和驱动原理
- 使用XML保存程序需要的配置信息
- cvsnt 配置 cvsnt2.5.04配置 cvsnt服务器端配置