基于mac,使用android studio进行ndk开发(1)
来源:互联网 发布:海岛奇兵钻石辅助软件 编辑:程序博客网 时间:2024/06/03 15:23
1.首先进入preferences,确认android ndk是否已经安装,没有的勾选,apply即可安装。
2.新建一个测试项目,然后在App 的build gradle中的default config中添加 ndk{moduleName "test"}。如下
android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "cn.eqiyue.ndk2" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" ndk{ moduleName "test" } }}
3.在gradle.properties中增加
android.useDeprecatedNdk=ture
4.然后gradle重新编译。
5.增加一个ndk的工具类,申明一个native方法。
/** * Created by kemp on 5/3/16. */public class NDKUtils { public static native boolean doSomeThing();}
6.此时声明的方法,显示为红色,用代码提示功能生成c文件(alt+回车),此时在main下,此时可以看到生成了jni文件夹,并且生成了ndkutils.c方法声明好了,但是没有实现,
7.然后make一下,让我们申明的工具类生成class文件,在build/intermediate/classes/debug/...目录下即可看到相应的class。
8.点击一下android studio下面的terminal,切换目录,cd app/src/main 切换到main目录下,然后编译class文件,javah -d jni -classpath ../../build/intermediates/classes/debug/ cn.eqiyue.ndk2.NDKUtils 目录对应自己的,然后可以看到在jni文件夹下生成了头文件。
9.将头文件include进来
#include <jni.h>#include "cn_eqiyue_ndk2_NDKUtils.h"JNIEXPORT jboolean JNICALLJava_cn_eqiyue_ndk2_NDKUtils_doSomeThing(JNIEnv *env, jclass type) { // TODO return 1;}
10.然后在activity中使用。
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); System.loadLibrary("test"); TextView tv = new TextView(this); tv.setText(NDKUtils.doSomeThing()+""); setContentView(tv); }}11.可以看到打印为ture。
1 0
- 基于mac,使用android studio进行ndk开发(1)
- 基于mac,ndk开发,使用android studio 编译ffmpeg(二)
- 使用Android Studio进行NDK开发
- 使用Android Studio进行NDK开发
- 使用 Android Studio 进行 NDK 开发
- 使用Android studio进行NDK开发
- Android studio使用NDK(Mac版)
- Android studio进行NDK开发
- android studio进行NDK开发
- Android 使用Android Studio进行NDK-JNI开发
- 使用Android Studio 1.3 版本进行NDK开发
- 使用Android Studio 1.3 版本进行NDK开发准备工作
- 使用Android Studio 1.3 版本进行NDK开发
- 使用Android Studio 1.3 版本进行NDK开发
- 使用Android Studio 进行NDK开发和调试
- 使用Android Studio 进行NDK开发和调试
- 使用Android studio 2.3.3进行NDK开发
- Android-使用Android studio 进行NDK-JNI开发实例(一)
- UI界面结构
- android service 本地 远程 总结
- Syntax error, parameterized types are only available if source level is 1.5
- Axis2返回报文解析丢失参数
- STL之优先队列priority_queue
- 基于mac,使用android studio进行ndk开发(1)
- android xml 绘图 shape 解析
- When Documents Become Databases – Tabulizer R Wrapper for Tabula PDF Table Extractor
- saltstack Pillar
- Nginx interprocess communication
- ubuntu上配置wireshark的权限
- Volley网络请求框架的使用
- 每天一个linux命令(25):linux文件属性详解
- Android service工具类,判断服务是否在运行