使用as开发jni入门(附验证):配置ndk开发环境,配置as相关jni配置
编写jni,生成so文件:
1、通过as内置的Android SDK下载需要使用的ndk,在系统环境变量设置相关参数

2、新建一个普通as项目,新建一个类,用来静态加载so库和书写本地native方法

3、目录,在as的terminal控制台输入命令 cd app\build\intermediates\classes\debug 进入编译好的class文件根目录,再次输入命令 javah -jni /*class文件的全路径*/,会生成对应的.h文件

4、将生成的.h文件复制到as目录的jni目录下(可以改名,我这里改名为JNITest.h)新建一个c文件,编辑内容

c文件中的方法名称为Java_/*java文件的全路径*/_Java文件中的方法名
现在jni目录文件为:
编辑或者新建Android.mk文件,

5.在项目的build文件中defaultConfig添加ndk配置

6、编译项目,就可以在项目的build文件夹下的ndk中看到自己生成的包含so文件夹的jni的so库

验证:
7、新建一个普通项目,把刚刚那个JNITest.java放在包路径为com.djy的包下(包名、java文件名、方法名一定不能变),然后修改新项目的activity

xm文件修改

在新项目的app目录下新建一个名称为jni的文件夹(为了下一步的添加so库地址),和src平级的,把刚刚生成的so文件包含文件夹,

修改新项目的build文件,增加外部so库引入指定文件夹

8.运行结果
打开app:

点击按钮后:

日志:

以上是简单的jni开发的入门,如果有不对的欢迎指教,欢迎补充
使用as开发jni入门(附验证):配置ndk开发环境,配置as相关jni配置的更多相关文章
- 微信小程序开发环境安装以及相关设置配置
微信小程序开发环境安装以及相关设置配置 一.安装 软件名称:wechat_devtools_1.02.1907232_x64 软件安装地址:https://developers.weixin.qq.c ...
- 【保姆级教程】手把手教你进行Go语言环境安装及相关VSCode配置
[Go语言入门系列]前面的文章: [Go语言入门系列](七)如何使用Go的方法? [Go语言入门系列](八)Go语言是不是面向对象语言? [Go语言入门系列](九)写这些就是为了搞懂怎么用接口 本篇文 ...
- 原创:超简单!windows配置NDK开发环境使用JNI
前段时间看android版的opencv的配置教程时,看到了它的NDK配置方法,感觉简单又不会出错!!! 1.下载NDK,设置NDK路径: 在windows的系统环境变量中添加NDK的路径,环境变量名 ...
- 迅为iTOP-4412物联网开发板入门学习高手进阶项目开发超树莓派
免费视频教程: 为初学者精心录制的整套视频教程全部免费,随IT技术发展而不断增添的视频教程仍然免费!一支有经验的工程师团队会始终成为您的后盾. 项目实战---全开源: 手机远程控制开发板 门禁系统 W ...
- Android NDK开发入门实例
AndroidNDK是能使Android应用开发者把从c/c++编译而来的本地代码嵌入到应用包中的一系列工具的组合. 注意: AndroidNDK只能用于Android1.5及以上版本中. I. An ...
- NDK开发入门终极教程
0 前言 同NDK技术的渊源始于3年前,使用so文件的时候了解到NDK技术,并且C语言一直是强项,就鼓捣起NDK开发.在AndroidStduio还没推广的年代,基于eclipse搭建NDK开发环境需 ...
- Android NDK开发实例教程
WINDOWS系统+ Eclipse + NDK+Android 最近开始学习Android平台开发,Android还没有玩转,Java也是刚入门,这又要开始在Android中调用C语言,需要利用ND ...
- NDK开发环境搭建_r8
本文主内容: 1. Android NDK 安装 2. 安装Cygwin与使用NDK编译 3. 在Eclipse中集成C/C++开发环境CDT 4. 安装Sequoyah插件 5. JNI编 ...
- Windows无需CygWin 使用NDK开发
无需cygwin,使用NDK进行开发 NDK从7开始自带编译器,在windows上无需配置cygwin的环境. 在eclips中配置NDK路径 在eclipse中点击菜单栏window-Perfe ...
随机推荐
- 设置一个.exe文件开机启动
运行"regedit",编辑注册表 HKEY_LOCAL_MACHINE -- SOFTWARE -- Microsoft -- Windows -- CurrentVersion ...
- request实现请求转发
ServletContext可以实现请求转发,request也可以. 在forward之前输入到response缓冲区中的数据,如果已经被发送到了客户端,forward将失败,抛出异常 在forwar ...
- 如何使用Git命令将项目从github或者服务器上克隆下来
在本地新建一个文件夹,作为本地仓库,如“demo”.单击右键git Bush here,打开git,输入命令: cd /c/Users/Administrator/Desktop/demo 然后按回 ...
- java反射机制(转)
一.什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息.在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息. 二.哪里用到反射机制 ...
- editplus怎么在前后插入字符
快捷键:ctrl+h 未编辑之前: 源: 一:行首批量添加 查找"^" 替换为“我是行首aaa” 二: 行尾批量添加 查找"\n" 替换为“'bbb我是 ...
- 动态调用dll遇到的问题
问题:动态调用第三方提供的dll报错. Run-Time Check Failure #0 - The value of ESP was not properly saved across a fun ...
- phpstrom添加monokai-sublime主题
phpstrom默认的主题看起来不是特别舒服,sublime的主题却相当养眼,搜索之后,大为惊喜. 下载地址:https://github.com/sumiaowen/jetbrains-monoka ...
- CodeChef - ELHIDARR Find an element in hidden array(二分交互)
Find an element in hidden array There is an array of length N consisting of non-negative integers. T ...
- 网络编程demo之Udp和URL
首先是udp编程客户端发送消息给服务端,服务端接受然后打印到console控制台上 下面是一个有代表性的demo package com.henu.liulei; import java.io.IOE ...
- opengl学习资料
opengl新手指引 https://www.codeproject.com/articles/771225/learning-modern-opengl Learning Modern 3D Gra ...