初识NDK

今天看了nate的ndk视频,随手记录一下,方便自己以后好查找。

1. 下载NDK;

2. 解压到自定义的目录下。

3. 配置环境变量,因为需要ndk-build这个命令来构建。

4. 定义一个native方法

5. 新建jni文件夹

6. 生成jni头文件。

命令行下切换到项目的根目录,执行javah命令。

命令的文本是:E:\WorkSpace\eclipse-android\MyNDKDemo>javah -classpath bin/classes;D:\IDE\AndroidSdk\platforms\android-22\android.jar;D:\IDE\AndroidSdk\extras\android\support\

v7\appcompat\libs\android-support-v4.jar;D:\IDE\AndroidSdk\extras\android\suppor

t\v7\appcompat\libs\android-support-v7-appcompat.jar -d jni com.example.myndkdem

o.MainActivity

注:红色部分为sdk中的Android包,按自己的情况指定即可。绿色包名加类名。

执行成功之后,会生成头文件。

从NDK的sample中任意一个项目jni目录下拷贝一个android.mk文件到自己项目的jni中。

7. 编写C文件

在C文件中实现头文件的函数。

先将头文件include。

8. 在java文件中调用C函数。

需要将加载lib的方法放在static代码块中,library的名字就是在android.mk文件中指定的名字。

9. 使用ndk-build命令编译

成功后会在libs下面生成对应的so文件。

操作顺序就是这样。

配置eclipse

因为以上很多的操作都需要命令,所以可以再eclipse中进行配置,省得每次都要执行命令行。

Run->external tools-> external tools configuration

通过上面两个配置,可以省去很多命令。

添加C++的代码提示

右击给project add native library,然后右击项目的属性,在C++选项出添加NDK目录下,android-ndk-r9d\platforms\android-19\arch-arm\usr\include,将include包含进去。

时间: 2024-08-06 03:42:53

初识NDK的相关文章

Android NDK开发初识

神秘的Android NDK开发往往众多程序员感到兴奋,但又不知它为何物,由于近期开发应用时,为了是开发的.apk文件不被他人解读(反编译),查阅了很多资料,其中有提到使用NDK开发,怀着好奇的心理,通过在线视频教育网站,我初步了解了NDK的神秘面纱,好东西自然要分享,接下来我们就一起来认识一下Android NDK开发. 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三

初识Android NDK

本文介绍Windows环境下搭建Android NDK开发环境,并创建一个简单的使用Native代码的Android Application. 一.环境搭建 二.JNI函数绑定 三.例子 一.环境搭建 1. 操作系统:Windows7 64位 2. 安装Java,最新的JDK8貌似还不支持,敢于折腾的同学可以试试,下载JDK7安装即可,别忘了添加JDK的bin目录到PATH环境变量.http://www.oracle.com/technetwork/java/javase/downloads/j

初识flutter

初识flutterflutter是Google开发的一套全新的跨平台开源框架.目前flutter已经发布很多很多版本,正在逐步的完善,它的目标其实是和react native一样的,就是同一份代码可以同时运行在Android和iOS两个系统上.如果你同时有react native和flutter开发经验,你就会发现flutter的很多设计理念和react native是一样的,react native基于组件开发页面,flutter则是widget,他们都有自己的生命周期,他们都是自己的属性或者

初识Python,望君多多关照

在学习Python之前,我们接触过数据结构和网页制作.前者让我们学习如何把C语言运用的更加整齐规范,而后者让我们亲身学习如何运用所学,制作一个静态网页.通过这些课程的学习,让我对C语言产生了比较大的压力,以至于对编程.对这学期的Python课程都有一种如临大敌的感觉. 但是真的学习了这门课程,体会了编码过程中的一些固定运用方法和套路之后,也许过程中对这门课程隐隐约约产生了一点点朦胧的感觉,仿佛他也并没有想象中的那么困难,起码现在的学习让我认为,他可能没有C语言那么繁琐和麻烦.当然,以一个初学者的

哪位大兄弟有用 cMake 开发Android ndk的

一直用 Android studio 开发ndk,但是gradle支持的不是很好,只有experimental 版本支持 配置各种蛋疼.主要每次新建一个module都要修改配置半天.之前也看到过google 开发文档有提到 cmake 但是一直没用.哪位大兄弟用过,说下经验 哪位大兄弟有用 cMake 开发Android ndk的 >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007205830/哪位

初识数组排序!!!!

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>初识数组排序</title> <!--调试成功--> <style type="text/css"> *{ padding:0; margin: 0; } li,ul{ list-style: none; } #p

初识操作系统和linux

初识操作系统和linux 1.计算机系统由硬件系统和软件系统两大部分组成:是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动.高速地处理,然后把处理结果输出的现代化智能电子设备. 2.世界上第一台计算机是1946年诞生在美国宾州大学. 3.冯·诺依曼体系结构:1946年数学家冯·诺依曼于提出计算机硬件系统由运算器.控制器.存储器.输入设备.输出设备.摩根定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍.现在计算机技术进本很难遵

Delphi使用android的NDK是通过JNI接口,封装好了,不用自己写本地代码,直接调用

一.Android平台编程方式:      1.基于Android SDK进行开发的第三方应用都必须使用Java语言(Android的SDK基于Java实现)      2.自从ndk r5发布以后,已经允许完全用C/C++ 来开发应用或者游戏,而不再需要编写任何Java 的代码   Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序. 二.跨平台移动开发   Delphi使用android的NDK是通过JNI接口,封装好了,不用自己

JAVA 初识类加载机制 第13节

JAVA 初识类加载机制 第13节 从这章开始,我们就进入虚拟机类加载机制的学习了.那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class文件,再由虚拟机解释给当前的操作系统去执行.这些过程都是我们看不见的,我们能看见的也就是一个.class文件.既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文件的过程就是类加载了. 所以,总结来说就是:虚拟机将.class文件从磁盘或者其他地