WEB开发网
开发学院手机开发Android 开发 Android JNI开发入门之一 阅读

Android JNI开发入门之一

 2010-12-18 08:04:01 来源:WEB开发网   
核心提示:JNI在Android系统中有着广泛的应用,Android系统底层都是C/C++实现的,Android JNI开发入门之一,上层提供的API都是Java的,Java通过JNI调用底层的实现,可以继续往下面进行,Java编写的Android应用程序我们首先用java编写helloworld应用程序(APK),比如:And

JNI在Android系统中有着广泛的应用。Android系统底层都是C/C++实现的,上层提供的API都是Java的,Java通过 JNI调用底层的实现。比如:Android API多媒体接口MediaPlayer类,其实底层通过JNI调用libmedia库。由于JNI的存在可以让我们重用很多已经存在C/C++的库,省 去了重复开发的麻烦,并且可以利用很多开源的库(Android库中就有很多开源库,比如libjpeg,libpng等等),并且让我们开发的程序更有 效率(C/C++代码发挥硬件最佳性能)。如果你对标准JNI不熟悉的话,可以先参考我的博文《Linux下JNI实现》,文中介绍了怎样用标准JNI在 Linux系统中实现一个Helloworld程序,可以让你对JNI有一个初步的认识。本文简单介绍一下怎样在Android下面怎样用JNI开发程 序,并开发一个经典Helloworld应用程序。

交叉编译环境

首先是要搭建交叉编译环境,因为Java层的应用程序是和硬件无关的,JDK编译即可;但是Native C/C++代码是和硬件相关的,必须要用交叉编译器编译成特定硬件可执行代码。请根据你的硬件平台搭建你的交叉编译环境,我的MIPS平台,当然选择的是 MIPS的交叉编译器,如果你是Arm的请配置自己的交叉编译器。

我们首先编译一个Native C的helloworld程序,一个学习怎样在Android中增加一个程序,另外也可以验证我们的交叉编译环境是否正确,可以参考《Android编译 环境(1) ? 编译Native C的helloworld模块》。如果这个步没有问题说明你的交叉编译环境是没有问题的,可以继续往下面进行。

Java编写的Android应用程序

我们首先用java编写helloworld应用程序(APK),这个代码很简单创建一个HelloWorld activity。代码如下:

package com.simon;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

public class HelloWorld extends Activity {

private static final String TAG = "HelloWorld";

static {

System.loadLibrary("helloworld");

}

private native String printJNI();

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

1 2 3  下一页

Tags:Android JNI 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接