C语言可以做安卓开发吗?
c语言不可以开发安卓app,安卓app是用Java语言开发,而苹果app是用C语言开发。
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
c++开发安卓app优缺点?
Android c/c++叫Android NDK。
优势:
1。效率特别高,废话JAVA是解释性语言,是把代码托管给jvm,效率能高么。事实:大型手游的核心都是c/c++编写的。(用JAVA不得卡死?)
2。安全性高,JAVA/c#等编写的程序可以反编译!而c/c++程序是编译成二进制机器码的,对应目标cpu的指令,是无法反编译的,只能反汇编。事实:比如银行应用,核心代码采用c/c++实现,界面UI用JAVA,就是为了安全。
缺陷:纯c/c++不兼容低版本Android,但可以用折中方法,编译成Linux so,再在JAVA里引用。再就是麻烦,比JAVA难
如何建立windows下基于C语言的android开发?
回答这个问题之前,我先来带大家看几个名词概念。
什么是SDK?
SDK(software development kit),顾名思义,也就是软件开发工具包的意思!她包括特定软件包、软件框架、硬件平台、以及操作系统等开发应用软件的开发工具集合。那么Android SDK,就是Android开发者工具包的意思。
什么是JNI?
JNI的全称是Java Native Interface (我们把它叫做Java本地编程接口),它的存在是方便Java代码和其他语言写的代码进行交互。
什么是NDK?
NDK(native development kit),我们姑且称之为本地或者说原生开发工具包,因为Android本身是基于Linux的,所以从诞生一开始就是支持C/C++开发的,只是早期谷歌官方不支持,开发难度极大,直到有一天NDK出现。
那么为什么Android需要C语言进行开发?到底windows下如何基于C语言进行Android开发?可以纯C开发吗?
apk的java代码很容易被反编译,但是C/C++代码反汇难度较大,而几乎大部分的开源库都是C/C++,并且C/C++的执行效率是要远超过基于虚拟机的Java代码的,并且可移植性能非常好,所以C/C++开发就应用而生,Google很显然也发现了这一点。
说了这么多你大概心里有底了,也就是说你只需要在安装NDK就可以很好的在Windows上进行Java开发了,它提供了一系列工具,帮助开发者快速开发C/C++动态库,并能自动将so和java应用一起打包成apk文件,还集成了交叉编译器,可以说非常方便。
但是NDK所提供的API非常有限,C 标准库、标准数学库、压缩库、Log 库等,这就是目前能支持的库。
即使Google曾多次表示要进一步完善NDK生态,并且表明要加强NDK的调试能力,但是很显然这并不是Android的主流开发方式,至少目前还是Java,但是未来会是什么语言?Go、Python、kotlin?我们不得而知,毕竟现在很多App都用JavaScript做Web App了。
所以原生C是难度很大了,不过混合开发还是比较常见的。