程序员日志:Android NDK配置

Android NDK是什么,  NDK:Native Develpment Kit.

众所周知,Android是基于Linux的支持,自然对C、C++提供原生的支持,Android的开发也是基于Java的语言。应用程序的运行环境主要是Dalvik虚拟机。虽然开发语言是Java但是我们总可以通过各种方式用C等语言开发。

至于用NDK开发的流程,请阅读NDK附带的文档。

 

关于具体的信息了解,请访问Android开发网阅读文档了解基本的信息。

点这里了解基本信息(需要设置代理访问或者翻墙)

建议通读上面链接的全文(英文版),很多东西按照上面介绍的步骤就可以完全的成功。一些基本的命令和操作也在里面可以看到,相信看过以后会对你有启发。

在其中有这么一句话:

Please note that the NDK does not enable you to develop native-only applications. Android’s primary runtime remains the Dalvik virtual machine

在NDK文档中也有这样的描述:

The NDK is *not* a good way to write generic native code that runs on Android devices. In particular, your applications should still be written in the Java programming language, handle Android system events appropriately to avoid the "Application Not Responding" dialog or deal with the Android application
life-cycle.

也就是说,Android的Application不能完全用C或者C++开发,其运行环境主要是Dalvik的JVM,而且NDK没有关于组件声明周期和事件处理的东西。

其实据我的了解和理解,NDK的原理大体就是Java中声明接口然后通过JNI(Java Native Interface )调用NDK开发的C和C++代码,文档中也提到,A good understanding of JNI is highly recommended。native code被静态编译为.so的模块,然后加载到.apk中,然后安装到Android中运行。这些信息都可以通过google关键字Android NDK和阅读NDK的文档获取,形成你自己的理解。

当然按照本文的介绍的步骤也可以配置,但还是建议读一下。

 

第一步,下载Android 的SDK,注意,SDK要1.5以后的版本(链接中有提到,原因在NDK的文档里有介绍)。

当然,配置好的Eclipse+ADT也是需要的。

第二步,下载Android NDK。

下载完成后即解压到适当的目录。设置Android SDK的环境变量。NDK目前只需要解压到适当目录即可。

解压后可大致浏览下目录的结构。当然,在上面的链接中,有关于其目录结构的介绍。

第三步,安装Cygwin(www.cygwin.com)。最新版本1.7,我用的1.6的版本,也会我建议的版本。Cygwin是什么,有关于一些交叉编译的知识请自己通过搜索引擎了解。

下载后运行Setup,点击next,选择Install from Internet:

然后下一步,选择适当的目录,

下一步,再选择相应的包的下载存放位置,默认,

下一步,网络配置,默认,

下一步,会搜索站点,下载站点选择台湾的,速度比较快,

等待其更新软件的列表后,就是比较关键的一步。

上面链接的文档和NDK附带文档中的INSTALL.TXT中也提到了,我们需要以下的工具:

1. GNU make

2. bash shell

3. Nawk或者GNU awk

所以在这里我们安装上面所需要的组件,找到Devel,并点击后面的循环箭头,将其改为Install

Devel中就包含了make及gcc等组件,可以点开前面的+号浏览。

然后找到Shell 选项,改为install

然后在上面的搜索框中搜索awk,找到两条,其默认已经包含了,这里确认一下,改为install。

next,开始安装。

安装完成后,找到Cygwin的安装目录下<cygwin>/home/<你的用户名>/.bash_profile文件,UltraEdit打开,据说用记事本等的打开也会出问题。不要转换格式,否则出问题。最后一行,添加上

ANDROID_NDK_ROOT=/cygdrive/c/android-ndk-r3
export ANDROID_NDK_ROOT

其中的c/android-ndk-r3是我的安装的目录。改为你的。

保存退出。

桌面或者开始菜单打开Cygwin的bash shell,

到这步之前,请确保你了解什么是Cygwin以及Cygwin是干什么的。

进入NDK的目录,

cd $ANDROID_NDK_ROOT

下面就是配置Android的NDK了

运行一下命令:

build/host-setup.sh

注意无空格。运行后会提示安装完毕。

到此,NDK的配置就完毕了。

提示中有着么一句话:如果你不知道接下来干什么,请阅读docs目录下的OVERVIEW.txt。这个文档是非常有用,建议细读。

接下来是如何运行NDK中自带的samples。

首先还是在Cygwin的bash shell中:

cd $ANDROID_NDK_ROOT

make APP=hello-jni

此命令会在<ndk-dir>/apps/apps/hello-jni/project/libs/armeabi下生成.so文件,其实这个.so文件就相当于Windows下的dll。

然后,打开你配置好的Eclipse+ADT的环境。

新建Android Project。

新建选项中,选择create Project from existing source, 目录选择NDK下的hello-jni目录下的Project文件夹

然后编译运行,看到从.c文件返回的hello from JNI字符串:

 

已标记关键词 清除标记
相关推荐
程序员的必经之路! 【限时优惠】 现在下单,还享四重好礼: 1、教学课件免费下载 2、课程案例代码免费下载 3、专属VIP学员群免费答疑 4、下单还送800元编程大礼包 【超实用课程内容】  根据《2019-2020年中国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能!   套餐中一共包含2门MySQL数据库必学的核心课程(共98课时)   课程1:《MySQL数据库从入门到实战应用》   课程2:《高性能MySQL实战课》   【哪些人适合学习这门课程?】  1)平时只接触了语言基础,并未学习任何数据库知识的人;  2)对MySQL掌握程度薄弱的人,课程可以让你更好发挥MySQL最佳性能; 3)想修炼更好的MySQL内功,工作中遇到高并发场景可以游刃有余; 4)被面试官打破沙锅问到底的问题问到怀疑人生的应聘者。 【课程主要讲哪些内容?】 课程一:《MySQL数据库从入门到实战应用》 主要从基础篇,SQL语言篇、MySQL进阶篇三个角度展开讲解,帮助大家更加高效的管理MySQL数据库。 课程二:《高性能MySQL实战课》主要从高可用篇、MySQL8.0新特性篇,性能优化篇,面试篇四个角度展开讲解,帮助大家发挥MySQL的最佳性能的优化方法,掌握如何处理海量业务数据和高并发请求 【你能收获到什么?】  1.基础再提高,针对MySQL核心知识点学透,用对; 2.能力再提高,日常工作中的代码换新貌,不怕问题; 3.面试再加分,巴不得面试官打破沙锅问到底,竞争力MAX。 【课程如何观看?】  1、登录CSDN学院 APP 在我的课程中进行学习; 2、移动端:CSDN 学院APP(注意不是CSDN APP哦)  本课程为录播课,课程永久有效观看时长 【资料开放】 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化。  下载方式:电脑登录课程观看页面,点击右侧课件,可进行课程资料的打包下载。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页