您的位置:首页 > 移动开发 > Android开发

【Android Native Code开发系列】四 编译自己的Native Code

2016-05-07 20:57 423 查看
注意:

1。 系列六里也有一些编译相关的技巧

2。 编译过程中,如果出现需要类似缺少libxxx.so这样的出错信息,请到源码主目录编译此库: make libxxx

#######################################

编译自己的Native Code

#######################################

# 在有Android源码的条件下,编译自己的native代码

1. 写好自己的c/c++工程代码,放在mymodule目录,并设置好同目录下的Android.mk

比如要编译一个动态库,代码为ZPService.h和ZPService.cpp,则这样配置:

----------------------------------------------

LOCAL_PATH:=$(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES:=ZPService.cpp // 源代码

LOCAL_SHARED_LIBRARIES:=libutils libbinder // 依赖库

LOCAL_MODULE_TAGS:=optional // 不要忘了这行

LOCAL_MODULE:=ZPService // 生成库名,前面不需要加lib

LOCAL_PRELINK_MODULE:=false

// 编译成库, 若编译成可执行文件,则为

// include $(BUILD_EXECUTABLE)

include $(BUILD_SHARED_LIBRARY)

---------------------------------------------

2. 把源代码目录mymodule放在android/development/下

3. (1)进入android根目录,运行

source build/envsetup.sh

(2)或者,先运行source build/envsetup.sh,再进入mymodule目录,运行

mm

4. make libZPService

5. 生成的文件将放在android/out/target/product/generic/system下的bin

或lib目录,这要视你要编成库还是可执行文件而定

# 使用下载的ndk编译自己的native代码

1. 建立工程目录ndktest, 再建立子目录jni, 在jni下放置native代码和Android.mk, 如下所示:

../ndktest

`-- jni

|-- Android.mk

`-- test.cpp

2. 进入工程主目录下, 调用ndk-build编译

zp@zp-desktop:~/ndktest$ ~/android-ndk-r7/ndk-build

Compile++ thumb : zptest <= test.cpp

StaticLibrary : libstdc++.a

Executable : zptest

Install : zptest => libs/armeabi/zptest

3. 如2所示, 生成的zptest位于ndktest/libs/armeabi目录. 编译后的目录结构如下:

../ndktest

|-- jni

| |-- Android.mk

| `-- test.cpp

|-- libs

| `-- armeabi

| `-- zptest

`-- obj

`-- local

`-- armeabi

|-- libstdc++.a

|-- objs

| `-- zptest

| |-- test.o

| `-- test.o.d

`-- zptest
http://blog.csdn.net/blackboyofsnp/article/details/7242564
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: