Android NDK入门实例 计算斐波那契数列二生成.so库文件
来源:互联网 发布:联通3g套餐用4g网络 编辑:程序博客网 时间:2024/05/20 14:20
上一篇文章输生成了jni头文件,里面包含了本地C代码的信息,提供我们引用的C头文件。下面实现本地代码,再用ndk-build编译生成.so库文件。由于编译时要用到make和gcc,这里很多人是通过安装cygwin,搭建一个linux环境编译。我是直接用Android NDK里ndk-build工具编译,没有安装cygwin,也能编译。
一、编写本地代码fib.c
首先在过程fiblib下新建一个目录jni,将上一篇生成的jni头文件添加到这个目录,接着在源码目录下新建文件fib.c:
文件jni/fib.c:
#include "com_example_fiblib_FibLib.h"//递归的斐波那契算法long fibN(long n){ if(n<0) return 0; if(n==1) return 1; return fibN(n-1)+fibN(n-2);}//迭代的斐波那契算法long fibNI(long n){ long previous = -1; long result = 1; long i = 0; int sum = 0; for (i=0;i<=n;i++){ sum = result + previous; previous = result; result = sum; } return result;}//与头文件生成的JNI方法的签名一致,否则运行时无法调用到本地代码JNIEXPORT jlong JNICALL Java_com_example_fiblib_FibLib_fibN (JNIEnv *env, jclass obj, jint n){ return fibN(n);}JNIEXPORT jlong JNICALL Java_com_example_fiblib_FibLib_fibNI (JNIEnv *env, jclass obj, jint n){ return fibNI(n);}
二、编写Makefile·
创建本地库之前,需要编写Android.mk,描述编译项目
文件jni/Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:= fibLOCAL_SRC_FILES:= fib.cinclude $(BUILD_SHARED_LIBRARY)
三、编译构建共享库
这里需要在jni下执行ndk-build生成库文件,即在libs下生成共享库libfib.so
右击工程Refresh下,就看到生成了libfib.so
- Android NDK入门实例 计算斐波那契数列二生成.so库文件
- Android NDK入门实例 计算斐波那契数列一生成jni头文件
- Android NDK入门实例 计算斐波那契数列三在Android中调用本地库文件
- android NDK入门实例,生成.so文件
- NDK入门实例,生成.so文件
- NDK入门实例,生成.so文件
- NDK入门实例,生成.so文件
- NDK入门实例,生成.so文件
- 数据结构实例<二>(斐波那契数列)入门
- 斐波那契数列数列计算
- 动态规划入门-斐波那契数列的计算
- Android NDK生成so文件
- Android NDK系列(二)-AS使用CmakeLists生成so文件
- 递归入门(二) -- 斐波那契数列
- NDK 生成 so库文件
- Java计算斐波那契数列
- 1042: 计算斐波那契数列
- 计算斐波那契数列
- [C/C++]函数如何返回struct或class对象
- eclipse 创建 server (tomcat或者jboss)时,提示no server runtimes found 解决方案:
- MAP REDUCE小计
- LPC系列arm处理器UART控制寄存器
- php 处理 excel
- Android NDK入门实例 计算斐波那契数列二生成.so库文件
- android mediaPlayer 播放音乐
- 魅族 mx2拍照无反应 Camera.takePicture 未回调PictureCallback jpeg
- Linux操作系统tcpdump抓包分析详解
- 四、[Android UI界面] android继承关系图
- vc学习
- 静态数组表示的有限状态机
- oracle 之 内存—鞭辟近里(一)
- 23岁女毒枭被抓全身仅99元