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

/*
* blackboy   psyc209@163.com
* QQ群: 135202158
* 转载请注明作者及出处
*/


注意:

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值