android jni开发初

为了研究openCv而学习jni,现在记录下环境配置流程,备忘。

使用最新ndk,直接抛弃cygwin,以前做Android的项目要用到NDK就必须要下载NDK,下载安装Cygwin(模拟Linux环境用的),下载CDT(Eclipse C/C++开发插件),还要配置编译器,环境变量,特别麻烦,新版就不需要了。

 (1)、在ndk r8版本的就不需要要通过Cygwin等的软件进行进行编译了,ecplise自带了这个功能。所以我们只要配置了ndk以后然后在项目中就能进行使用了

打开Eclipse,点Window->Preferences->Android->NDK,设置NDK路径,例如Shamoo的是E:\android-ndk-r9c

 

添加环境变量:在C/C++ Build中点击Environment,点Add...添加环境变量NDKROOT,值为NDK的根目录

然后就可以使用ndk来进行交叉编译了。

我们在自己创建的项目根目录下边创建一个jni文件夹,然后项目右键打开

然后点击new

选择program,点击ok

Location选择ndk目录下的ndk-build.cmd,

working directory:是你的项目

然后修改refresh成西BIn

然后修改Build options

点击Specify Resources,选择你项目下边的jni文件夹,然后点击ok完成就可以自动编译了。

这样就可以开始jni的编写了 。

创建一个

package com.example.jni;

public class TestJNI {
public native boolean init();
public native int add(int x , int y);
public native void destory();
}

然后在、
路径下边找到TestJNI.class 文件。通过命令行编译成(.h)文件

这是结果

然后就是书写.cpp代码。

配置mk然后就是在代码里边调用

最后Demo:http://download.csdn.net/detail/u012808234/9372560

时间: 2024-12-11 01:54:55

android jni开发初的相关文章

Ubuntu 使用Jni开发实例详解_java

1. 编写Java文件,在其中声明native方法, 并通过static 语句块加载动态链接库,示例Prompt.java代码如下: class Prompt { private native String getLine(String prompt); public static void main(String args[]) { Prompt p = new Prompt(); String input = p.getLine("Type a line: "); System.o

Android Studio的JNI开发快餐教程

Android Studio的JNI开发快餐教程 从eclipse换到Android Studio之后,原来的NDK集成已经不能用了.同时,AndroidStudio也是在快速迭代进步中,不仅支持内置的ndk支持插件,还有支持外部编译系统的plugin. 而且这还是在实验中的结果,在不久的将来,还可能有更新的变化.不过,万变不离其宗,我们打好基础,形式上的东西跟着Android Studio变就好. 旧式的NDK支持 首先说明,既然是Android Studio认为它已经过时了,所以我们需要在g

jni开发 android 应用效率

问题描述 jni开发 android 应用效率 需解决c++同java数据共享问题. 问题:用jni 给java 返回 大量 c++代码获取的数据时,效率特别低,请问用什么办法可以解决? 解决方案 可能是你C++代码指针释放空间的问题

Android Studio jni开发入门——看我就够了!

本文记录一下Android Studio 进行jni开发的基础配置以及入门教程,想当初使用eclipse配置ndk环境都难,现在基本都向AS转型,特此给需要帮助的新手村的同学们少走弯路 一.环境配置 主要需要配置的就是NDK(Native Development Kit),现在Android studio很便利,可以一键下载: file → setting → 按截图找到如下路径 → 选择NDK → 确定应用下载  安装完成以后就可以开撸了 二.jni hello world! 1. 新建一个项

Android应用开发中对Bitmap的内存优化

在Android应用里,最耗费内存的就是图片资源.而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常.所以,对于图片的内存优化,是Android应用开发中比较重要的内容. 1) 要及时回收Bitmap的内存 Bitmap类有一个方法recycle(),从方法名可以看出意思是回收.这里就有疑问了,Android系统有自己的垃圾回收机制,可以不定期的回收掉不使用的内存空间,当然也包括Bitmap的空间.那为什么还需

《Android应用开发从入门到精通》——第1章,第1.2节Android架构解析

1.2 Android架构解析 Android应用开发从入门到精通 Android系统的底层建立在Linux系统之上,该平台采用一种称为软件叠层(Software Stack)的方式进行构建.这种软件叠层结构使得层与层之间相互分离,明确各层的分工.这种分工是软件工程中常说的低耦合高内聚的设计概念. 1.2.1 Android系统架构图 Android作为一个移动设备的平台,其软件层次结构包括了内核层.中间件和应用程序.下面看看Android的系统架构图,如图1.2所示. 如图1.2所示,Andr

如何解决android NDK开发中的NDK_PROJECT_PATH

问题描述 如何解决android NDK开发中的NDK_PROJECT_PATH 在编译的过程中会报出的错误,导致程序编译失败Android NDK: Could not find application project directory ! Android NDK: Please define the NDK_PROJECT_PATH variable to point to it. /Users/****/Downloads/android-ndk-r9c/build/core/build

Android NDK开发详细介绍_Android

Android之NDK开发  一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言.但这并不等同于"第三方应用只能使用Java".在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,"Java+C"

Android应用开发架构概述

通常一个App的成长过程都是这样的: 第一阶:先用最少的成本和时间快速把东西做出来. 第二阶段:积累一定用户量之后在小步快跑的迭代功能. 第三阶段:性能和体验上逐步求精. 我发现好多项目在第二阶段和第三阶段耗费了好多本来不应该浪费的人力成本.时间成本.究其原因就是因为前期忽略了合理的架构,我甚至经历过因为前期的设计不合理导致后期技术债务太多项目濒临死掉.整个项目组全员换掉重造锅炉的境地.所以,我们为什么不既能使用最简洁的方式实现功又能要保证后期灵活的扩展能力呢?下面是本人最近项目实践的一些整理,