1 本地PIO
本地PIO的API允许通过C / C++代码来控制GPIO,I2C,SPI和UART的PWM外设以标准的PIO APIs接口访问相同的底层外围服务。使用本地的PIO接口(例如,移植现有的驱动程序编写等嵌入式平台),这可以使用C / C++或扩展java基于Android的东西应用程序用C或C++代码,写一个Android Things应用。
开始使用NDK
如果从来没有使用NDK,看到Android NDK入门指南下载安装NDK。文件还详细介绍了如何使用NDK。
获取Android things原生库
在Android的原生库中可以获取到PIO API。您将整个目录复制到Android Stuido项目的根目录中。目录结构看起来像这样:
libandroidthings
/
$
{
ABI
}/
include
/
pio
/
*.
h
lib
/
libandroidthings
.
so
你会将include/pio目录下的头文件编译到你的程序,并且当你打包你的应用时会链接libandroidthings.so库中的共享对象。在使用Android Things本地库的时候,findandroidthings.cmake CMake模块文件也可帮助您配置新的NDK项目。
本地的PIO示例
本地的PIO示例(见GitHub仓库)向你展示如何点亮一个LED灯,获取按钮的输入信号,并驱动PWM扬声器,通过在NativeActivity中调用本地的PIO的API,它能让你仅使用C / C ++就能创建一个Activity应用。
运行示例:
- 从GitHub克隆或下载的示例。
- 在运行示例前,阅读readme.md文件。
- 复制本地PIO库到项目的根目录中。
- 将您的设备连接到开发机器(电脑)上,并运行示例模块:点LED、按钮或扬声器。
- 在Android Studio中,通过“运行”按钮选择下拉菜单中的模块,然后单击“运行”按钮。
- 在命令行上,从项目根目录运行下列命令:
./gradlew [blink|button|speaker]:installDebug
adb shell am start com.example.androidthings.nativepio/android.app.NativeActivity