android studio JNI使用详解手机开发
Step: 1. 添加native接口注意写好native接口和System.loadLibrary()即可了,并无特别之处。
Step: 2.执行Build- Make Project
生成了.class文件..class文件的生成路径是在 app_path/build/intermediates/classes/debug下的. 这个在android studio里面看不到, 到文件管理器里面翻到的, 里面还有好多东西。
Step: 3.javah生成c头文件
点击 View- Tool Windows- Terminal ,即在Studio中进行终端命令行工具.执行如下命令生成c语言头文件。
这 里需要注意的是要进入 Project /app/src/main的目录下执行javah命令,为的是生成的 .h 文件同样是在 Project /app/src/main路径下(jni下面),可以在Studio的工程结构中直接看到。
操作命令:
javah -d jni -classpath SDK_android.jar APP_classes class
javah -d jni -classpath c:/Users/Ximei/AppData/Local/Android/sdk1/platforms/android-21/android.jar;../../build/intermediates/classes/debug com.example.jnitest
好长一串, 好家伙, 这通敲.
然后就看到 project /app/src/main/jni/com_example_jnitest.h出现了.
Step: 4.编辑c文件
在 project /app/src/main/jni/jnitest.c文件中实现头文件中的函数。
Step: 5.配置NDK
这一步包括两个动作:
1.指明ndk路径
在local.properties中添加ndk目录, ndk目录中不可包含空格.
ndk.dir=C/://android-ndk-r10d
2. 修改build.gradle配置
工程中共有两个build.gradle配置文件,我们要修改的是在 Project /app/build.gradle这个文件。为其在defaultConfig分支中增加上
ndk {
moduleName jnitest
}
3. 添加Application.mk 和 Android.mk文件
Application.mk
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES := nativebt
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := jnitest
LOCAL_SRC_FILES := jnitest.c
LOCAL_DEFAULT_CPP_EXTENSION := cpp
#include $(BUILD_EXECUTABLE)
include $(BUILD_SHARED_LIBRARY)
然后进行编译, 会出现no rule to make target .错误, 按照网上的经验, 生成一个空的empty.c文件, 错误通过. (啧, 2014年3月的bug, 居然还没有fix版)
终于编译成功, 编译出来的库文件在如下路径:
project /app/build/intermediates/ndk/debug/lib/ 共7个目录, 7种架构吧。
至此, 开发环境建立成功。
相关文章
- android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法
- android开机动画多长时间_Android开机动画原理分析
- android 浏览器 开发,Android 浏览器的开发实例分享
- android toast位置_android studio toast不显示
- Android preference_android studio preview
- 【Android 应用开发】 Ubuntu 安装 Android Studio (旧版本|仅作参考)
- 【Android应用开发】Android Studio - MAC 版 - 快捷键详解
- 【Android应用开发】Android Studio 错误集锦 -- 将所有的 AS 错误集合到本文
- 【Android RTMP】RTMPDumb 源码导入 Android Studio ( 交叉编译 | 配置 CMakeList.txt 构建脚本 )
- 【错误记录】Flutter / Android 报错 ( AAPT: error: attribute android:requestLegacyExternalStorage not found )
- 【Android 组件化】路由组件 ( 路由组件结构 )
- 【错误记录】Android Studio 编译报错 ( Could not install Gradle distribution from ‘https://services.gradle.or )
- 华为手机Android Studio的Logcat无任何内容输出的解决方案详解手机开发
- Android Studio 环境配置优化详解手机开发
- Android Studio 入门级教程详解手机开发