NDK

NDK使用OpenCV2.4.2本地代码

泪湿孤枕 提交于 2019-11-30 05:58:38
本文讲述Android NDK中使用OpenCV2.4.2的详细过程(不使用OpenCV的java封装) 1. 前期准备: a. 下载 opencv-android-sdk ,解压;(或者可以从OpenCV源代码自己编译,先设置ANDROID_NDK变量,然后使用cmake -DCMAKE_TOOLCHAIN_FILE=...,即可编译arm平台下的opencv库,生成的文件同下载的android-sdk是一样的) b. 配置好Android开发环境和NDK环境; 2. 开始整合: a. 新建android工程,声明native方法,生成头文件,创建cpp源文件: #include "com_tristan_first_demo_Util.h" #include <opencv2/opencv.hpp> #include <vector> using namespace std; using namespace cv; JNIEXPORT void JNICALL Java_com_tristan_first_demo_Util_test (JNIEnv *env, jclass object) { Mat image = imread( "/ sdcard /lena.jpg" ); if (!image.data) { return ; } Mat dest(image

Android NDK开发环境搭建

徘徊边缘 提交于 2019-11-30 04:52:53
/* http://my.oschina.net/lifj/blog/176916 */ 有人说,网上的环境配置一大堆,你还写做什么? 一来 ,是我再次复习的材料。 二来 ,网上有些地方说的不是很详细,我也是参考了好多资料,弄了半天才弄好环境。写下来,帮助后面的人省掉不必要的麻烦。下面进入正题。 作为一个2年的android攻城狮,今天才开始学习NDK的开发,太晚了。。毕竟是现用现学。学完还是写个博客记下来比较好,省的以后再忘记,又得重新来过。下面 正式进入正题(难道上面都是说着玩玩的? ) 。 能看到NDK开发的人,应该android最基本的开发环境(Eclipse + JDK + SDK + ADT)都已经OK了。如果您还没有弄好,麻烦移步其他博客(比如, http://jingyan.baidu.com/article/f0062228f0b18afbd2f0c871.html ),搭建完了之后再过来看。 NDK开发所需要的基本软件,除了Eclipse + JDK + SDK + ADT 之外,还 需要如下软件 : ·NDK 开发包。 这是谷歌用于开发NDK程序发布的官方包。 · Cygwin (也许有其他的软件,比如GNUStep ),用于在window上模拟linux开发环境的软件。我们主要用来make和编译C/C++文件。 ·CDT (C/C++ Development

【转】 Android开发手记一 NDK编程实例

有些话、适合烂在心里 提交于 2019-11-30 04:52:32
Android 开发手记一 ---- NDK 编程实例 在 Android 上,应用程序的开发,大部分基于 Java 语言来实现。要使用 c 或是 c++ 的程序或库,就需要使用 NDK 来实现。 NDK 是 Native Development Kit 的简称。它是一个工具集,集成了 Android 的交叉编译环境,并提供了一套比较方便的 Makefile ,可以帮助开发者快速开发 C 或是 C++ 的动态库,并自动的将 so 和 java 程序打包成 apk ,在 Android 上运行。 好,闲话少说,我们以一个简单的实例,来讲解 NDK 的应用。 一 开发环境的搭建 这一步虽然没什么技术含量,但是对于初学者,有一个很好的入门指导,还是很有帮助的。 1.1 Android SDK 的搭建 首先,要进行 Android 程序的开发, Android 的 SDK 是必须要安装的。当然, Java 环境也必不可少。我们先要安装 JDK 和 Eclipse ,这个可以选比较新的版本,因为 Android 新的 SDK 已经不支持旧版本了。 1.1.1 JDK 可以用 V5 或 V6 版本,下载地址 http://java.sun.com/javase/downloads/index.jsp 1.1.2 Eclipse 可以用版本 version 3.4 or 3.5 ,下载地址

Eclipse替代ndk-gdb断点调试Android NDK程序

可紊 提交于 2019-11-30 04:52:19
一 概述: Eclipse调试NDK程序的操作并不难,难的是环境的搭建。光是安装Eclipse就有不少问题,真是“大错不犯,小过不断”不胜期烦。在网上,已经有先行者记录下了Eclipse断点调试Android NDK程序的方法: 《Eclipse + ADT(包括NDK Plugin) + CDT 搭建Android NDK开发环境》 网址: http://blog.sina.com.cn/s/blog_48ed03c80101nhei.html 我遇到的情况与上文有些不同,上文开篇就说“Android应用程序的开发环境比较容易搭建”,但我在开发环境搭建时已经遇到问题了。光是Eclipse我就反复安装了三次。我遇到了很多上文没有提及的问题,可能是因为所在的平台不同的原因吧(我在MAC上搭的)。下面我将着重说明那些上文没有的内容。为求文章的连贯性,文本也会简要的提及一些上文已经有的重要内容,不过只作蜻蜓点水式的介绍,所以我也建议大家看看上文。 二 功能要求描述 *(Mac)OS X Yosemite 版本 10.10.2 * Android SDK + android-ndk-r10e + ant + Eclipse + CDT + ADT 可以在Eclipse编写及调试NDK程序(断点调试)。效果图如下: 三 实现方法 3.1 环境搭建遇到问题的解决方法 3.1.1 Android

Android上传文件到PC的简单实例

别等时光非礼了梦想. 提交于 2019-11-30 03:15:12
最近一直在完成个任务,有关Android手机文件传输的,现在先做了一步,实现了手机可以上传文件到pc端。 先简单介绍一下吧,架设在电脑上的pc端,运行在Android手机上的客户端,pc端用java语言编写,客户端这边是结合c和 java的JNI来编写的。为什么这么特殊呢~呵呵 ,完全是出于任务要求的需要啦! 先上代码吧! 这边为了思路清晰点先上客户端的代码~顺序由上至下~ package zeng.Glogo.learn; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget

Android: NDK编程入门笔记

让人想犯罪 __ 提交于 2019-11-29 23:12:32
为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。 2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。 3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。 下面就介绍下Android NDK的入门学习过程: 入门的最好办法就是学习Android自带的例子, 这里就通过学习Android的NDK自带的demo程序:hello-jni来达到这个目的。 一、 开发环境的搭建 android的NDK开发需要在linux下进行: 因为需要把C/C++编写的代码生成能在arm上运行的.so文件,这就需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。 安装android-ndk开发包,这个开发包可以在google android 官网下载: 通过这个开发包的工具才能将android jni 的C/C++的代码编译成库 android应用程序开发环境: 包括eclipse、java、 android sdk、 adt等。 如何下载和安装android-ndk我这里就不啰嗦了,安装完之后,需要将android-ndk的路劲加到环境变量PATH中: sudo gedit /etc/environment

Android ndk下用AssetManager读取assets的资源

故事扮演 提交于 2019-11-29 21:51:50
在使用 cocos2dx 在 Android 上进行游戏开发时,遇到了奇怪的事情,无论什么代码,都无法读资源文件。不得以只好寻求更高版本的Api。 在Android ndk api level 9 之后,提供了一套称为 AssetManager 的api。 这个api 的工作原理是 - Java通过JNI把getAssets得到的AssetManager传递给一个JNI的c函数。 - JNI的c函数通过 AAssetManager_fromJava 来取到这个AssetManager对象。 - 通过一系列的 AssetManager 的api来操作Assets。 C的jni函数如下 static AAssetManager * gAssetMgr = NULL; extern "C" { void Java_org_cocos2dx_lib_Cocos2dxActivity_nativeSetAssetManager(JNIEnv* env, jclass cls, jobject assetManager) { gAssetMgr = AAssetManager_fromJava( env, assetManager ); } }; 读取资源的方法如下 do{ AAsset * pAsset = AAssetManager_open(gAssetMgr, pszFileName,

Android NDK开发之Jni调用Java对象

旧城冷巷雨未停 提交于 2019-11-29 20:38:29
本地代码中使用Java对象 通过使用合适的JNI函数,你可以创建Java对象,get、set 静态(static)和 实例(instance)的域,调用静态(static)和实例(instance)函数。JNI通过ID识别域和方法,一个域或方法的ID是任何处理域和方法的函数的必须参数。 下表列出了用以得到静态(static)和实例(instance)的域与方法的JNI函数。每个函数接受(作为参数)域或方法的类,它们的名称,符号和它们对应返回的jfieldID或jmethodID。 函数 描述 GetFieldID 得到一个实例的域的ID GetStaticFieldID 得到一个静态的域的ID GetMethodID 得到一个实例的方法的ID GetStaticMethodID 得到一个静态方法的ID 构造一个Java对象的实例 jclass cls = (*env)->FindClass(env, "Lpackagename/classname;"); //创建一个class的引用 jmethodID id = (*env)->GetMethodID(env, cls, "", "(D)V"); //注意这里方法的名称是"",它表示这是一个构造函数,而且构造参数是double型的 jobject obj = (*env)->NewObjectA(env, cls, id,

Android: NDK编程入门笔记

对着背影说爱祢 提交于 2019-11-29 19:54:03
为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。 2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。 3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。 下面就介绍下Android NDK的入门学习过程: 入门的最好办法就是学习Android自带的例子, 这里就通过学习Android的NDK自带的demo程序:hello-jni来达到这个目的。 一、 开发环境的搭建 android的NDK开发需要在linux下进行: 因为需要把C/C++编写的代码生成能在arm上运行的.so文件,这就需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。 安装android-ndk开发包,这个开发包可以在google android 官网下载: 通过这个开发包的工具才能将android jni 的C/C++的代码编译成库 android应用程序开发环境: 包括eclipse、java、 android sdk、 adt等。 如何下载和安装android-ndk我这里就不啰嗦了,安装完之后,需要将android-ndk的路劲加到环境变量PATH中: sudo gedit /etc/environment

android 的NDK在Windwos环境搭建(一)

家住魔仙堡 提交于 2019-11-29 19:04:06
上一篇是 android NDK在ubuntu10.04环境搭建 ,这次是windows的! NDK的Windwos环境搭建 Eclipse版本是3.6以上的 一、下载android NDK 您可以下载NDK r4 for Windows或NDK r5 for Windows安装包,下载地址: 地址: http://developer.android.com/sdk/ndk/index.html 下载后解压缩到你的工作目录,例如:E:\Android\tools\android-ndk-r7,结果如下图: Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。samples下面包含几个实例开发演示项目,第一次接触NDK开发,建议先从示例开始。下面先看一下编译环境配置。 二、下载Cygwin 由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境,下载地址: http://www.cygwin.com/ 下载setup.exe文件。 http://cygwin.com/setup.exe 使用过程如下: 第一步:运行setup程序,第一步图略,直接点击Next进入下一步。 第二步:选择安装方式