Android中IDE、ADT、SDK、JDK、NDK的解释
1. IDE:Intelligent Development Environm的简称。即智能开发环境。是一种开发工具。常用的IDE有adt-bundles和Android studio。两个都需要配置jdk。
2. ADT:Android Development tools的简称。即Android开发工具。ADT为Eclipse的插件。在Eclipse和SDK之间起了一个桥梁的作用。
3. SDK:Soft Development Kit的简称。软件开发工具包。在Android中,它为开发者提供了库文件以及其它开发所用到的工具。
4. JDK:Java的开发工具包。包括了Java运行环境、Java工具和Java基础类库。
5. NDK概念:
(1)NDK是一系列工具的集合。帮助开发者快速开发C/C++的动态库。
并能自动将so和Java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
(2)NDK将是Android平台开发支持C开发的开端。
作用:
(1)代码的保护。由于Java层代码很容易被反编译,而C/C++库反编译难度很大。
(2)可以方便的使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
(3)提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
(4)便于移植。用C/C++写的库可以方便的在其他的嵌入式平台上再次使用。
在ubuntu下安装配置android ndk
1.下载android-ndk64-r10b-Linux-x86_64.tar.bz2,下载地址:http://dl.google.com/android/ndk/android-ndk64-r10b-linux-x86_64.tar.bz2
2. 把下载好的android-ndk64-r10b版本解压($ sudo tar -C /home/davebobo -xvf android-ndk64-r10b-linux-x86_64.tar.bz2)到/home/davebobo目录下(注:把你的ndk文件放到你的主页Home下,davebobo这个文件夹是我的,我的ubuntu计算机名为davebobo,即/home/davebobo这个目录也就是/主文件夹/公共的可视化桌面gui,这个目录可以随意换)。
3.配置环境变量命令:$sudo gedit ~/.bashrc
export NDK=/home/davebobo/android-ndk-r10b
export PATH=${PATH}:$NDK 保存关闭。
6.ndk-build看看咱们配置环境变量成功没,只要没出command not found就证明环境变量配置成功,如果成功显示如下,
但是由于Android系统使用的不是glibc而是Bionic libc。因此只能使用静态编译程序。
其实Android的NDK自带了toolchain,但是不能直接使用NDK目录内的toolchain,否则会出现找不到crtbegin_dynamic.o文件。
即使用-L指定目录或者直接放到gcc命令行也还是提示该文件找不到。
其实Android NDK提供了脚本来剥离出单独的toolchain,脚本的名字叫make-standalone-toolchain.sh
1. 下载Android NDK
2. 解压NDK至指定目录下
cd到android-ndk-r10b
build/tools/make-standalone-toolchain.sh --platform=android-L
默认便在[/tmp/ndk-NAME]目录下生成工具链
1
2
3
4
5
6
7
|
Auto-config: --toolchain=arm-linux-androideabi-4.6
Copying prebuilt binaries...
Copying sysroot headers and libraries...
Copying libstdc++ headers and libraries...
Creating package file: /tmp/ndk-juguofeng/arm-linux-androideabi-4.6.tar.bz2
Cleaning up...
Done.
|
若想生成4.9的工具链,可以这样指定
build/tools/make-standalone-toolchain.sh --platform=android-L--toolchain=arm-linux-androideabi-4.9
tar -jxvf arm-linux-androideabi-4.9.tar.bz2
原文链接:https://www.f2er.com/ubuntu/353878.html