我今天一直在浏览一些应用程序(实际上是在查看有多少使用ACRA),但注意到很多应用程序使用NDK.我已经开发了很长时间的应用程序并且还没有找到NDK的需求,并且根据Android Developer网站你不应该真正使用它,除非你需要:
一般来说,如果它对您的应用程序至关重要,您应该只使用NDK,因为您只是喜欢用C/C++编程.
所以这让我思考......我错过了什么吗?我的意思是这里只是使用NDK的一些应用程序,我真的不需要它:
WhatsApp的
TuneIn Radio Pro
TextPlus都能
微软标签
星图
SPYMouse
SoundHound
滚进洞里
Facebook的
Skype(可能加密库)
肆虐雷霆
QR Droid
PocketCloud
Camera Zoom FX
爆炸
纸相机
海洋高清屏幕保护程序
办公室套装
Instagram的
跳桌面
炮塔防御
愤怒的小鸟应用
我想我的想法可能是他们在其他平台上使用相同的代码,用C语言编写并在iOS,Android和其他平台上使用的库,但我只是不相信这就是原因.这些应用程序可能使用NDK还有其他任何东西吗?我想其他的可能是:许可,隐私/安全(移动复杂的逆向工程),设备ID,游戏引擎等.
无论如何,问题是,你有没有想过为什么这么多的应用程序使用NDK?
不确定这个问题是否适合StackOveflow,但作为使用NDK的开发人员,我可以从我的角度给出两个理由:
C++中非常大的代码库,也用于iPhone和Winrt上的版本,以及Windows CE/Desktop.这是开发人员多年,修复,由许多用户测试.
黑客更难以了解你的代码正在做什么,并打破它.但并非不可能.