我想问是否有办法使用NDK代码打开/关闭相机的LED。我已经使用 Java 代码完成了它,但我需要更快地完成它,所以我认为 NDK 代码是我正在寻找的。还有其他方法吗?
我正在尝试在 Galaxy Nexus 上执行此操作,但找不到 LED 控制文件以设置其亮度。有什么帮助吗?
谢谢!
我想问是否有办法使用NDK代码打开/关闭相机的LED。我已经使用 Java 代码完成了它,但我需要更快地完成它,所以我认为 NDK 代码是我正在寻找的。还有其他方法吗?
我正在尝试在 Galaxy Nexus 上执行此操作,但找不到 LED 控制文件以设置其亮度。有什么帮助吗?
谢谢!
坚持你的Java 实现。(谷歌没有提供 NDK API。)
其他 Google Group Discussions 也提出了同样的问题:
https://groups.google.com/forum/#!topic/android-ndk/EK3gPnu30Nw
https://groups.google.com/forum/#!msg/android-ndk/AyEMaRshntM/qlmnXptzfDMJ
请阅读有关 Android的“性能提示” 。谷歌明确表示不要将 NDK 用于“移植”而不是“加速”:
当您拥有想要移植到 Android 的现有本机代码库时,本机代码主要有用,而不是用于“加速”使用 Java 语言编写的 Android 应用程序的部分。
在此处阅读有关 NDK 性能提示的完整部分:
谨慎使用本机方法
使用 Android NDK 使用本机代码开发应用程序不一定比使用 Java 语言编程更有效。一方面,Java-native 转换会带来成本,而 JIT 无法跨越这些边界进行优化。如果您正在分配本机资源(本机堆上的内存、文件描述符或其他任何东西),则安排这些资源的及时收集可能要困难得多。您还需要为您希望在其上运行的每个架构编译代码(而不是依赖于它具有 JIT)。您甚至可能必须为您认为相同的架构编译多个版本:为 G1 中的 ARM 处理器编译的本机代码无法充分利用 Nexus One 中的 ARM,而为 Nexus One 中的 ARM 编译的代码韩元'
当您拥有想要移植到 Android 的现有本机代码库时,本机代码主要有用,而不是用于“加速”使用 Java 语言编写的 Android 应用程序的部分。
如果您确实需要使用本机代码,您应该阅读我们的 JNI 技巧。
提示:另请参阅 Josh Bloch 的 Effective Java,第 54 条。
来源:http: //developer.android.com/training/articles/perf-tips.html#NativeMethods