Android 嵌入式开发带你一步一步入坑

先去下载NDK

下载过程非常长,现在完后,你的NDK路径在这里

然后就需要去配置环境变量:

然后去Path里面配置上这个

然后去黑窗口输入ndk-build:

然后打开你的Studio开始创工程

点加号创建

 

方便粘贴内容给出:

$JDKPath$\bin\javah.exe 
-classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$
$ModuleFileDir$\src\main\java

再点+号

E:\androidstudio\studiosdk\ndk-bundle\ndk-build.cmd//自己去自己的NDK下面找这个文件去,误粘
$ModuleFileDir$\src\main\   //不管自动出来什么删掉,粘这个,本人被坑了一天,百度都没看董

创建一个类Utils2

public class Utils2 {
    public native int chengfa(int a,int b);

}

然后点击:

然后再往类里面加上

 就在刚写的类里面加

 static {
        System.loadLibrary("MySo");
    }

然后换成Project的文档查看方式在main下就能看到你有了一个jni文件里面多了一个h文件如果没有,先不要往下进行了,胜败乃兵家常事大侠请重新来过。

如果出来了那么久接着走

点击下拉创建一个c文件

然后写代码:

#include<stdio.h>
#include<jni.h>
#include<stdlib.h>
#include "rise_lung_sow_dra_ceshindk_Utils2.h"//写你自己生成的h文件的文件名
JNIEXPORT jint JNICALL Java_rise_lung_sow_dra_ceshindk_Utils2_chengfa//从h文件里将你的方法粘过来,然后去掉“;”写成大括号,自己把参数名加上然后大括号里面写代码
  (JNIEnv *env, jobject thisz, jint a, jint b){
    return a*b;
  }

然后创建Android.mk文件还是jni文件下创建file

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := MySo//这里写你上面后加到类里面的代码里的名字,不懂的看图
LOCAL_SRC_FILES := test2.c//这个写c文件的名字
include $(BUILD_SHARED_LIBRARY)

然后右击你的c文件

 

然后控制台会提示你生成的文件,生成完之后是这样

然后在你的main下创建jniLibs文件把你lib里面的文件全部复制一份粘到里面,然后把生成的lib删掉

然后打开appbuild将下面的代码粘到android下

    sourceSets.main {
        jniLibs.srcDir 'libs'
        jni.srcDirs = []
    }

然后在MainActivity里面调用:

  Utils2 utils2 = new Utils2();
        int chengfa = utils2.chengfa(3, 5);
        Toast.makeText(MainActivity.this,"乘法:"+chengfa,Toast.LENGTH_LONG).show();

然后点击运行。本人请测。

posted @ 2017-12-14 16:24  菜鸟东东  阅读(9788)  评论(0编辑  收藏  举报