Android Studio 编写Jni
来源:互联网 发布:网络视听制作许可证 编辑:程序博客网 时间:2024/05/21 07:08
最近客户要求写一个操作串口的JNI,并按他们的要求编写,并把源码给他们,我也是醉了,网上不是有操作串口的JNI吗?拿来用不就可以了,真是没办法,因为刚接触Android Studio不久,以前都是直接在源码里或Eclipse编写并编译JNI代码的(现在Google用他们的亲儿子AS,不用干儿子EC了,没办法,一把年纪了也要硬着头皮学了),设置如下:
1.在AS的File菜单里找到Settings,点击进入Settings界面,并选择External Tools:
2.击点右边界面上的+号,设置生成头文件扩展工具:
$JDKPath$/bin/javah-classpath $Classpath$ -v -jni $FileClass$$SourcepathEntry$\..\jni
注:$JDKPath$,$Classpath$ 这些直接点击右边的按钮自行选择,下面的图也是一样。
$ModuleSdkPath$/ndk-bundle/ndk-build.cmd$ModuleFileDir$\src\main
4.生成清除扩展工具:
$ModuleSdkPath$/ndk-bundle/ndk-build.cmdclean$ModuleFileDir$\src\main5.在module下找到build.gradle加入如下代码:
ndk { moduleName "my_serial_jni" abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库。 //stl "stlport_static" //打开.c 的 debug (此句是打开的debug的关键) } sourceSets.main { jni.srcDirs = [] jniLibs.srcDir "src/main/libs" }
6.右键module,New->Folder->JNI Folder新建jni目录备用,再编写JniSerial.java,由于某些问题,就不贴具体代码了,只是说一下方法,请见谅:
public class JniSerial { public native int open(); public native int close(); static { try { System.loadLibrary("my_serial_jni"); } catch (Exception e) { e.printStackTrace(); } }}7.在AS的Build菜单下选择:Build Module 'app',然后右键JniSerial.java,按下图会在刚才新建的jni目录下生成.h文件:
8.在Jni目录下增加JniSerial.c文件,具体代码可以参照网上的串口文件
9.在Jni目录下增加Android.mk和Application.mk两个文件:
# Android.mkLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := fm_serial_jniLOCAL_SRC_FILES =: jniSERIAL.cLOCAL_LDLIBS+= -L$(SYSROOT)/usr/lib -llogLOCAL_PRELINK_MODULE := falseLOCAL_MODULE_TAGS := optionalinclude $(BUILD_SHARED_LIBRARY)
# Application.mkAPP_MODULES := my_serial_jniAPP_ABI := all
10.编译Jni目录,系统编译成功后会在当前目录下生成libs和obj两个目录,并生成相应的so文件:
以上步骤,如果你在写jni时有不成功的地方,请指出,谢谢!
0 0
- Android Studio 编写Jni
- android studio编写jni成功
- Android studio jni编写步骤,流程
- android studio 编写JNI时碰到的一些错误
- 一、android studio JNI 的简单编写使用。
- android studio编写jni,ndk程序(不用mk文件)
- android编写JNI方法
- android 中 编写jni
- Android Jni编写
- Android Studio开发JNI
- Android Studio JNI体验
- android studio JNI编程
- Android Studio JNI开发
- JNI Android Studio 调试
- Android Studio JNI 流程
- Android Studio jni开发
- android studio JNI使用
- Android Studio使用JNI
- gitlab配置邮件
- 《快学Scala》——数组、映射和元组
- elasticsearch+metricbeat+kibana安装配置
- Android-刷新之三:android-Ultra-Pull-To-Refresh
- linux top命令详解
- Android Studio 编写Jni
- Maven 项目如何打 war 包
- HTTPClient4.5.2学习笔记(二):连接管理(Connection management)
- 征信路漫漫 ,“类”金控平台的征信现状、实例
- 将kinect for windows SDK v2.0中代码在VS2015中打开运行报错 The build tools for Visual Studio 2012 (Platform Tools
- 阿里云真的免费了!免费套餐你用了没?
- android studio 最经典的报错 解决
- Laravel 设置时区
- leetcode 2. Add Two Numbers