android ndk hello,world!
来源:互联网 发布:python 3.5.2语法 编辑:程序博客网 时间:2024/05/16 17:54
java 层受限于虚拟机。有些操作可能需要用ndk来实现。下面我简单的写一个demo . 这个demo主要作用是 在C层提供一个方法 add(int i , int i ) . 实现两个数的相加。
一。 在Java层写一个类 ,这个类包含 native方法。 如下
package com.test.ndk_hello;public class NdkTools {public native int add(int a , int b) ;static {System.loadLibrary("ndktools");}}
其中 static 中的语句 主要是加载 ndktools 这个库。 ndktools 是我们下面要实现的库名字。
二 。 编写ndk层 ,实现 add 函数。
1 . add.c
#include <jni.h>jint Java_com_test_ndk_NdkTools_add(JNIEnv *env, jobject obj, jint a, jint b){ return a+b ;}
注意这个方法名 。它其实是 Java_ 加上 包名 在加上类名方法名。 可以自己直接按照这种规则写。也可以先用javah 先得到头文件。具体做法如下
C:/XX/bin/:
javah -classpath . -jni com.test.ndk.NdkTools然后 就会再classes目录下得到
这个头文件中就会有具体的方法名。
ndk的 makefile
LOCAL_PATH := $(call my-dir)MY_USE_SPEEX := 1include $(CLEAR_VARS)ANDROID_DEBUG :=1#Add target arm versionifeq ($(TARGET_ARCH_ABI),armeabi)MY_PJSIP_FLAGS := $(BASE_PJSIP_FLAGS) -DPJ_HAS_FLOATING_POINT=0elseMY_PJSIP_FLAGS := $(BASE_PJSIP_FLAGS) -DPJ_HAS_FLOATING_POINT=1endifLOCAL_CFLAGS := $(MY_PJSIP_FLAGS)APP_PLATFORM := android-9LOCAL_MODULE := ndktoolsLOCAL_SRC_FILES := add.cLOCAL_LDLIBS := -lloginclude $(BUILD_SHARED_LIBRARY)然后运行ndk-build 就会生成 ndktools.so .
然后把这个.so copy到工程目录lib中 就可以用了。
- android ndk hello,world!
- android ndk Hello World
- android NDK 开发 Hello World
- android ndk之hello world
- android NDK 之Hello world
- Android NDK Socket Hello World
- Android-NDK-之Hello-World
- Android NDK开发“Hello World NDK”
- Android NDK开发“Hello World NDK”
- Android NDK开发之Hello world篇
- ndk编写android终端hello world
- android ndk开发hello world入门
- Android NDK开发中的 Hello World实例
- ndk编写android终端hello world
- Android NDK开发之一hello world的可执行程序
- android NDK 教程一(初识JNI--hello world)
- Android studio配置ndk和输出hello world
- Android NDK编译hello world真机运行
- 关于工作,要注意一下三点:
- hdu 3361
- Android模拟器加速
- System.Data.Sqlite旧版本在net4.0下使用方式
- hdu 1197
- android ndk hello,world!
- JQUERY_AJAX
- JavaScript 格式化时间 INT类型 转 字符串时间
- 三国演义告诉我们的60条真理
- 在Qt中如何使用QtDesigner创建的UI文件(一)
- tar包解压not in gzip format的解决办法
- 海量数据处理面试题集锦
- 从几幅架构图中偷得半点海量数据处理经验
- 教你如何迅速秒杀掉:99%的海量数据处理面试题