1. 你得知道,android开发打一开始就是java的事,没其它语言什么事情,就是说google提供的android sdk中的api都是java的api
2. 至于强大的跨平台语言,你懂的,非c/c++莫属,说java是跨平台,那是扯淡,没java虚拟机看你能跑java不, 而c/c++语言是将程序直接编译成本地机器码,这与java这种语言是完全不一样的
那么问题来了,我开发游戏要使用跨平台的语言比如说C++,但是android是用java开发的,我用C++写的代码没法在android下面编译,运行.  将C++程序员拒之门外, google不会做这么蠢的事情

好,第一个问题就是,如何在android下面编译并运行C++写的代码呢
答案就是:在android下面使用ndk编译c/c++

在这里有一些东西要我要给自己科普一下
在java的平台上有一个叫jni的东西,它的功能就是允许java代码与其它语言写的代码进行交互
在NDK r5之前,你想在android下面使用c/c++进行开发,只能写成动态链接库,然后在java中以jni来调用这些库
NDK r5之后,你就可以使用纯C/C++来开发android程序了,这是2011年的事情了
到今天2015年初,有一个问题很多人都搞不懂,为什么在android上面非要搞一个jvm呢,本来嵌入式开发cpu和内存都是很宝贵的资源,而在这方面的控制C/C++做的比JAVA好
至于原因,个人觉得吧,现在硬件厂商实在是太多了,你在PC上面开发程序一般都是跑在同种操作系统下面的,而操作系统屏蔽了这些硬件之间的差异,但是android并没有在系统这一级别屏蔽硬件之间的差异,而是通过JVM来屏蔽硬件之间的差异,也就是说在android系统上面再搞一个jvm系统,也难怪它有一点点慢了
不过最新的android系统已经支持直接使用C/C++编译成本地语言运行,而不在jvm上面运行了,我觉得android还是很有搞头的

好了,现在回头,说说NDK, 前面说了在android使用NDK来将C++代码编译成库,然后由java通过jni来调用这些库
那什么是NDK呢,google官方给的解释就是SDK前面加上Native,那么叫NSDK咯,他想了想,还是叫NDK比较好,这只是称谓而已
那什么是NDK呢,它是一套工具集,允许你用C++语言实现应用的一部分

OK, 我们来创建一个android项目
所有的本地代码都会存储到一个叫jni的文件夹中,打开它来看看吧
有一个Android.mk 文件, 它是用来构建项目的
有一个Application.mk 文件, 它是用来存储编译参数的(虽然它不是必须的)
再创建个ndk-build文件来显示编译过程(同样也不是必须的)

参考文档
http://www.importnew.com/8038.html
http://www.importnew.com/8052.html
http://www.cnblogs.com/qq78292959/category/304331.html        <这个是android ndk翻译系列>

转载于:https://www.cnblogs.com/emyueguang/p/4309687.html

给自己的android扫盲文 - 1相关推荐

  1. 怎么看android sdk 文档

    1.我建议大家要养成一个习惯,以后遇到疑问时,首先应该想到去sdk文档上查找,然后再去百度上google:这样做一来可以锻炼自己理解E文的能力,二来也会让自己的印象更深刻些 1号区域:标签栏,各个标签 ...

  2. android sdk 文档导读之前传:初涉

    看到csdn博客上面其它大牛的系列性android博客,小弟确实十分羡慕.所以经过一番思想斗争后,小弟终于要打算写写系列性的博客了.通过对一些选题的推敲,我决定对android的sdk文档进行一个比较 ...

  3. 看完就能出去神侃,来自研发第一线的“区块链”扫盲文(二)

    (图片出自网络,版权归原作者所有) 原文摘自公众号,<区什么块什么链啊>之<看完就能出去神侃,来自研发第一线的"区块链"扫盲文(二)> 共识机制,是不是听上 ...

  4. Android入门文档

    该文章为网络材料整理,部分内容经过重新编写. 一. 名词介绍 JDK:Java Development Kit Java 语言的软件开发工具包 JRE:Java Runtime Environment ...

  5. 快速打开Android离线文档

    Android离线文档从4.0之后,打开时都需要花费很长的时间连接Google服务器,对于墙内的小伙伴就非常麻烦了(有VPN的请绕道). 这样就导致离线文档打开很慢,那么有没有办法快速打开呢(废话.. ...

  6. Android扫盲教程大全经典教程全分享

    Android扫盲1之如何安装卸载软件 Android的软件安装相当简便,在网络上找到自己喜欢的应用程序或者游戏等,下载下来之后,连接数据线,将apk文件放进手机SD卡里,在通过文件管理器打开文件,找 ...

  7. Android 学习文档整理收集

    利用闲暇时间整理了一份 Android 学习文档整理收集,希望能够对大家有所帮助,也欢迎各位帮忙补充. Android Android基础入门教程 CSDN主题Android专栏 极客头条Androi ...

  8. Android Source 文档(微调-电耗-1概览)感谢Google.cn,附链接。

    Android 官方网站是:https://www.android.com/ 其下的开发者网站是:https://developer.android.com/ 其下的源代码文档网站是:https:// ...

  9. 百度云api android,帮助文档首页/百度移动统计API/百度移动统计 Android版SDK - 百度开放云平台...

    百度移动统计SDK 一.简介 百度移动统计SDK(Android)是百度官方推出的移动统计SDK在Android平台上的版本(以下简称SDK).SDK的发行版本(完整下载包为android.zip)中 ...

最新文章

  1. 文巾解题 160. 相交链表
  2. 【PAT乙级】1075 链表元素分类 (25 分)
  3. poj 1716(贪心)
  4. netty获取玩家chanel_Netty4.X 获取客户端IP
  5. oracle session status killed,进程状态为KILLED的进程如何杀掉
  6. c++和java哪个好学_【技术科普】C语言和java语言有些什么区别?
  7. 9种排序算法 3_希尔排序
  8. Flash CS4 Professional 10.0.2简体中文版下载地址
  9. Apache HttpClient4使用教程
  10. Python学习笔记-2017.5.4thon学习笔记-2017.5.19
  11. 前沿重器[26] | 预训练模型的领域适配问题
  12. 机器学习:混淆矩阵、准确率、错误率、灵敏度、特异度、精准率、召回率、F-Measure、ROC曲线 PR曲线
  13. 新电脑如何进行磁盘分区?
  14. P1308 [NOIP2011 普及组] 统计单词数
  15. java计算机毕业设计健康生活网站源程序+mysql+系统+lw文档+远程调试
  16. 抖音 触摸精灵_touchscale.co在哪里玩 抖音爆火触摸称重游戏是什么
  17. Bzoj4698: [Sdoi2008]Sandy的卡片
  18. zigbee协议重要英文缩写
  19. 技术书籍也香艳——《Head Fisrt 设计模式》
  20. android资源收藏

热门文章

  1. Tyvj4071放射性辐射尘题解
  2. html 设置图片左对齐,CSS设置图片的对齐
  3. Android webview和HTML的JS交互
  4. 苹果Mac电脑 如何设置Outlook企业邮箱
  5. linux高级格式化磁盘,linux下格式化磁盘及分区
  6. php工具箱在win10自动退出,win10游戏闪退修复办法
  7. 机器学习Sklearn——红酒分类案例详解决策树模型参数
  8. 《视觉slam十四讲》初学小白笔记(10)
  9. Python实现GWO智能灰狼优化算法优化支持向量机分类模型(SVC算法)项目实战
  10. 程序员月入百万的真相!