2017年6月,英创公司在ESM6802+10.1”LCD的硬件平台上成功运行Android 7.1.1原生操作系统。2017年8月,ESM6802 Android 版可以支持GPIO、串口、以太网、U盘。后续将进一步完善对CAN、SPI、I2C、WIFI、4G等接口的支持。
Google公司专门为开发Android应用程序提供了集成开发环境Android Studio,涵盖了所有Android应用开发相关的功能。Android应用程序主要使用Java语言编写,要用到开发工具集SDK(Software Development Kit,提供java编译工具、Android系统API等,可以直接在Android Studio中下载)。当应用程序中要直接访问硬件,或者需要提高运行效率时,需要将访问硬件、复杂逻辑部分使用C/C++实现。要在Android Studio中开发编译C/C++代码,需要用到工具集NDK(Native Development Kit,提供C/C++编译工具、API、打包工具等,可直接在Android Studio中下载)。使用NDK可以将C/C++源码编译成动态链接库,供Java调用。由于Java语言要调用C/C++函数需要用到JNI(Java Native Interface)技术,这就要求使用NDK开发C/C++时,C/C++源码要符合JNI规范要求。
图1、ESM6802 Android版本工作分布图
为方便Android用户专注于Android 应用层(Java语言)的开发,英创公司对所支持的硬件接口均提供了符合JNI规范的C/C++动态链接库,用户只需要加载英创的动态链接库,就可以在纯Java语言环境中调用动态链接库中的函数,达到访问硬件资源的目的。如图1所示,用户的工作只是应用层的java程序,英创已完成了其他部分工作。这篇文章会介绍Android Studio的环境搭建,并以Step2_SerialPort为例,来介绍使用Android Studio开发、调试、安装应用到ESM6802的过程。英创对已支持的硬件接口提供对应的应用程序示例,包括C/C++部分的so文件,供用户参考。
Android应用开发更详细的资料请参考开发者网站学习:https://developer.android.google.cn/index.html 。
一、安装android studio开发环境
1、安装android studio
2、下载sdk、ndk工具集
图2、Android Studio Welcome界面
打开Android Studio,在Configure下拉菜单中选择SDK Manager,如下图
图3 SDK Manager界面
选择好Android SDK的保存路径,并在SDK Platforms页面勾选Android 7.1.1(Nougat)选择SDK版本;在SDK Tools页面如上图所示勾选NDK,CMake,LLDB等,点击OK,下载完成即可(不需要国外代理)。
二、新建项目Step2_SerialPort
点击图2中的Start a new Android Studio project,弹出新建工程的导航界面,输入应用名字(首字母大写),Company domain是生成java包的目录,此处最终生成com/emtronix/ccl/step2_serialport目录,此目录用来存放应用程序的Java源代码,点击next:
勾选Phone and Tablet,选择Minimum SDK版本,小于此版本的Android系统可能不能运行该程序。由于这里只安装了7.1.1的sdk,所以选择Android 7.1.1,点击Next。
Android Studio预设了常用的activity模板供开发者选择,这里选择Empty Activity,点击Next。
点击Finish就进入了项目的开发界面。
进入开发界面后点击下图所示位置,选择Project视图,可以更方便观察整个项目的文件结构。
点击File>>Project Structure设置SDK、JDK、NDK的路径:
如果没有安装JDK,可以勾选Use embedded JDK,使用Android Studio内置的jre环境。
三、封装串口类
通过以上步骤,Android Studio已经搭建起了应用开发的基本环境,新建了St