`

Android 编译NDK

 
阅读更多

记录一下自己编译NDK的方法。目录结构:

 

  1. ~/src  --android源码目录 
  2.  
  3. ~/android-ndk-r6 --google NDK目录 

1. 编译系统

 
  1. a. source build/envsetup.sh 
  2. b. choosecombo Device release msm8660_surf eng 
  3. c. make 
2.  build 
 
  1. a.src$ cd ndk/ 
  2. b.src$ ./build/tools/build-ndk-sysroot.sh 会得到 "ndk/build/platforms" 目录 
  3. c.src$ ./build/tools/build-platforms.sh  得到 ""src/ndk/samples" 跟 "src/ndk/platforms"目录 
  4.  
 
3.将我们自己的 src/prebuilt/ 的 toolchain 覆盖android-ndk-r6 里面的相应文件
 
  1. a. src$ cp -af build/platforms/android-3 ../android-ndk-r6/platforms/
  2.  
  3. b. src$ cp -af prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/* 
  4. ../android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/
  5.  
  6. c. src$ cp prebuilt/android-arm/gdbserver/gdbserver 
  7. ../android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/ 
 
4 测试 hello-jni
 
  1. $cd android-ndk-r6/samples/hello-jni 
  2. $ ./../../ndk-build 
  3. Gdbserver 
  4. : [arm-linux-androideabi-4.4.3] 
  5. libs/armeabi/gdbserver 
  6. Gdbsetup : libs/armeabi/gdb.setup 
  7. Compile thumb : hello-jni <= hello-jni.c 
  8. SharedLibrary : libhello-jni.so 
  9. Install 
  10. : libhello-jni.so => libs/armeabi/libhello-jni.so 
  11. BFD: 
  12. ~/android-ndk-r6/samples/hello-jni/libs/armeabi/ 
  13. st0hXUMa: warning: sh_link not set for section `.ARM.exidx' 
  14.  
  15. build成功 
  16.  
  17. 5. In Eclipse: 
  18. a.Click File > New Android Project... 
  19. b.Select the Create project from existing source radio button. 
  20. c.Select any API level above Android 3.1. 
  21. d.In the Location field, click Browse... and select the 
  22. <ndk-root>/samples/hello-jni directory. 
  23. e.Click Finish. 
  24. to build 
分享到:
评论

相关推荐

    Android编译ndk的两种方式

    本篇文章将深入探讨两种主要的Android NDK编译方式:ndk-build和cmake,并通过一个简单的demo来阐述它们的使用方法。 ### 1. ndk-build **ndk-build** 是早期Android NDK中默认的构建系统,它基于Makefile,适合...

    android-ndk(android-ndk-r26b-windows.zip)

    5. **预编译库集成**:如果项目依赖于第三方C/C++库,NDK可以帮助预编译这些库,使其能在Android设备上运行。 6. **安全与隐私**:某些敏感操作,如加密算法,可能更适合在本地代码中执行,以避免暴露Java层的敏感...

    android-ndk(android-ndk-r25b-windows.zip)

    1. **编译工具链**:NDK包含了一套针对不同架构(如armeabi-v7a, arm64-v8a, x86, x86_64等)的编译工具,可以将C/C++源代码编译为适合Android设备的二进制库。 2. **预编译库**:NDK包含了一些预编译的库,如...

    android-ndk(android-ndk-r23b-windows.zip)

    Android-ndk-r23b包含了一系列的编译器、链接器和其他工具,用于将C/C++源代码编译成可以在Android设备上运行的机器码。这个版本可能包含以下组件: 1. **交叉编译工具链**:这些工具链允许你在Windows环境下构建...

    android-ndk(android-ndk-r25b-linux.zip)

    Android NDK,全称为Native Development Kit,是Google提供的一款用于Android平台的C和C++库开发工具集。这个“android-ndk-r25b-linux.zip”文件是NDK的一个特定版本,即r25b,专为Linux操作系统设计。在Android...

    使用Android NDK编译Android平台的eXosip库

    本文将深入探讨如何使用Android NDK(Native Development Kit)来编译适用于Android平台的eXosip库,包括静态库和动态库的构建过程。 首先,eXosip是基于OSI(Open Systems Interconnection)模型的SIP协议栈,它是...

    android-ndk(android-ndk-r26b-darwin.zip)

    使用NDK开发时,可以采用Android Studio集成的NDK支持,也可以使用命令行工具直接编译。Android Studio的Gradle插件支持CMake和ndk-build两种构建方式,使得原生代码的集成更加便捷。 **注意事项** - 开发原生代码...

    android-ndk(android-ndk-r23b-linux.zip)

    Android NDK,全称为Native Development Kit,是Google提供的一款用于Android平台的C和C++库开发工具集。这个“android-ndk-r23b-linux.zip”文件是NDK的一个特定版本,即r23b,专为Linux操作系统设计。在Android...

    ubuntu下android ndk编译环境搭建详细描述

    在Ubuntu系统上搭建Android NDK编译环境是Android原生代码开发的重要步骤,适用于那些需要进行C/C++底层开发或优化的应用程序。Android NDK(Native Development Kit)是一套工具,允许开发者使用C/C++编写部分应用...

    android使用NDK编译curl库源码

    在这个场景中,我们将探讨如何在Android环境下使用NDK(Native Development Kit)编译Curl库源码。 首先,NDK是Google提供的一个工具集,允许开发者在Android应用中集成原生代码。通过NDK,我们可以编写C和C++代码...

    从Android NDK安装ARM交叉编译工具链

    从Android NDK安装ARM交叉编译工具链涉及的技术领域包括Android开发、交叉编译、NDK使用、ARM架构以及Linux环境下的编译工具使用。以下是详细的知识点解析: Android NDK(Native Development Kit)是Android应用...

    android-ndk(android-ndk-r26b-linux.zip)

    3. **交叉编译**:NDK包含了一系列的交叉编译工具链,使得开发者可以在Linux主机上编译出针对不同Android架构(如armeabi-v7a, arm64-v8a, x86, x86_64等)的原生库。 4. **性能优化**:对于计算密集型或资源敏感的...

    android-ndk(android-ndk-r25b-darwin.zip)

    `android-ndk-r25b-darwin.zip` 是针对macOS系统的NDK版本,版本号为r25b,包含了一系列用于构建、编译和调试原生代码的工具。 在Android应用开发中,NDK的主要作用和知识点包括: 1. **JNI (Java Native ...

    android-arm平台ndk交叉编译python

    这时,我们就需要用到Android NDK(Native Development Kit)进行交叉编译,将Python编译为适用于Android ARM架构的二进制代码。本文将详细讲解如何在Android ARM平台上使用NDK工具进行Python的交叉编译。 首先,...

    windows下eclipse集成cygwin编译android_NDK

    ### Windows 下 Eclipse 集成 Cygwin 编译 Android NDK 在 Windows 环境下使用 Eclipse 开发 Android 应用时,如果需要利用 C 或 C++ 的功能,通常会涉及到 Android NDK 的使用。为了更好地整合开发流程,可以将 ...

    android ndk下编译的live555源码(新版)

    在Android系统中,由于原生的Java API无法直接处理这些底层的流媒体协议,因此需要借助于NDK(Native Development Kit)来实现C或C++代码的编译,将Live555移植到Android平台。 **关于Live555:** Live555是一个...

    android-ndk-r19c-linux-x86_64.zip

    《在Ubuntu 18.04上使用QT5.13构建基于Android NDK r19c的开发环境》 Android Native Development Kit (NDK) 是Google提供的一款工具集,用于在Android平台上进行原生代码(如C/C++)的开发。NDK r19c是其中的一个...

    Android NDK android-ndk-r22b 交叉编译x264 脚本

    1、支持arm 2、支持aarch64

    android-ndk-r20b-windows-x86_64.zip

    本文将深入探讨Android NDK R20B版本,特别是其在64位Windows环境下的应用,以及如何与cygwin、FFmpeg等工具协同工作,实现视频编辑功能的动态库编译。 Android NDK是Google提供的一个开源工具集,它允许开发者在不...

    android-ndk-r17c-windows-x86_64.zip

    1. **原生库编译**:开发者可以使用NDK将C和C++代码编译为本地库,这些库可以在Android设备上运行,提高了应用程序的执行速度,特别是对于计算密集型或图形密集型应用。 2. **JNI支持**:NDK提供Java Native ...

Global site tag (gtag.js) - Google Analytics