Android NDK
smqh2011
这个作者很懒,什么都没留下…
展开
-
Android NDK中sample导入Eclipse
File->New->Project->Android Project from existing code->next->browse->finish原创 2013-04-02 16:37:26 · 1138 阅读 · 0 评论 -
Android NDK开发实例
关于NDK的使用,首先需要了解一个概念:JNI。什么是JNI? JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。 2.1 Hello-jni 这个是NDK自带的例子程转载 2013-03-22 15:15:30 · 814 阅读 · 0 评论 -
将NDK中的例子工程hello-neon导入到Eclipse中
方法如下:依次点击File---New --- Project 打开 “New Project”对话框,安装下图进行选择 打开“Create Android Project”对话框,按照下图进行选择 点击“Browser”找到hello-neon 工程的目录 选择完成后 然后点击 “Next”,选择AndroidSDK版本转载 2013-03-22 14:01:51 · 1188 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----数据传输(引用数据类型)
接着上篇文章继续讲。主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输。 1、主要流程1、 String 字符串传输a) 上层定义一个native的方法,需要一个String 参数 ,返回一个Stringb) JNI对应上层的方法,打印出上层传输下来的String数据,并返回处理String数据c) 上层 收转载 2013-03-22 12:52:38 · 623 阅读 · 0 评论 -
基于 Android NDK 的学习之旅----- C调用Java
基于 Android NDK 的学习之旅----- C调用Java许多成熟的C引擎要移植到Android 平台上使用 , 一般都会 提供 一些接口, 让Android sdk 和 jdk 实现。下文将会介绍 C 如何 通过 JNI 层调用 Java 的静态和非静态方法。 1、主要流程1、 新建一个测试类TestProvider.javaa) 该类提供了2个转载 2013-03-22 11:46:13 · 732 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----Android.mk 介绍
一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪转载 2013-03-22 11:39:12 · 665 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----资源释放
做上一个项目的时候因为与C引擎交互频繁,有时候会突然莫名其妙的的整个应用程序直接挂掉。因为我是学Java 开始的,所以对主动释放内存没多大概念(GC直接帮忙回收),后查询原因才知道是因为JNI 有些对象内存未释放引起。下面介绍下相关的资源释放。 JNI 编程实现了 native code和 Java 程序的交互,因此 JNI代码编程既遵循 native code编程语言的编程规转载 2013-03-22 12:53:21 · 660 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----数据传输(基本数据类型和数组传输)
之前的一些文章都有涉及到上层和中间层的数据传输,简单来说,也就是参数和返回值的使用。因为中间层要做的最多的也就是数据传输与转换,下面来介绍下这方面的知识。 数据传输可分为 基本数据类型传输 和 引用数据类型的传输 , 因为数组传输也比较特别(其实数组也是引用类型),所以这里也专门分出来讲讲。 1、主要流程1、 基本数据类型的传输a) 上层定义一个n转载 2013-03-22 12:51:26 · 648 阅读 · 0 评论 -
基于 Android NDK 的学习之旅----- Java 方法映射到C中的签名
刚接触JNI 的 兄弟在看一些demo的时候 发现有类似与“([Ljava/lang/String;)V”的东西的时候肯定会很“蛋疼”,完全不懂这是啥东西,怎么来的,有啥用处? 今天就讲讲这个“蛋疼”的东西把,俗称 方法签名 直接来个Demo 把 : 观察下面四个方法对应的签名 public void test(){} ()转载 2013-03-22 12:49:36 · 697 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----Java 调用C
随便谈谈为什么要Java调用C 吧:我认为:1、 有些公司开发Android项目的时候, 许多组件功能可能是C中已经实现了,所以我们没必要同样的功能又在java中实现一遍。例如我之前做的一个项目,公司C引擎已经很成熟了,所以直接在java中封装好接口,由C去实现。2、 C的速度一般是java的10-20倍把,有些对速度要求高的就需要在C中实现。例如我以前在Android项目中有要求转载 2013-03-22 11:43:40 · 729 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----JNI 数据类型
经典老套流程,学编程语言东西,先学它最基础的数据类型,JNI也是如此。JNI 定义了一系列基本数据类型和引用数据类型与java想对应。 1、基本数据类型下面一张表是描述了 Java 基本数据类型和JNI中基本数据类型的相对应关系已经占用空间大小。随便观察就能发现,其实就基本数据类型而已,JNI基本数据类型只是比Java基本数据类型前多了个’j’而已当然,JNI中还有个Jav转载 2013-03-22 11:42:10 · 712 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----JNI LOG 打印
程序都是调出来的。下面我介绍下JNI层的log打印方法的使用,类似与Android sdk提供的log1、Android 应用层 MainActivity.java主要功能代码a) 静态载入 So 库 b) 声明本地方法c) 调用本地方法代码附有注释如下:public class MainActivity extends转载 2013-03-22 11:41:22 · 576 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----HelloWorld
Hello World作为所有编程语言的起始阶段,占据着无法改变的地位,所有中/英/法/德/美……版本的编程教材中,hello world总是作为第一个TEST记录于书本之中,所有的编程第一步就在于此了!经典之中的经典!hello world!下面介绍下NDK开发的Hello World1、Android 应用层 MainActivity.java主要功能代码a)转载 2013-03-22 11:40:25 · 572 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----序言
前些日子做了个Android项目,引擎层用C的,准备写这个系类的文章,借此跟朋友来分享下我NDK开放的经验以及自己知识的总结和备忘。希望能给需要这方面资料的朋友提供一定的帮助。主要涉及到: 环境的搭建Android.mk 文件的配置HelloWorldNDK 打印信息JNI 数据类型Java 调用 CC 调用 Java数据的传输(基本数据类型的传输,引转载 2013-03-22 11:17:58 · 790 阅读 · 1 评论 -
android NDK jni下的c文件Unresolved inclusion
原因是在eclipse编辑环境中没有找到对应的include中的文件。解决方法是将包含该文件的include目录作为新的linked folder加入工程中。具体方法如下:1. 右击工程->New->Folder 2. 对话框中点击Advanced3. 选择Link to alternate location (Linked Folder),选择需要的inc原创 2013-04-03 16:52:08 · 751 阅读 · 0 评论 -
基于 Android NDK 的学习之旅-----环境搭建
工欲善其事 必先利其器 , 下面介绍下 Eclipse SDK NDK Cygwin CDT 集成开发环境的搭建。1、Android 开发环境搭建Android开发环境搭建不是重点,相信看此文章的很多人都已经搭建成功,这里随便概述性的说说。1) 下载 JDK2) 下载 Eclipse3) 下载 Android SDK4) 启动Ecli转载 2013-03-22 11:19:28 · 612 阅读 · 0 评论