我今天浏览了一些应用程序(实际上是想看看有多少使用 ACRA),但注意到其中很多使用 NDK。我已经开发应用程序很长一段时间了,但还没有找到对 NDK 的需求,并且根据 Android Developer site你不应该真正使用它,除非你需要:
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++.
所以这让我开始思考......我错过了什么吗?我的意思是这里只是一些使用 NDK 的应用程序,我真的看不出需要它:
- TuneIn Radio Pro
- 文本加
- 微软标签
- 星图
- spy 鼠标
- 猎犬
- 滚进洞里
- Skype(可能是加密库)
- 怒雷
- 二维码机器人
- 掌上云
- 相机变焦效果
- 炸毁
- 纸相机
- 海洋高清屏保
- 办公套件
- 跳转桌面
- 领跑者
- 愤怒的小鸟应用
我想我的想法可能是他们在其他平台上使用相同的代码,用 C 编写并在 iOS、Android 和其他平台上使用的库,但我只是不相信这是原因。这些应用程序可能会使用 NDK 来做其他事情吗?我猜其他的事情可能是:许可、隐私/安全(移动复杂的逆向工程)、设备 ID、游戏引擎等。
无论如何,问题是真的,你知道为什么这么多应用都在使用 NDK 吗?
最佳答案
不确定这个问题是否适合 StackOveflow,但作为使用 NDK 的开发人员,我可以从我的角度给你两个理由:
非常大的 C++ 代码库,也用于 iPhone 和 Winrt 上的版本,以及 Windows CE/Desktop。它已经开发了多年,经过大量用户的修复和测试。
黑客更难了解您的代码在做什么并破解它。但并非不可能。
关于android - 为什么这么多 Android 应用使用 NDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910010/