android开发教程(八)——环境搭建之java-ndk
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 (see
docs/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类似的东东。
- 在应用程序开发中,把本地代码放到工程的jni目录下:
<project>/jni/
- 建立
<project>/jni/Android.mk
用于描述编译 - 可选:
建立<project>/jni/Application.mk
. - 用ndk-build脚本编译本地代码:
cd <project>
<ndk>/ndk-build - 完成后,用普通的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的更多相关文章
- Android开发学习总结(一)——搭建最新版本的Android开发环境
Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是 ...
- Android NDK开发之从环境搭建到Demo级十步流
写在正文之前: 几个月没有更新博客,感觉有点生疏了,所以说不能断,一断人就懒. 其实这几个月也并不是什么事也没有做,俺可是时刻想着今年的任务呢,10本书,30篇博文...,这几个月间断性的也是在学习中 ...
- ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置
原文地址: ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.c ...
- Android下OpenCV的环境搭建
目录(?)[-] 前言 系统环境 相关工具 Android ADT环境搭建 Android SDK环境变量的配置 Android NDK的安装与配置 OpenCV for Android 环境搭建 基 ...
- ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map
原文地址: ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NE ...
- Tiny4412 开发板 编译环境搭建【转】
本文转载自:http://blog.csdn.net/beijiwei/article/details/51055369 版权声明:本文为博主原创文章,未经博主允许不得转载. /*********** ...
- 一、Android学习第一天——环境搭建(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第一天——环境搭建 Android 开发环境的搭建 ...
- Android开发教程大全介绍
Android是由谷歌在2007年推出的一个开放系统平台,主要针对移动设备市场,目前版本为Android 4.0.Android基于Linux,开发者可以使用Java或C/C++开发Android应用 ...
- ArcGIS Runtime for Android开发教程V2.0(1)基本概念
原文地址: ArcGIS Runtime for Android开发教程V2.0(1)基本概念 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csd ...
- 【Android 开发教程】动态添加Fragments
本章节翻译自<Beginning-Android-4-Application-Development>,如有翻译不当的地方,敬请指出. 原书购买地址http://www.amazon.co ...
随机推荐
- sqlserver错误"试图扩大物理文件时,MODIFY FILE 遇到操作系统错误 112(磁盘空间不足。)。"处理
正常还原的时候报错: Microsoft SQL-DMO (ODBC SQLState: 42000)---------------------------试图扩大物理文件时,MODIFY FILE ...
- UVALive 2238 Fixed Partition Memory Management(二分完美匹配)
题意:计算机中有一些固定大小的内存,内存越大,处理速度越快.对于一个程序,加入不同的内存空间,处理所需时间不同.现给出m个内存空间,n个程序,对于每个程序程序,有k组数据(s,t),分别表示当程序 i ...
- LeetCode: Single Number I && II
I title: Given an array of integers, every element appears twice except for one. Find that single on ...
- ubuntun安装ssh,并远程链接服务器操作
SSH是一种以安全.加密方式连接远程主机或服务器的方法.SSH服务器接受从有SSH的客户机的连接,允许操作者象在本地一样地登录系统.你可以用SSH从远程运行shell和X程序. (1)安装SSH服务器 ...
- hihocoder 1233 Boxes
题意:类汉诺塔的一个东西……移动规则与汉诺塔一样,但初始状态为题目中给出的每根棍上一个盘子,目标状态为盘子在棍上按大小顺序排列,盘子只能在相邻的棍儿上移动. 解法:广搜并打表记录从目标状态到所有可能的 ...
- Redis,Memcache,mongoDB的区别
从以下几个维度,对redis.memcache.mongoDB 做了对比,欢迎拍砖 1.性能 都比较高,性能对我们来说应该都不是瓶颈 总体来讲,TPS方面redis和memcache差不多,要大于mo ...
- HDU5780 gcd (BestCoder Round #85 E) 欧拉函数预处理——分块优化
分析(官方题解): 一点感想: 首先上面那个等式成立,然后就是求枚举gcd算贡献就好了,枚举gcd当时赛场上写了一发O(nlogn)的反演,写完过了样例,想交发现结束了 吐槽自己手速慢,但是发了题解后 ...
- [BILL WEI] stimulsoft 分组页眉页脚的使用
我们在通过stimulsoft设计报表的时候,有的时候,需要做出如下图报表样式 这个时候,因为箱号是分开扩展的,我们就需要用到分组页眉了,如下图demo跟实例所示:
- WEB安全性测试测试用例(基础)
建立整体的威胁模型,测试溢出漏洞.信息泄漏.错误处理.SQL 注入.身份验证和授权错误. 输入验证 客户端验证服务器端验证(禁用脚本调试,禁用Cookies) 1.输入很大的数(如4,294,967, ...
- The Automated Testing Handbook 自动化测试手册简介
Learn what works, what doesn't and why. The Automated Testing Handbook is a practical blueprint for ...