WEB开发网
开发学院手机开发Android 开发 Android NDK动态库的调用 阅读

Android NDK动态库的调用

 2010-09-16 23:50:00 来源:WEB开发网   
核心提示:/cygdrive/e/cygwin/android-ndk-r4/samples/testappso/libs/armeabiCompile thumb : tutorial <= /cygdrive/e/cygwin/android-ndk-r4/samples/testappso/jni/tutorial0
/cygdrive/e/cygwin/android-ndk-r4/samples/testappso/libs/armeabi

Compile thumb : tutorial <= /cygdrive/e/cygwin/android-ndk-r4/samples/testappso/jni/tutorial01.c

Compile thumb : tutorial <= /cygdrive/e/cygwin/android-ndk-r4/samples/testappso/jni/tutorial02.c

SharedLibrary : libtutorial.so

Install : libtutorial.so => /cygdrive/e/cygwin/android-ndk-r4/samples/testappso/libs/armeabi

D:在重新刷新工程,你就可以在lib下面看到生成的so了,点击加载运行

第二部分:调用通过自己编写make方式生成的so

我们还是引用上面的工程,不过把libtutorial.so 拿出来,通过自己写makefile来编译成so,这里请大家注意了,调用外部的so时候,不能够直接用在linux下生产的so来调用,必须通过ndk 提供的gcc来编译,否则会因为平台的不同无法调用。

A. 废话不多说,看makefile怎么写!我的ndk是1.6版本的.

新建一个文件夹,把 tutorial01.c tutorial02.c tutorial02.h 文件拷贝过去,然后编写makefile文件

libtutorial.so Makefile

CC = /cygdrive/e/cygwin/android-ndk-r4/build/prebuilt/windows/arm-eabi-4.4.0/bin/arm-eabi-gcc-4.4.0

CFLAGS = -g -O2 -fPIC -I/cygdrive/e/cygwin/android-ndk-r4/build/platforms/android-5/arch-arm/usr/include

SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-shared,-Bsymbolic -Wl,-soname,$@ -lc

CRT_OBJS= -L/cygdrive/e/cygwin/android-ndk-r4/build/platforms/android-5/arch-arm/usr/lib -lz -lm -ldl

# source files:

SRCS= tutorial01.c tutorial02.c tutorial02.h

all: libtutorial.so

libtutorial.so: tutorial01.o tutorial02.o

$(CC) $(SDFLAGS) -o $@ tutorial01.o tutorial02.o $(CRT_OBJS)

tutorial01.o: tutorial02.h

tutorial02.o: tutorial02.h

clean:

rm -f libtutorial.so *.o

在执行make的时候需要注意一下几点:

1. 指定程序需要的头文件目录 通过-I指定/cygdrive/e/cygwin/android-ndk-r4/build/platforms/android-5/arch-arm/usr/include

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Android NDK 动态

编辑录入:coldstar [复制链接] [打 印]
赞助商链接