多语言展示
当前在线:1169今日阅读:39今日分享:10

androidndk视频教程

生活中有这许许多多的烦恼,下面就由小编教你androidndk视频教程,希望你的生活多姿多彩~
工具/原料
1

手机

2

电脑

方法/步骤
1

一、用NDK进行C代码的调取(已熟悉此调取技术)二、摄像头的获取,这个不能用SDK来调,因为用SDK来调头部跟踪程序很难获得我们的数据,也不大能考虑AIDL跨进程通信的方案,因为这样数据交互可能太慢。问题:头部跟踪移植到Android系统中,跟踪程序需通过核心程序(C实现)调取Camera而不是通过Android SDK进行调取Camera。前提:Android的四个层次如下,一个完成的Android应用,一般都是有Java框架的,虽然NDK(Native Development Kit,一系列工具的集合)提供了一系列的工具,帮助开发者快速开发 C (或 C++ )的动态库,并能自动将 so 和 java 应用一起打包成 apk 。但是NDK 并没有提供各种系统事件处理支持,也没有提供应用程序生命周期维护。此外,在本次发布的 NDK 中,应用程序 UI 方面的 API 也没有提供。至少目前来说,使用纯 C 、 C++ 开发一个完整应用的条件还不完备。所以,就目前来说,必须依赖上层Java框架的支持。

2

解决方案:初步考虑有三种方式可以实现:一、由于Android是运行在Linux上的,所以可以考虑让C程序调V4L2  接口来获取摄像头数据。Video4linux2(简称V4L2),是linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。,不过可移植性差,因为不同厂家的设备驱动接口可能不完全一样,另外也要求开发者熟悉Linux内核编译。

3

二、SDK获取摄像头数据,再用JNI调C来处理图像,也就是使用JNI来调取跟踪程序并进行数据交互。

4

三、通过查看Android系统的底层代码,发现Android系统调摄像头也是通过JNI编程来实现的,所以考虑到是否能在JNI调用的Android底层Camera的底层流程中增加一步添加自己的业务逻辑。

5

具体表现在调取Camera之前先启动头像识别程序,让头像识别程序去调Camera设备并获得进行数据交互,比如可以考虑在人像识别中调取android_hardware_Camera.cpp。

注意事项

要有耐心

推荐信息