• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android Studio 1.5.1 JNI 编程

Android Studio 1.5.1 JNI 编程

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android studio1.5.1,android studio jni,studio使用jni,studio jni,安卓studio jni等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android Studio 1.5.1 JNI 编程



1. 新建project MyJNI,使用默认设置即可。
2. 新建Test类:右键com.example.myjni新建java类
新建Test步骤
3. 在Test类中编写如下代码,loadLibrary(“test”)中“test”库为NDK库名,之后将会定义。myFun()即为我们自定义的c++函数。

public class Test {
    static {
        System.loadLibrary("test");
    }
    native String myFun();
}

4. 生成Test类所对应的头文件:打开AS Terminal,切换到$工作目录$\MyJNI\app\src\main\java目录下,键入命令:javah -jni -cp ;, com.example.myjni.Test生成头文件(注意-cp之后是 空格+分号+逗号),经过尝试直接使用“javah -jni com.example.myjni.Test”命令会出现“ Could not find class file for ‘com.example.myjni.Test’.”的错误。此时在java\目录下就可以看到生成的.h文件了。
命令行运行结果
生成的.h内容如下:<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:java;"> /* DO NOT EDIT THIS FILE - it is machine generated */ #include /* Header for class com_example_myjni_Test */ #ifndef _Included_com_example_myjni_Test #define _Included_com_example_myjni_Test #ifdef __cplusplus extern "C" { #endif /* * Class: com_example_myjni_Test * Method: myFun * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_example_myjni_Test_myFun (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif

5. 新建jni文件夹:在main目录上右键,new->folder->jni floder新建jni文件夹
6. 将步骤4中生成的头文件剪切到jni文件夹中,并且新建C++ source file “test.cpp”,编辑代码如下:

#include "com_example_myjni_Test.h"

JNIEXPORT jstring Java_com_example_myjni_Test_myFun(JNIEnv *env, jobject obj) {
    return env->NewStringUTF("hello, this is myFun output!");
}

jstring Java_com_example_myjni_Test_myFun(JNIEnv *env, jobject obj);

在编辑完头文件之后,可以build一下,这样便会提示相关变量类型及函数。至此代码部分就搞定了~

7. 配置AS NDK环境:打开AS SDK manager在sdk tools中选择Android NDK点击安装。
选择SDK Manager

点击安装Android NDK

8.左键file,选择project structure。进入sdk location,看到如下界面,选择OK。此时NDK及SDK的目录将会出现在local.properties中。
进入project structure
选择SDK location

local.properties中代码如下所示:

ndk.dir=D\:\\Users\\XXX\\AppData\\Local\\Android\\sdk\\ndk-bundle
sdk.dir=D\:\\Users\\XXX\\AppData\\Local\\Android\\sdk

9.向gradle.properties中加入android.useDeprecatedNdk=true
10.向app目录下build.gradle文件中设置库文件名(生成的so文件名),其moduleName “test”就是第3步中System.loadLibrary(“test”);中所填的库名。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.myjni"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        //添加部分
        ndk{
            moduleName "test"
        }
        //添加部分结束
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

11.至此我们第一个jni程序所需的所有步骤已经完成,点击运行,查看结果。
jni运行结果截图

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android Studio 1.5.1 JNI 编程
  • Android studio1.5.1 NDK配置开发

相关文章

  • 2017-05-26自定义Toast的显示位置和显示内容,自定义toast
  • 2017-05-26android注册页面,android页面
  • 2017-05-26AndroidStudio项目提交(更新)到github最详细步骤
  • 2017-05-26硅谷商城3--购物车数据存储器,3--购物车
  • 2017-05-26Android Studio安装配置、环境搭建详细步骤及基本使用,android安装配置
  • 2017-05-26想要了解Kotlin,看这个就够了,想要Kotlin,
  • 2017-05-26Linux常用命令-50:crontab命令
  • 2017-05-224.1.1 Activity初学乍练
  • 2017-05-26上传单个文件到多台机器工具
  • 2017-05-26Android 6.0 开发者对系统权限的使用与练习(Permissions Best Practices)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 27个漂亮的移动端注册/登录界面设计作品,27登录界面设计作品
    • Android之Pull解析XML,androidpullxml
    • Andriod中Style/Theme原理以及Activity界面文件选取过程浅析
    • Android之使用文件进行IPC,android文件ipc
    • Android进程通信之两种序列化方式分析
    • Android解析json数据,android解析json
    • 5.2.4 Fragment实例精讲——底部导航栏+ViewPager滑动切换页面
    • EventBus通信小能手,EventBus通信能手
    • BadgeView使用,jsbadgeview使用方法
    • Android之SQLite数据库篇,androidsqlite

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有