zoukankan      html  css  js  c++  java
  • 【Android】第一个JNI测试程序

    1、先去官网上下载NDK,最新的是android-ndk-r8d-windows:

    http://developer.android.com/tools/sdk/ndk/index.html#Downloads

    2、将下载后的tar包解压至任意文件目录下,例如D:\android-ndk-r8d

    3、将此路径增加至系统环境变量中:

    05r2e02i.nl4

    qmxxns1a.f2o

    4、貌似NDK从v6还是几开始就继承了linux部分功能了,所以这里不再安装类似cywin

    5、新建一个Android工程

    6、在工程下,新建文件夹jni,在该目录下新建Android.mk、first-jni.c文件,具体代码如下:

    first-jni.c

    #include<String.h>
    #include<jni.h>
    
    jint
    Java_com_amanda_firstjni_MainActivity_addint(JNIEnv* env,jobject thiz, jint a, jint b){
    	return a+b;
    }
    
    jint
    Java_com_amanda_firstjni_MainActivity_plusint(JNIEnv* env,jobject thiz, jint a, jint b){
    	return a-b;
    }

    Android.mk

    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE    := first-jni
    LOCAL_SRC_FILES := first-jni.c
    
    include $(BUILD_SHARED_LIBRARY)

    7、修改Android工程中的代码

    activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >
    
        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="@string/hello_world" />
    
    </RelativeLayout>

    MainActivity.java

    package com.amanda.firstjni;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    	private TextView mText;
    	
    	//load .so
    	static{
    		System.loadLibrary("first-jni");
    	}
    	
    	public native int addint(int a,int b);
    	public native int plusint(int a, int b);
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		mText = (TextView)this.findViewById(R.id.text);	
    		
    		int aa = addint(5,4);
    		int bb = plusint(5,4);
    		
    		mText.setText("5+4="+aa+",5-4="+bb);
    	}
    
    }

    8、接着打开cmd,依次输入下述命令:

    android update –p . –s

    ndk-build

    2xwhh3uk.3ir

    9、接着将Android clean,重新编译,运行后,即可看到设备上显示如下:

    image

    哈哈,我的第一个JNI测试程序完成了...

  • 相关阅读:
    struts2学习总结
    常用html
    p6spy結合SQL Profiler监控和剖析数据库操作
    ZK 上傳圖片和顯示圖片(保存在文件夹)
    c3p0学习JdbcUtil工具类
    时间的复杂度和空间的复杂度
    ASP.NET后台获取url
    html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
    ASP.NET文件的下载
    C#牛人要具备的知识
  • 原文地址:https://www.cnblogs.com/Amandaliu/p/2971257.html
Copyright © 2011-2022 走看看