目录

android ndk是android用于开发本地代码的开发工具包。它提供C/C++交叉编译工具。android内核、驱动、已有的C/C++代码,都需要ndk来支持开发。

目前支持以下平台:arm、mpis、x86

  • ARMv5TE, including Thumb-1 instructions (see docs/CPU-ARCH-ABIS.html for moreinformation)
  • ARMv7-A, including Thumb-2 and VFPv3-D16 instructions, with optional support for NEON/VFPv3-D32 instructions (seedocs/CPU-ARM-NEON.html for more information)
  • x86 instructions (see docs/CPU-X86.html for more information)
  • MIPS instructions (see docs/CPU-MIPS.html for more information)

官网:http://developer.android.com/tools/sdk/ndk/index.html

下载:http://developer.android.com/tools/sdk/ndk/index.html

解压

k@k-C410:/data/android-ndk-r9$ ls
build               ndk-build.cmd  ndk-gdb-py.cmd  README.TXT   toolchains
docs                ndk-depends    ndk-stack       RELEASE.TXT
documentation.html  ndk-gdb        ndk-which       samples
GNUmakefile         ndk-gdb-py     platforms       sources
ndk-build           ndk-gdb.py     prebuilt        tests

设置环境变量:

linux下:

export ANDROID_NDK=/data/android-ndk-r9

export PATH=$PATH:$ANDROID_NDK

windows下:

可以配合cygwin使用,配合cygwin使用时,和linux一样。

如果单独使用:

需要把安装目录加入到环境变量PATH中。

ndk内容:

ndk-build:工程管理脚本工具,google自己搞的与automake类似的东东。

  1. 在应用程序开发中,把本地代码放到工程的jni目录下:<project>/jni/
  2. 建立<project>/jni/Android.mk用于描述编译
  3. 可选:建立<project>/jni/Application.mk.
  4. 用ndk-build脚本编译本地代码:
    cd <project>
    <ndk>/ndk-build
  5. 完成后,用普通的sdk编译方法,sdk工具会把本地代码打包进apk中。

platforms :android平台系统的库和头文件

k@k-C410:/data/android-ndk-r9/platforms/android-14/arch-arm/usr/lib$ ls
crtbegin_dynamic.o  libc.a           libjnigraphics.so  libstdc++.a
crtbegin_so.o       libc.so          liblog.so          libstdc++.so
crtbegin_static.o   libdl.so         libm.a             libthread_db.so
crtend_android.o    libEGL.so        libm.so            libz.so
crtend_so.o         libGLESv1_CM.so  libOpenMAXAL.so
libandroid.so       libGLESv2.so     libOpenSLES.so

  • libc (C library) headers
  • libm (math library) headers
  • JNI interface headers
  • libz (Zlib compression) headers
  • liblog (Android logging) header
  • OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers
  • libjnigraphics (Pixel buffer access) header (for Android 2.2 and above).
  • A Minimal set of headers for C++ support
  • OpenSL ES native audio libraries
  • Android native application APIS

toolchains:c/c++交叉编译工具

k@k-C410:/data/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin$ ls
arm-linux-androideabi-addr2line   arm-linux-androideabi-gprof
arm-linux-androideabi-ar          arm-linux-androideabi-ld
arm-linux-androideabi-as          arm-linux-androideabi-ld.bfd
arm-linux-androideabi-c++         arm-linux-androideabi-ld.gold
arm-linux-androideabi-c++filt     arm-linux-androideabi-ld.mcld
arm-linux-androideabi-cpp         arm-linux-androideabi-nm
arm-linux-androideabi-elfedit     arm-linux-androideabi-objcopy
arm-linux-androideabi-g++         arm-linux-androideabi-objdump
arm-linux-androideabi-gcc         arm-linux-androideabi-ranlib
arm-linux-androideabi-gcc-4.8     arm-linux-androideabi-readelf
arm-linux-androideabi-gcc-ar      arm-linux-androideabi-run
arm-linux-androideabi-gcc-nm      arm-linux-androideabi-size
arm-linux-androideabi-gcc-ranlib  arm-linux-androideabi-strings
arm-linux-androideabi-gcov        arm-linux-androideabi-strip
arm-linux-androideabi-gdb

sources:源文件,包括c++stl。

k@k-C410:/data/android-ndk-r9/sources/cxx-stl$ ls
gabi++  gnu-libstdc++  stlport  system

docs:文档

samples:例子代码

android开发教程(八)——环境搭建之java-ndk的更多相关文章

  1. Android开发学习总结(一)——搭建最新版本的Android开发环境

    Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是 ...

  2. Android NDK开发之从环境搭建到Demo级十步流

    写在正文之前: 几个月没有更新博客,感觉有点生疏了,所以说不能断,一断人就懒. 其实这几个月也并不是什么事也没有做,俺可是时刻想着今年的任务呢,10本书,30篇博文...,这几个月间断性的也是在学习中 ...

  3. ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置

    原文地址: ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.c ...

  4. Android下OpenCV的环境搭建

    目录(?)[-] 前言 系统环境 相关工具 Android ADT环境搭建 Android SDK环境变量的配置 Android NDK的安装与配置 OpenCV for Android 环境搭建 基 ...

  5. ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map

    原文地址: ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NE ...

  6. Tiny4412 开发板 编译环境搭建【转】

    本文转载自:http://blog.csdn.net/beijiwei/article/details/51055369 版权声明:本文为博主原创文章,未经博主允许不得转载. /*********** ...

  7. 一、Android学习第一天——环境搭建(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第一天——环境搭建 Android 开发环境的搭建 ...

  8. Android开发教程大全介绍

    Android是由谷歌在2007年推出的一个开放系统平台,主要针对移动设备市场,目前版本为Android 4.0.Android基于Linux,开发者可以使用Java或C/C++开发Android应用 ...

  9. ArcGIS Runtime for Android开发教程V2.0(1)基本概念

    原文地址: ArcGIS Runtime for Android开发教程V2.0(1)基本概念 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csd ...

  10. 【Android 开发教程】动态添加Fragments

    本章节翻译自<Beginning-Android-4-Application-Development>,如有翻译不当的地方,敬请指出. 原书购买地址http://www.amazon.co ...

随机推荐

  1. hdu 4609 3-idiots(快速傅里叶FFT)

    比较裸的FFT(快速傅里叶变换),也是为了这道题而去学的,厚的白书上有简单提到,不过还是推荐看算法导论,讲的很详细. 代码的话是照着别人敲的,推荐:http://www.cnblogs.com/kua ...

  2. hdu 4602 Partition(快速幂)

    推公式+快速幂 公式有很多形式,可以写矩阵 1.前n-1项和的两倍+2的(n-2)次方,这个写不出啥 2.递推式:f(n)=2*f(n-1)+2的(n-3)次方 3.公式:2的(n-k-2)次方*(n ...

  3. OK335xS psplash 进度条工作原理 hacking

    #!/bin/sh # # rc This file is responsible for starting/stopping # services when the runlevel changes ...

  4. UVA 820 Internet Bandwidth 因特网宽带(无向图,最大流,常规)

    题意:给一个无向图,每条边上都有容量的限制,要求求出给定起点和终点的最大流. 思路:每条无向边就得拆成2条,每条还得有反向边,所以共4条.源点汇点已经给出,所以不用建了.直接在图上跑最大流就可以了. ...

  5. hdu 1211 RSA

    // 表示题目意思我是理解了蛮久 英语太水了 //首先这是解密公式 m=c^d mod n// 给你 p q e 然后 n=p*q fn=(p-1)*(q-1)// 给你 e,根据公式 e*d mod ...

  6. ORACLE远程连接数据库

    1. sqlplus sqlnet.ora 文件格式NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME).客户端就会首先在tnsnames.ora文件中找orcl的记录. ...

  7. mysql优化小技巧

    对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...

  8. 给IT新男的15点建议:苦逼程序员的辛酸反省与总结

    很多人表面上看着老实巴交的,实际上内心比谁都好强.自负.虚荣.甚至阴险.工作中见的多了,也就习惯了. 有一些人,什么事都写在脸上,表面上经常得罪人,甚至让人讨厌.但是他们所表现的又未必不是真性情. 我 ...

  9. linux-LINUX试题

    ylbtech-doc:linux-LINUX试题 LINUX试题 1.A,LINUX试题返回顶部 01.{Linux题目}在使用匿名登录ftp时,用户名为(  )? (选择1项) A) login ...

  10. history命令

    在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中.通过这个文件可以查询 shell 命令 ...