精力都放在安卓上。所以说呢C这个东西不要纠结太多,对大家的要求就是能看懂,会调用。

Java的特点是一处编译到处运行,跨平台。优势是比native语言强,一处编译到处运行。native语言的劣势是不能跨平台。linux上不能用qq。

今天咱们要写的是native,写C,今天咱们要写程序部署到安卓的设备上。安卓设备是linux操作系统,而我现在是想在windows上编写native,本地的代码,然后我想让它运行在linux上。

native平台相关性强。现在咱们是在windows上写程序,最后想让它运行在安卓的手机上。


说一个概念:交叉编译。在一个平台上编译出在另外一个平台上可以运行的本地代码。

平台  cpu平台  x86(intel和amd)  arm(手机上使用的就是arm架构的cpu)  arm与pc上跑的这个x86架构的cpu在指令集和整个硬件的结构都是有区别的。 mips  少见的

安卓上最多的就是arm  pc上基本上就是这个x86.  早期的苹果电脑上是IBM搞的那个处理器,它的架构跟x86有区别,但是后来苹果跟IBM分手了,又转投入到了X86的怀抱,现在都用的           是英特尔的cpu.

操作系统平台  windows  linux  mac os   android就是一个类linux,在它基础之上进行修改.unix 实际上linux和mac os都叫一个类unix操作系统.都是在unix基础之上搞出来的这个东西.

不同的操作系统所支持的系统的命令是不一样的.x86 cpu支持的指令集和arm支持的指令集也是有区别的.

交叉编译工具的原理:模拟另外一个平台的特性进行编译.

NDK.  Native develop kit.  NDK可以帮助咱们在windows平台 x86 cpu上编译出在linux arm平台或者linux  x86平台上可以执行的二进制代码.可以编译出这样的本地代码.如果你是一个mac os的操作系统,你要下载一个mac版本的NDK来跑.它就是在mac的操作系统上mac os上模拟安卓的特点帮你编译出x86或者arm cpu可以执行的本地代码.

CDT:在eclipse上做C/C++开发的插件.你直接用它是不行的,你指定了一个NDK之后它可以帮助你编译C的代码.如果你不指定这个东西的话你直接想用它来写C的代码,要求你的操作系统,在你当前windows上得装一个C的编译环境.跑eclipse编译java的代码需要有一个JDK,JDK可以帮助你把java进行编译.CDT不包含C代码的编译工具,所以还需要装一个C的编译环境.

今天咱们主要就是写NDK的开发,NDK的包里面包含了C相关的编译的内容.


docs 在安卓下做JNI开发可能会用到的相关的这些文档.跟SDK的文档有点区别了.NDK里面每一个html页面就是一个小专题.界面也没有SDK好看,也没有中文的.

platforms  平台,有不同的安卓的版本.不同安卓版本它所支持的JNI相关的这些内容.最新的NDK版本是r11.

usr:unix  system  resource.unix系统资源.每一个类unix操作系统你都能找到usr这个目录.

include:存放跟JNI开发相关的头文件.头文件只不过是对你使用的某些函数的声明,具体的实现得有地方放才行.

lib:实现在lib里面.

需要特殊载入的咱们通过配置文件的方式把.so和.a它打包好的这些东西给它载入进来.

4.0以下的设备很少了.选android-13或者android-14即可.

samples:样例.

sources:源码.跟JNI相关的源代码.SDK的源码你愿意可以看一看,NDK的源码暂时不用看.有功夫还是看SDK的源码好过.

toolchains:工具链.交叉编译的工具链.针对不同CPU平台和不同操作系统平台所用到的交叉编译工具.

build->tools:有一系列的.sh文件..sh就是linux下的批处理命令.类似于windows下的bat文件..sh批处理命令封装了一系列的linux命令,通过它就可以去调用整个的交叉编译的工具链.调用toolchains里面的交叉编译工具,开启交叉编译的过程.

ndk-build.cmd:构建编译.交叉编译的过程是从ndk-build.cmd开始的.你想通过黑窗口在命令行里面编译一个NDK,做NDK的开发,把C的代码编译成可以在linux/安卓上运行的可执行文件,必须得使用ndk-build.cmd.所以说你想在黑窗口命令行里面搞的话就要把它放到环境变量里面.

它默认你一运行这个ndk-build会到你当前的这个文件夹里面去找有没有安卓的工程.实际上C:\Users\ZHONGZHENHUA>这个目录下没有安卓的工程.所以它报了找不到安卓工程的错.如果你没有配到环境变量里面你去敲ndk-build,它会报找不到系统命令的错误.把能够看见ndk-build的这一级目录放到环境变量里.


01_ndk目录介绍的更多相关文章

  1. JavaWeb——tomcat安装及目录介绍

    一.web web可以说,就是一套 请求->处理->响应 的流程.客户端使用浏览器(IE.FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Reque ...

  2. SharePoint常用目录介绍

    SharePoint常用目录介绍 stsadm命令管理程序目录:C:\Program Files\Common Files\Microsoft Shared\web server extensions ...

  3. Android sdk目录介绍

    android sdk目录介绍 build-tools 各版本SDK编译工具 docs 离线开发者文档Android SDK API参考文档 extras 扩展开发包,如兼容架包. platforms ...

  4. android 源码目录介绍

    Android 4.0源码目录介绍|-- Makefile|-- bionic (bionic C库)|-- bootable  (启动引导相关代码)|-- build (存放系统编译规则及gener ...

  5. weblogic基本目录介绍,位数查看,启动与发布项目,修改JVM参数,设置项目为默认项目

    这里的基本目录%base%表示安装目录,如我的目录为:E:/weblogic就是%base% 1.weblogic目录介绍 weblogic主要的目录介绍: 1.日志目录: 每个domain(域)都有 ...

  6. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

  7. Linux中 /boot 目录介绍 【转载】

    Linux中 /boot 目录介绍 转自:点击打开链接 一./boot/目录中的文件和目录 Linux系统在本地启动时,目录/boot/非常重要,其中的文件和目录有: (1)系统Kernel的配置文件 ...

  8. mysql 源代码目录及安装目录介绍

    1.源代码目录介绍: 1.BUILD    BUILD目录是编译.安装脚本目录,绝大部分以compile-开头,其中的SETUP.sh脚本为C和C++编译器设置了优化选项.2.client    cl ...

  9. mysql--mysql的安装与目录介绍

    一.mysql的下载安装 1.下载安装 1.windows10下安装 我们采用绿色免安装版, 打开你的mysql文件夹中的bin目录,我的是这个样子的 将这个路径添加入系统环境变量,首先右键此电脑-- ...

随机推荐

  1. BeanFactory和ApplicationContext

    BeanFactory是一个类的通用工厂,可以创建并管理各种类的对象 Bean工厂是Spring框架最核心的接口,它提供了高级Ioc的配置机制.BeanFeactory使管理不同类的Java对象成为可 ...

  2. 当点阵字库遇到3D

    早在遥远的DOS时代,点阵汉字库为计算机处理汉字起到了关键作用.当时的显示器在图形模式下的分辨率只有640x480甚至320x200,显示汉字直接使用点阵字库在屏幕上打点就可以了.如今的电脑屏幕甚至手 ...

  3. java mysql prepareStatement模糊查询like使用注意

    今天在使用mysql 的like语句是,发现prepareStatement的like语句和一般的=写法有一样. 当要使用prepareStatement的like查询时,按照一般写法,都会写成: S ...

  4. 洛谷 2434 [SDOI2005]区间

    [题解] 鲜活的大水题... 把区间排个序然后瞎搞就可以了,发现现在区间的左端点比之前区间的最大的右端点还大,那就增加一个答案区间.每次更新目前最大右区间. #include<cstdio> ...

  5. L2-012. 关于堆的判断(STL中heap)

    L2-012. 关于堆的判断   将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x and y ...

  6. noip模拟赛 立方数2

    题目描述LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数.LYK还定义了一个数叫“立方差数”,若一个数可以被写作是两个立 ...

  7. spark之scala快速入门

    scala和java都是在jvm之上的语言,相对来讲,scala热度比较低,其实并不是一个特别好的语言选择. 原因倒不是因为scala本身的缺点,而是使用人群不够多,论坛和社区不够活跃.这就跟社交软件 ...

  8. UIColor用自定义颜色,TableView去掉背景色

    1.用mac系统自带的数码测色计,选RGB模式,将值添加到ColorWithRed:xxx.0/255 最后的alpha选1.0 2.TableView的背景色要用setBackgroundView的 ...

  9. 使用C#执行PowerShell命令

    按照网上的教程配置会发生SSL链接错误 该文章的最后使用了SSL来保证账户在连接服务器的时候不发生账户认证错误,但是我经过测试发现这个是不可行的,有一种更为简单的方法 首先要对服务器进行winrm设置 ...

  10. CODEVS——T 1700 施工方案第二季

    http://codevs.cn/problem/1700/ 2012年市队选拔赛北京  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果   ...