c – Android上实时图形编程的最佳语言是什么?

c – Android上实时图形编程的最佳语言是什么?,第1张

概述有些谷歌搜索引导我相信C是实时2D图形编程的最佳语言,但是由于 Android是基于Java的,那还是最好的选择?还是我们这个事实,我不得不使用NDK来减慢或者什么?我的程序也有很多科学计算,我知道C是最好的/最快的… 我以前从来没有做过任何事情,所以我真的很无奈.如果我正在做错误的方法,请给我其他建议…我遇到的其他一些词汇是OpenGL(我有经验,但更重要的是3D,对吗?)和Canvas(不要相 有些谷歌搜索引导我相信C是实时2D图形编程的最佳语言,但是由于 Android是基于Java的,那还是最好的选择?还是我们这个事实,我不得不使用NDK来减慢或者什么?我的程序也有很多科学计算,我知道C是最好的/最快的…

我以前从来没有做过任何事情,所以我真的很无奈.如果我正在做错误的方法,请给我其他建议…我遇到的其他一些词汇是OpenGL(我有经验,但更重要的是3D,对吗?)和Canvas(不要相当得到这个)?如果我能够访问类似GPU的功能,那将是巨大的.

解决方法 AndroID应用程序是Java编写的,是的 – 但是,通过AndroID NDK,您可以在C或C中编写程序的性能关键部分.从AndroID NDK website,

The AndroID NDK is a companion tool to
the AndroID SDK that lets you build
performance-critical portions of your
apps in native code. It provIDes
headers and librarIEs that allow you
to build activitIEs,handle user
input,use harDWare sensors,access
application resources,and more,when
programming in C or C++.

也就是说,适当地使用NDK很可能不会减慢你的程序.

OpenGL适用于3D和2D图形 – 如果您只对2D感兴趣,您将需要使用正交投影来查看更多信息,请参阅glOrtho.另一方面,AndroID Canvas是将栅格图形绘制到屏幕的Java方法.它将让您渲染2D图形,但速度较慢(并且来自AndroID垃圾收集器的频繁中断).

请记住,如果要使用C,写入时没有STL实现可用.然而,有非官方的端口提供大部分的功能. STLPort是我试过一些成功的.将代码移动到C/C++的最大原因是因为AndroID Java垃圾收集器的中断 – 如果您不太注意代码,则会频繁地中断您的程序,以清理您所遗留的对象.在实践中,这可以极大地限制游戏或模拟的帧率.

所有这一切,我强烈建议你看看几个开源AndroID游戏引擎之一.我尝试过的最好的是libGDX.它负责处理所有凌乱的NDK细节,让您可以使用Java编写您的游戏/模拟.它以本机代码自动运行游戏引擎的性能很重的部分,以便在Java中轻松编写代码以获得最快的性能.最重要的是,您可以编写一次应用程序代码,并在windows,linux,OSX和AndroID上自动运行,这使得测试应用程序比使用AndroID Emulator容易得多.

如果您真的想自己查看NDK,或者需要对OpenGL正在做的很好的控制,那么建议您下载AndroID SDK和NDK,然后再开始使用NDK样本.有一个OpenGL演示,向您展示如何设置所有内容.另一个好的起点就是SpinningCube的Google项目.

编辑:我不太确定“像GPU这样的功能”是什么意思,但是使用libGDX,您可以在OpenGL ES 2.0下编译顶点和片段着色器,您可以使用该设备在GPU中运行尴尬的并行代码.

总结

以上是内存溢出为你收集整理的c – Android上实时图形编程的最佳语言是什么?全部内容,希望文章能够帮你解决c – Android上实时图形编程的最佳语言是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1252985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存