Sie sind auf Seite 1von 3

Native Development Kit

Inhaltsverzeichnis
Android Projekt erstellen......................................................................................................................1
Shared Libary Erstellen........................................................................................................................2
Konventionen.......................................................................................................................................2
Logging.................................................................................................................................................2
Integration im Eclipse mit dem ADT-Plugin.......................................................................................2
Beispiel für eine „Android.mk“-Datei .................................................................................................3

Android Projekt erstellen

◦ Zugriff von Java auf nativen Code mittels JNI:

– Native Methoden deklarieren: z.B. :


public native void helloWorld(void);
– Shared Library einbinden: z.B. :
static {
System.loadLibrary("helloworld");
}
Shared Libary Erstellen
◦ Im Verzeichnis der Android-Applikation Ordner „jni“ erstellen
◦ In diesen Ordner „jni“ alle Source-Dateien der Shared Library
◦ Datei Android.mk erstellen die den Bauvorgang der Bibliothek vorschreibt
◦ Shared Library bauen: im Verzeichnis der Android-Applikation ndk-build ausführen

Konventionen
◦ Dateinamen der Shared Library beginnt mit libDateiname.so also z.B.:
◦ libhelloworld.so
◦ JNI-Header muss generiert sein, dafür im Projektverzeichnis folgendes Kommando
ausführen:
◦ javah -o Dateiname.h -classpath bin com.project.nativeActivity
◦ Source-Code (C/C++) der Shared Library muss diesen Header implementieren

Logging
◦ Header inkludieren
#include <android/log.h>
◦ Defines setzen um variable Anzahl von Parametern zum Logging zu unterstützen
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,
"testserial",__VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG ,
"testserial",__VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO ,
"testserial",__VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN ,
"testserial",__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR ,
"testserial",__VA_ARGS__)
◦ In der Android.mk die Logging-Bibliothek zur Shared Library dazulinken
LOCAL_LDLIBS := -llog

Integration im Eclipse mit dem ADT-Plugin


• Bevor die Android-Applikation gestartet werden kann, muss die Shared Library erstellt
worden sein.
• Nach dem die Shared Library mittels NDK fertig gebaut wurde → Rechtsklick auf das
Projekt → „Refresh“
Beispiel für eine „Android.mk“-Datei

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES := helloworld.c
LOCAL_CFLAGS := -Wall
LOCAL_LDLIBS := -llog
LOCAL_MODULE := helloworld

include $(BUILD_SHARED_LIBRARY)

Das könnte Ihnen auch gefallen