java – 为什么Android应用程序不能用C/C++编写,因为你“只是喜欢用C/C++编程”?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 为什么Android应用程序不能用C/C++编写,因为你“只是喜欢用C/C++编程”?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2241字,纯文字阅读大概需要4分钟。
内容图文
更新(为清晰起见并减少歧义):
我将开始修补Android应用程序.我打算使用NDK编写C语言(因为我有更多的C经验,更喜欢Java)但是在Android NDK page上遇到了以下内容:
you should only use the NDK if it is essential to your
app—never because you simply prefer to program in C/C++.
我的印象是你应该使用你喜欢的语言,只要它适合这项工作.有人可以解释为什么不建议不使用C/C++进行Android开发吗?
原版的:
我将开始修改移动应用程序,特别是android,这是我当前手机的操作系统,我想知道是否用C编写应用程序(或至少是核心,然后用Java包装)是一个可以接受的选择.
一些背景,我是一个计算机科学专业,已经修了3门C课程(介绍,中级,OOP,并在春季参加STL课程),只有1门Java课程(中级).因此,我对C更熟悉,更喜欢Java.我在Android NDK page上遇到了以下内容:
Using native code on Android generally does not result in a noticeable
performance improvement, but it always increases your app complexity.
In general, you should only use the NDK if it is essential to your
app—never because you simply prefer to program in C/C++.
>我的印象是你应该使用适合的语言
这项工作以及你熟悉的工作
>我可能想将应用程序移植到另一个移动平台,例如
作为iOS,它支持C但不支持java
>虽然Java是一种高级语言,因此应该进行开发
更快,我觉得开发速度会慢一点,因为我会
重新学习几乎所有东西(因为我只上了一堂课
语言)
任何建议都会非常感激.
ps:关于这个主题的许多答案来自几年前,并且很少有后续答案提到NDK允许在android 2.3及更新版本上开发完整的原生应用程序.
解决方法:
这样想吧.您可以使用Java SDK构建一个完整的工作应用程序,该应用程序利用开发人员可用的100%API. NDK无法通过SDK完成任何操作(从API角度来看),NDK只提供更高的性能.
现在反过来看一下.如果您选择在NDK中100%编写应用程序,您仍然可以编写功能齐全的应用程序,但是您可以访问的框架API数量有限.并非所有的Android框架都可以在本机层访问;大多数API仅限Java.这并不是说您可能需要的所有API在NDK中都不可用,但是所有API都无法接近.
除此之外,NDK还引入了特定于平台的代码,扩展了分发的大小.对于您打算支持的每个设备体系结构,您的本机代码必须内置到.so文件中(一个用于armv5,armv7和x86),这些文件都打包到同一个APK中.这种可执行代码的重复使您的应用程序大小(即“胖二进制”),除非您在分发应用程序时承担为每个体系结构构建单独的APK的任务.因此,如果您不希望APK显着增长,则部署过程会变得更加有效.
同样,虽然这一切都没有阻止你做你选择的事情,但它指出了为什么谷歌将Java描述为大多数代码的“首选”方法和阻力最小的路径.我希望它能说明为什么文档的措辞方式如此.
内容总结
以上是互联网集市为您收集整理的java – 为什么Android应用程序不能用C/C++编写,因为你“只是喜欢用C/C++编程”?全部内容,希望文章能够帮你解决java – 为什么Android应用程序不能用C/C++编写,因为你“只是喜欢用C/C++编程”?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。