参考 https://developer.android.com/ndk/index.html

 

配置

下载android-ndk-r10d-linux-x86_64.bin  ,运行自解压。

~/.bashrc中加入

export ANDROID_NDK=/home/james/android/android-ndk-r10d
export PATH=$ANDROID_NDK:$PATH

 

配置eclipse

Window > Preferences> android

选择NDK. 路径

 https://developer.android.com/ndk/guides/setup.html

测试编译是否成功

命令行:

cd android-ndk-r10d/samples/hello-jni  &&  ndk-build

或是

ndk-build  -C android/android-ndk-r10d/samples/hello-jni

eclipse中:

import_> android –> existing android code into workspace 才可以。

builder添加 newbuiler,参照下文 《Eclipse自动编译NDK/JNI的三种方法》 中的第二种方法

 

自己编写:

参考learning android 第15章 ndk开发

和书中不同,要cd到 bin/classes目录中,执行

javah -jni com.marakana.FibLib

创建相应的JNI头文件

 

两种注册jni的方法:静态注册(java代码生成class,javah生成头文件)、动态注册(JNINativeMethod, JNI_OnLoad注册)

深入学习参考: 《深入理解android 卷一》第2章 深入理解jni  

 

【Android】Eclipse自动编译NDK/JNI的三种方法

SkySeraph Sep. 18th  2014

Email:skyseraph00@163.com


一、Eclipse关联cygwin

1. 工程->右击选择Properties->选择Builders,在Builders中选择New创建一个Program

2. 参数配置


二、Eclipse关联ndk-build(自建Builder方法)

1. Project->Properties->Builders->New,新建一个Builder

2. 参数配置

2.1 Main

①Name:NDK_Builder

②Location为ndk-build.cmd的路径,可以如图所示绝对路径,也可以以环境变量的形式,即 ${ANDROID_NDK}\ndk-build.cmd,其中ANDROID_NDK为配置的NDK路径

③Working Directory,为当前的工程下。

这里的${}的表达是使用了EC的环境变量,可以使用Variables...按钮找到一些3 EC的环境变量。

对于Linux上的配置,和这里的配置一样,只是把Location的地址改为ndk-build即可

2.2 Refresh

2.3 Build Options

注:Linux环境下只需修改ndk-build.cmd为ndk-build即可


三、Eclipse关联ndk-build(利用CDT的方法)

1. 前期准备:Eclipse环境+Android环境+Eclipse C/C++环境

2. 编写Android JAVA/JNI代码,可参考OpenCV实例1

3. 将Android项目转换为C/C++项目(使其具备C++属性),如下图,New -> Other -> C/C++ -> Convert to a C/C++ Project.

4. 配置NDK编译路径,Project->Properties,如下图,其中Build-Command中ANDROID_NDK为环境变量中配置的Android-NDK路径;Build-Directory为当前工程目录

5. 配置工程属性,Project->Properties,如下图,本例以OpenCV为例,其中CNU C和GNU C++中配置的是OpenCV的链接库


========

ubuntu ndk 开发的更多相关文章

  1. Android之NDK开发(转)

    Android之NDK开发 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第 ...

  2. Android之NDK开发

    转自:http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html 一.NDK产生的背景 Android平台从诞生起,就已经支持C ...

  3. ndk开发教程以及问题解决方案

    一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语 ...

  4. 【转】Android之NDK开发

    原文网址:http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html 一.NDK产生的背景 Android平台从诞生起,就已经支 ...

  5. 在Android studio中进行NDK开发

     在Android studio中进行NDK开发  分类: Android平台 软硬件环境 ubuntu kylin 14.04 红米note增强版 Android studio 0.8.6 ndk ...

  6. Android流媒体开发之路二:NDK开发Android端RTMP直播推流程序

    NDK开发Android端RTMP直播推流程序 经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行 ...

  7. 跟我学Android NDK开发(一)

    Android NDK 开发跟其它开发一样,首先需要配置好开发环境,本文以 Ubuntu系统为例介绍如何进行 Android NDK 开发环境的配置. 1. 简介 什么是 Android NDK 呢? ...

  8. Android JNI和NDK学习(01)--搭建NDK开发环境(转)

    本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3095013.html 本文主要介绍“JNI”.“Android NDK”以及 ...

  9. Android之NDK开发(转载)

    http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C+ ...

随机推荐

  1. 执行RF设置顶级测试套件的名称

    场景1:通过pybot进行单个output文件情况下设置 -N --name name 设置顶级测试套件的名称.名称中的下划线将转换为空格. 默认名称为执行的数据源的名称. 场景2:通过rebot进行 ...

  2. Redis 集群配置

    Redis 集群介绍: (1) 为什么要使用集群:如果数据量很大,单台机器会存在存储空间不够用 .查询速度慢 .负载高等问题,部署集群就是为了解决这些问题(2) Redis 集群架构如下,采用无中心结 ...

  3. ClamAV病毒软件的安装和使用

    ClamAV 杀毒是Linux平台最受欢迎的杀毒软件,ClamAV属于免费开源产品,支持多种平台,如:Linux/Unix.MAC OS X.Windows.OpenVMS.ClamAV是基于病毒扫描 ...

  4. Elastic Search 5.4.3 java api 入门

    首先介绍一点,es的版本从之前的2.x跳跃到5.x,很多插件要保持一致,不然会产生很多版本不兼容的问题. 首先看一个demo先熟悉一下, 具体代码在git服务器上: https://github.co ...

  5. iOS富文本组件的实现—DTCoreText源码解析 渲染篇

    本文转载至 http://blog.cnbang.net/tech/2729/ 上一篇介绍了DTCoreText怎样把HTML+CSS解析转换成NSAttributeString,本篇接着看看怎样把N ...

  6. SVN的基本原理 配置自动更新WEB服务器

    SVN的基本原理 配置自动更新WEB服务器 最近有个小项目,需要用SVN来进行版本控制.项目组的同僚有8个人,大家都在本地开发,然后提交到服务器——服务器就是其中一台机器.专门安排一个测试员来进行项目 ...

  7. VMware Workstation 14 黑屏的一个解决办法

    近期很多朋友遇到了VMware Workstation 14开启或新建虚拟机后黑屏的现象,同时发现如果挂起虚拟机,可以显示挂起前最后的画面.显然,虚拟机核心是正常工作的,只是“显示”方面出现了问题. ...

  8. 【github】添加 ssh 秘钥

    1 生成秘钥 打开shell 备注: 123@example.com 为邮箱地址 ssh-keygen -t rsa -C "123@example.com" 此处选Y ,其他都是 ...

  9. Twitter的SnowFlake分布式id生成算法

    二进制相关知识回顾 1.所有的数据都是以二进制的形式存储在硬盘上.对于一个字节的8位到底是什么类型 计算机是如何分辨的呢? 其实计算机并不负责判断数据类型,数据类型是程序告诉计算机该如何解释内存块. ...

  10. 查看iOS沙盒(SanBox)文件

    转载:http://www.2cto.com/kf/201211/169212.html 每一个iOS程序都一个自己的文件系统,这个文件系统叫应用程序沙盒(SanBox),它存放这代码以外的文件,其他 ...