diff --git a/jni/Android.mk b/jni/Android.mk new file mode 100644 index 0000000..49d3a5e --- /dev/null +++ b/jni/Android.mk @@ -0,0 +1,9 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := fibonacci + +LOCAL_SRC_FILES := com_android_ndksample_MainActivity.c + +include $(BUILD_SHARED_LIBRARY) \ No newline at end of file diff --git a/jni/com_android_ndksample_MainActivity.c b/jni/com_android_ndksample_MainActivity.c new file mode 100644 index 0000000..3c3749e --- /dev/null +++ b/jni/com_android_ndksample_MainActivity.c @@ -0,0 +1,15 @@ +/* + * com_android_ndksample_MainActivity.c + * + * Created on: Nov 27, 2013 + * Author: davidelizondo + */ + +#include "com_android_ndksample_MainActivity.h" +#include "fibonacci.c" + +jlong JNICALL +Java_com_android_ndksample_MainActivity_nativeFibonacci(JNIEnv *env, + jclass clazz, jint n) { + return recursive(n); +} diff --git a/jni/com_android_ndksample_MainActivity.h b/jni/com_android_ndksample_MainActivity.h new file mode 100644 index 0000000..ba8f852 --- /dev/null +++ b/jni/com_android_ndksample_MainActivity.h @@ -0,0 +1,21 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class com_android_ndksample_MainActivity */ + +#ifndef _Included_com_android_ndksample_MainActivity +#define _Included_com_android_ndksample_MainActivity +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: com_android_ndksample_MainActivity + * Method: nativeFibonacci + * Signature: (I)J + */ +JNIEXPORT jlong JNICALL Java_com_android_ndksample_MainActivity_nativeFibonacci( + JNIEnv *, jclass, jint); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/jni/com_android_ndksample_NativeFibonacci.h b/jni/com_android_ndksample_NativeFibonacci.h deleted file mode 100644 index 8f0bfcf..0000000 --- a/jni/com_android_ndksample_NativeFibonacci.h +++ /dev/null @@ -1,21 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class com_android_ndksample_NativeFibonacci */ - -#ifndef _Included_com_android_ndksample_NativeFibonacci -#define _Included_com_android_ndksample_NativeFibonacci -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: com_android_ndksample_NativeFibonacci - * Method: recursiveNative - * Signature: (I)J - */ -JNIEXPORT jlong JNICALL Java_com_android_ndksample_NativeFibonacci_recursiveNative - (JNIEnv *, jclass, jint); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/jni/fibonacci.c b/jni/fibonacci.c new file mode 100644 index 0000000..c1b6cfb --- /dev/null +++ b/jni/fibonacci.c @@ -0,0 +1,16 @@ +/* + * fibonacci.c + * + * Created on: Nov 27, 2013 + * Author: davidelizondo + */ +#include "fibonacci.h" + +uint64_t recursive(int n) { + if (n > 1) { + return recursive(n - 2) + recursive(n - 1); + } + return n; + +} + diff --git a/jni/fibonacci.h b/jni/fibonacci.h new file mode 100644 index 0000000..96d040a --- /dev/null +++ b/jni/fibonacci.h @@ -0,0 +1,15 @@ +/* + * fibonacci.h + * + * Created on: Nov 27, 2013 + * Author: davidelizondo + */ + +#include + +#ifndef FIBONACCI_H_ +#define FIBONACCI_H_ + +extern uint64_t recursive(int n); + +#endif /* FIBONACCI_H_ */ diff --git a/libs/armeabi/libfibonacci.so b/libs/armeabi/libfibonacci.so new file mode 100755 index 0000000..6fe4e7e Binary files /dev/null and b/libs/armeabi/libfibonacci.so differ diff --git a/obj/local/armeabi-v7a/libfibonacci.so b/obj/local/armeabi-v7a/libfibonacci.so new file mode 100755 index 0000000..4675250 Binary files /dev/null and b/obj/local/armeabi-v7a/libfibonacci.so differ diff --git a/obj/local/armeabi-v7a/objs/fibonacci/com_android_ndksample_MainActivity.o b/obj/local/armeabi-v7a/objs/fibonacci/com_android_ndksample_MainActivity.o new file mode 100644 index 0000000..9f772c4 Binary files /dev/null and b/obj/local/armeabi-v7a/objs/fibonacci/com_android_ndksample_MainActivity.o differ diff --git a/obj/local/armeabi-v7a/objs/fibonacci/com_android_ndksample_MainActivity.o.d b/obj/local/armeabi-v7a/objs/fibonacci/com_android_ndksample_MainActivity.o.d new file mode 100644 index 0000000..54a6aaf --- /dev/null +++ b/obj/local/armeabi-v7a/objs/fibonacci/com_android_ndksample_MainActivity.o.d @@ -0,0 +1,32 @@ +/Users/davidelizondo/Proyectos/NDKSample/obj/local/armeabi-v7a/objs/fibonacci/com_android_ndksample_MainActivity.o: \ + /Users/davidelizondo/Proyectos/NDKSample/jni/com_android_ndksample_MainActivity.c \ + /Users/davidelizondo/Proyectos/NDKSample/jni/com_android_ndksample_MainActivity.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/jni.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/android/api-level.h \ + /Users/davidelizondo/Proyectos/NDKSample/jni/fibonacci.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/stdint.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_types.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/machine/_types.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h + +/Users/davidelizondo/Proyectos/NDKSample/jni/com_android_ndksample_MainActivity.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/jni.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/android/api-level.h: + +/Users/davidelizondo/Proyectos/NDKSample/jni/fibonacci.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/stdint.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_types.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/machine/_types.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h: diff --git a/obj/local/armeabi/libfibonacci.so b/obj/local/armeabi/libfibonacci.so new file mode 100755 index 0000000..8a80bdf Binary files /dev/null and b/obj/local/armeabi/libfibonacci.so differ diff --git a/obj/local/armeabi/objs/fibonacci/com_android_ndksample_MainActivity.o b/obj/local/armeabi/objs/fibonacci/com_android_ndksample_MainActivity.o new file mode 100644 index 0000000..859b9ad Binary files /dev/null and b/obj/local/armeabi/objs/fibonacci/com_android_ndksample_MainActivity.o differ diff --git a/obj/local/armeabi/objs/fibonacci/com_android_ndksample_MainActivity.o.d b/obj/local/armeabi/objs/fibonacci/com_android_ndksample_MainActivity.o.d new file mode 100644 index 0000000..9b0bb96 --- /dev/null +++ b/obj/local/armeabi/objs/fibonacci/com_android_ndksample_MainActivity.o.d @@ -0,0 +1,35 @@ +/Users/davidelizondo/Proyectos/NDKSample/obj/local/armeabi/objs/fibonacci/com_android_ndksample_MainActivity.o: \ + /Users/davidelizondo/Proyectos/NDKSample/jni/com_android_ndksample_MainActivity.c \ + /Users/davidelizondo/Proyectos/NDKSample/jni/com_android_ndksample_MainActivity.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/jni.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/android/api-level.h \ + /Users/davidelizondo/Proyectos/NDKSample/jni/fibonacci.c \ + /Users/davidelizondo/Proyectos/NDKSample/jni/fibonacci.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/stdint.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_types.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/machine/_types.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h + +/Users/davidelizondo/Proyectos/NDKSample/jni/com_android_ndksample_MainActivity.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/jni.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/android/api-level.h: + +/Users/davidelizondo/Proyectos/NDKSample/jni/fibonacci.c: + +/Users/davidelizondo/Proyectos/NDKSample/jni/fibonacci.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/stdint.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_types.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/machine/_types.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h: diff --git a/obj/local/armeabi/objs/nativeFibonacci/com_android_ndksample_MainActivity.o b/obj/local/armeabi/objs/nativeFibonacci/com_android_ndksample_MainActivity.o new file mode 100644 index 0000000..30b3c82 Binary files /dev/null and b/obj/local/armeabi/objs/nativeFibonacci/com_android_ndksample_MainActivity.o differ diff --git a/obj/local/armeabi/objs/nativeFibonacci/com_android_ndksample_MainActivity.o.d b/obj/local/armeabi/objs/nativeFibonacci/com_android_ndksample_MainActivity.o.d new file mode 100644 index 0000000..e315778 --- /dev/null +++ b/obj/local/armeabi/objs/nativeFibonacci/com_android_ndksample_MainActivity.o.d @@ -0,0 +1,32 @@ +/Users/davidelizondo/Proyectos/NDKSample/obj/local/armeabi/objs/nativeFibonacci/com_android_ndksample_MainActivity.o: \ + /Users/davidelizondo/Proyectos/NDKSample/jni/com_android_ndksample_MainActivity.c \ + /Users/davidelizondo/Proyectos/NDKSample/jni/com_android_ndksample_MainActivity.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/jni.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/android/api-level.h \ + /Users/davidelizondo/Proyectos/NDKSample/jni/fibonacci.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/stdint.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_types.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/machine/_types.h \ + /Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h + +/Users/davidelizondo/Proyectos/NDKSample/jni/com_android_ndksample_MainActivity.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/jni.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/cdefs_elf.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/android/api-level.h: + +/Users/davidelizondo/Proyectos/NDKSample/jni/fibonacci.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/stdint.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_types.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/machine/_types.h: + +/Users/davidelizondo/android-ndk-r9b/platforms/android-19/arch-arm/usr/include/sys/_wchar_limits.h: diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml index 168c9b8..e19abfe 100644 --- a/res/layout/activity_main.xml +++ b/res/layout/activity_main.xml @@ -9,6 +9,7 @@ tools:context=".MainActivity" > diff --git a/src/com/android/ndksample/MainActivity.java b/src/com/android/ndksample/MainActivity.java index 7d381a5..ccc0ac2 100644 --- a/src/com/android/ndksample/MainActivity.java +++ b/src/com/android/ndksample/MainActivity.java @@ -1,22 +1,35 @@ package com.android.ndksample; -import android.os.Bundle; import android.app.Activity; +import android.os.Bundle; import android.view.Menu; +import android.widget.TextView; public class MainActivity extends Activity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.main, menu); - return true; - } + private TextView mNativeResult; + + static { + System.loadLibrary("fibonacci"); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + mNativeResult = (TextView) findViewById(R.id.native_result); + + mNativeResult.setText(String.valueOf(nativeFibonacci(6))); + + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + public static native long nativeFibonacci(int n); } diff --git a/src/com/android/ndksample/NativeFibonacci.java b/src/com/android/ndksample/NativeFibonacci.java deleted file mode 100644 index 53beff7..0000000 --- a/src/com/android/ndksample/NativeFibonacci.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.android.ndksample; - -public class NativeFibonacci { - - public static native long recursiveNative(int n); - -}