• Android Studio JNI/NDK 编程(二) Windows 下环境搭建 demo 开发


    环境

    windows 8  (注:其实 Linux 开发可能更方便)

    Android Studio 2.1;


    一 . 下载 安装android-ndk开发包

         地址:链接:http://pan.baidu.com/s/1c1GSiy8 密码:h7gr;

         下载完成后最好解决到一个根目录,中间不要有空格,中文;


    二.

    1、新建项目MyJNIDemo,选择空Activity就可以;

    2. 新建 com.jcdh.jcli.MyJNI 类

    public class MyJNI {
        static {
            System.loadLibrary("hello_jni");
        }
    
        public native String getDataFromJni();
    }

    3、工程app New->Folder->JNI Folder;

    4. MainActivity 实现:

    public class MainActivity extends Activity {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            TextView show = (TextView)findViewById(R.id.show);
                
             MyJNI myJni = new MyJNI();
             show.setText(myJni.getDataFromJni());

     }}

    5.Gradle scripts gradle ->build-gradle 在defaultConfig中添加(注意是添加原来的不变)

    defaultConfig {
     
        ndk {
      moduleName "hello_jni"
        }
        sourceSets.main {
         jni.srcDirs = []
         jniLibs.srcDir "src/main/libs"
              }
      

     Gradle scripts gradle.properties 增加 

    android.useDeprecatedNdk=true

    6. 点击File->Setting->Tools->External Tools 点击“+”,添加如下以下三项(非必须,也可以用命令行实现)

    (1)javah

    (2) ndk-build

    (3)ndk-build-clean



    7.jni 文件夹上右键  NDK->java.h,可以看到控制台编译 ,有了菜单以后都会比较方便

    同时jni文件夹下生成了文件 com_jcdh_jcli_myndk_MyJNIDemo.h


    8.jni目录下新建hello_jni.cpp文件

    #include "com_jcdh_jcli_myjnidemo_MainActivity.h"
    JNIEXPORT jstring JNICALL Java_com_jcdh_jcli_myjnidemo_MainActivity_getDataFromJni
            (JNIEnv * env, jobject obj)
    {
        return env->NewStringUTF("hello world!");
    }

    9.jni目录下分别新建Android.mk与Application.mk

    Android.mk
    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE := hello_jni
    LOCAL_SRC_FILES := hello_jni.cpp
    include $(BUILD_SHARED_LIBRARY)

    Application.mk
    APP_MODULES := hello_jni
    APP_ABI := all

    10. 右键jni文件夹,ndk->ndk-build,编译

     成功后,运行即可在手机上输出 hello world!


    DEMO 下载:

    http://download.csdn.net/detail/q610098308/9509832

  • 相关阅读:
    Unity C# 反编译
    java finalize方法总结、GC执行finalize的过程
    Android性能调优篇之探索垃圾回收机制
    深入理解JVM(一)——JVM内存模型
    Android性能调优篇之探索JVM内存分配
    HashMap实现原理分析
    [干货]2017已来,最全面试总结——这些Android面试题你一定需要
    2017年最全的30个Android面试题,你将如何回答?
    Android2017进阶知识点、面试题及答案(精选版)
    Android2017最新面试题(3-5年经验个人面试经历)
  • 原文地址:https://www.cnblogs.com/sharecenter/p/5620982.html
Copyright © 2020-2023  润新知