摘要:
本文主内容:1、 Android NDK 安装2、 安装Cygwin与使用NDK编译3、 在Eclipse中集成C/C++开发环境CDT4、 安装Sequoyah插件5、 JNI编译环境配置本文建立在已经完成Android开发环境搭建的基础上。其基础环境至少需要包含以下内容:1、 JDK2、 Eclipse3、 Android SDK and ADT可以参考我之前的“Android开发环境搭建”。一、Android NDK安装与配置下载Android NDK。下载地址:http://developer.android.com/tools/sdk/ndk/index.html下载后解压缩到你的工 阅读全文
摘要:
JNI是Java调用Native机制,是Java语言自己的特性全称为Java Native Interface,类似的还有微软.Net Framework上的p/invoke,可以让C#或Visual Basic.Net可以调用C/C++的API,所以说JNI和Android没有关系,在PC上开发Java的应用,如果运行在Windows平台使用JNI是是经常的,比如说读写Windows的注册表。JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代 阅读全文
摘要:
在Android上,应用程序的开发,大部分基于Java语言来实现。要使用c或是c++的程序或库,就需要使用NDK来实现。NDK是Native Development Kit的简称。它是一个工具集,集成了Android的交叉编译环境,并提供了一套比较方便的Makefile,可以帮助开发者快速开发C或是C++的动态库,并自动的将so和java程序打包成apk,在Android上运行。 好,闲话少说,我们以一个简单的实例,来讲解NDK的应用。 一开发环境的搭建 这一步虽然没什么技术含量,但是对于初学者,有一个很好的入门指导,还是很有帮助的。1.1 Android SDK的搭建 首先,要进行Andro 阅读全文
摘要:
这篇文章http://byandby.iteye.com/blog/1026110我们介绍了android的本地服务:它只能由承载它的应用程序使用。现在我们将介绍如何构建可由其他进程通过 RPC 使用服务。与许多其他基于 RPC 的解决方案一样,在Android中,需要使用 IDL来定义将向客户端公开的接口。在Android中,这个 IDL 称为 AIDL。要构建远程服务,执行以下步骤。 (1)编写一个AIDL文件来向客户端定义接口。AIDL 文件使用 java语法,它的扩展名是点 .aidl 使用的包名称与Android项目所使用的包相同。 (2)将AIDL 文件添加到项目的任意包下。An. 阅读全文
摘要:
AIDL的作用 由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象。在Android平台,一个进程通常不能访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。 通过代码来实现这个数据传输过程是冗长乏味的,Android提供了AIDL工具来处理这项工作。 AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communica... 阅读全文
摘要:
Android中JNI的使用方法 首先看一下Android平台的框架图: 可以看到Android上层的Application和ApplicationFramework都是使用Java编写,底层包括系统和使用众多的LIiraries都是C/C++编写的。 所以上层Java要调用底层的C/C++函数库必须通过Java的JNI来实现。下面将学习Android是如何通过Jni来实现Java对C/C++函数的调用。以HelloWorld程序为例:第一步:使用Java编写HelloWorld 的Android应用程序:package com.lucyfyr;import android.app... 阅读全文