使用NDK代码Android打开/关闭相机LED

时间:2015-03-15 16:18:34

标签: android android-ndk led galaxy-nexus

我想询问是否有办法使用NDK代码打开/关闭相机的LED。我使用Java代码完成了它,但我需要更快地完成它,所以我认为NDK代码是我正在寻找的。还有另一种方式吗?

我正在尝试在Galaxy Nexus上进行此操作,但我无法找到LED控制文件以设置其亮度。有什么帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

坚持使用 Java实施。(没有Google提供NDK API。)

其他Google群组讨论提出同样的问题:

https://groups.google.com/forum/#!topic/android-ndk/EK3gPnu30Nw

https://groups.google.com/forum/#!msg/android-ndk/AyEMaRshntM/qlmnXptzfDMJ

请阅读有关Android的“效果提示”。 Google明确表示不要将NDK用于“移植”而不是“加速”:

  

当您拥有要移植到Android的现有本机代码库时,本机代码非常有用,而不是“加速”使用Java语言编写的Android应用程序部分。

在此处阅读有关NDK性能提示的全部内容:

  

小心使用原生方法

     

使用Android NDK使用本机代码开发应用程序不一定比使用Java语言编程更有效。首先,与Java本机转换相关的成本,JIT无法跨越这些边界进行优化。如果您要分配本机资源(本机堆上的内存,文件描述符或其他内容),那么安排及时收集这些资源可能要困难得多。您还需要为要运行的每个体系结构编译代码(而不是依赖于具有JIT的体系结构)。您可能甚至需要为您认为相同的架构编译多个版本:为G1中的ARM处理器编译的本机代码无法充分利用Nexus One中的ARM,以及为Nexus One中的ARM编译的代码不会在G1中的ARM上运行。

     

当您拥有要移植到Android的现有本机代码库时,本机代码非常有用,而不是“加速”使用Java语言编写的Android应用程序部分。

     

如果您确实需要使用本机代码,则应阅读我们的JNI技巧。

     

提示:另见Josh Bloch的Effective Java,第54项。

来源:http://developer.android.com/training/articles/perf-tips.html#NativeMethods