给自己的android扫盲文 - 1
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相关推荐
- 怎么看android sdk 文档
1.我建议大家要养成一个习惯,以后遇到疑问时,首先应该想到去sdk文档上查找,然后再去百度上google:这样做一来可以锻炼自己理解E文的能力,二来也会让自己的印象更深刻些 1号区域:标签栏,各个标签 ...
- android sdk 文档导读之前传:初涉
看到csdn博客上面其它大牛的系列性android博客,小弟确实十分羡慕.所以经过一番思想斗争后,小弟终于要打算写写系列性的博客了.通过对一些选题的推敲,我决定对android的sdk文档进行一个比较 ...
- 看完就能出去神侃,来自研发第一线的“区块链”扫盲文(二)
(图片出自网络,版权归原作者所有) 原文摘自公众号,<区什么块什么链啊>之<看完就能出去神侃,来自研发第一线的"区块链"扫盲文(二)> 共识机制,是不是听上 ...
- Android入门文档
该文章为网络材料整理,部分内容经过重新编写. 一. 名词介绍 JDK:Java Development Kit Java 语言的软件开发工具包 JRE:Java Runtime Environment ...
- 快速打开Android离线文档
Android离线文档从4.0之后,打开时都需要花费很长的时间连接Google服务器,对于墙内的小伙伴就非常麻烦了(有VPN的请绕道). 这样就导致离线文档打开很慢,那么有没有办法快速打开呢(废话.. ...
- Android扫盲教程大全经典教程全分享
Android扫盲1之如何安装卸载软件 Android的软件安装相当简便,在网络上找到自己喜欢的应用程序或者游戏等,下载下来之后,连接数据线,将apk文件放进手机SD卡里,在通过文件管理器打开文件,找 ...
- Android 学习文档整理收集
利用闲暇时间整理了一份 Android 学习文档整理收集,希望能够对大家有所帮助,也欢迎各位帮忙补充. Android Android基础入门教程 CSDN主题Android专栏 极客头条Androi ...
- Android Source 文档(微调-电耗-1概览)感谢Google.cn,附链接。
Android 官方网站是:https://www.android.com/ 其下的开发者网站是:https://developer.android.com/ 其下的源代码文档网站是:https:// ...
- 百度云api android,帮助文档首页/百度移动统计API/百度移动统计 Android版SDK - 百度开放云平台...
百度移动统计SDK 一.简介 百度移动统计SDK(Android)是百度官方推出的移动统计SDK在Android平台上的版本(以下简称SDK).SDK的发行版本(完整下载包为android.zip)中 ...
最新文章
- 文巾解题 160. 相交链表
- 【PAT乙级】1075 链表元素分类 (25 分)
- poj 1716(贪心)
- netty获取玩家chanel_Netty4.X 获取客户端IP
- oracle session status killed,进程状态为KILLED的进程如何杀掉
- c++和java哪个好学_【技术科普】C语言和java语言有些什么区别?
- 9种排序算法 3_希尔排序
- Flash CS4 Professional 10.0.2简体中文版下载地址
- Apache HttpClient4使用教程
- Python学习笔记-2017.5.4thon学习笔记-2017.5.19
- 前沿重器[26] | 预训练模型的领域适配问题
- 机器学习:混淆矩阵、准确率、错误率、灵敏度、特异度、精准率、召回率、F-Measure、ROC曲线 PR曲线
- 新电脑如何进行磁盘分区?
- P1308 [NOIP2011 普及组] 统计单词数
- java计算机毕业设计健康生活网站源程序+mysql+系统+lw文档+远程调试
- 抖音 触摸精灵_touchscale.co在哪里玩 抖音爆火触摸称重游戏是什么
- Bzoj4698: [Sdoi2008]Sandy的卡片
- zigbee协议重要英文缩写
- 技术书籍也香艳——《Head Fisrt 设计模式》
- android资源收藏