您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > Android-Studio应用开发简介
成都英创信息技术有限公司AndroidStudio应用开发简介1/39AndroidStudio应用开发简介英创公司2017年8月2017年6月,英创公司在ESM6802+10.1LCD的硬件平台上成功运行Android7.1.1原生操作系统。2017年8月,ESM6802Android版可以支持GPIO、串口、以太网、U盘。后续将进一步完善对CAN、SPI、I2C、WIFI、4G等接口的支持。Google公司专门为开发Android应用程序提供了集成开发环境AndroidStudio,涵盖了所有Android应用开发相关的功能。Android应用程序主要使用Java语言编写,要用到开发工具集SDK(SoftwareDevelopmentKit,提供java编译工具、Android系统API等,可以直接在AndroidStudio中下载)。当应用程序中要直接访问硬件,或者需要提高运行效率时,需要将访问硬件、复杂逻辑部分使用C/C++实现。要在AndroidStudio中开发编译C/C++代码,需要用到工具集NDK(NativeDevelopmentKit,提供C/C++编译工具、API、打包工具等,可直接在AndroidStudio中下载)。使用NDK可以将C/C++源码编译成动态链接库,供Java调用。由于Java语言要调用C/C++函数需要用到JNI(JavaNativeInterface)技术,这就要求使用NDK开发C/C++时,C/C++源码要符合JNI规范要求。语言:C工具链:arm-linux-androideabi-4.9编译生成:.imgAPK语言:C/C++工具集:NDK编译生成:.so语言:Java工具集:SDK编译生成:.class应用层JNI层Kernel(driver)用户英创英创图1、ESM6802Android版本工作分布图成都英创信息技术有限公司AndroidStudio应用开发简介2/39为方便Android用户专注于Android应用层(Java语言)的开发,英创公司对所支持的硬件接口均提供了符合JNI规范的C/C++动态链接库,用户只需要加载英创的动态链接库,就可以在纯Java语言环境中调用动态链接库中的函数,达到访问硬件资源的目的。如图1所示,用户的工作只是应用层的java程序,英创已完成了其他部分工作。这篇文章会介绍AndroidStudio的环境搭建,并以Step2_SerialPort为例,来介绍使用AndroidStudio开发、调试、安装应用到ESM6802的过程。英创对已支持的硬件接口提供对应的应用程序示例,包括C/C++部分的so文件,供用户参考。Android应用开发更详细的资料请参考开发者网站学习:。一、安装androidstudio开发环境1、安装androidstudio2、下载sdk、ndk工具集图2、AndroidStudioWelcome界面打开AndroidStudio,在Configure下拉菜单中选择SDKManager,如下图成都英创信息技术有限公司AndroidStudio应用开发简介3/39图3SDKManager界面选择好AndroidSDK的保存路径,并在SDKPlatforms页面勾选Android7.1.1(Nougat)选择SDK版本;在SDKTools页面如上图所示勾选NDK,CMake,LLDB等,点击OK,下载完成即可(不需要国外代理)。二、新建项目Step2_SerialPort点击图2中的StartanewAndroidStudioproject,弹出新建工程的导航界面,输入应成都英创信息技术有限公司AndroidStudio应用开发简介4/39用名字(首字母大写),Companydomain是生成java包的目录,此处最终生成com/emtronix/ccl/step2_serialport目录,此目录用来存放应用程序的Java源代码,点击next:成都英创信息技术有限公司AndroidStudio应用开发简介5/39勾选PhoneandTablet,选择MinimumSDK版本,小于此版本的Android系统可能不能运行该程序。由于这里只安装了7.1.1的sdk,所以选择Android7.1.1,点击Next。成都英创信息技术有限公司AndroidStudio应用开发简介6/39AndroidStudio预设了常用的activity模板供开发者选择,这里选择EmptyActivity,点击Next。成都英创信息技术有限公司AndroidStudio应用开发简介7/39点击Finish就进入了项目的开发界面。进入开发界面后点击下图所示位置,选择Project视图,可以更方便观察整个项目的文件结构。成都英创信息技术有限公司AndroidStudio应用开发简介8/39点击FileProjectStructure设置SDK、JDK、NDK的路径:成都英创信息技术有限公司AndroidStudio应用开发简介9/39如果没有安装JDK,可以勾选UseembeddedJDK,使用AndroidStudio内置的jre环境。三、封装串口类通过以上步骤,AndroidStudio已经搭建起了应用开发的基本环境,新建了Step2_SerialPort项目。为了方便管理,可以把所有串口的操作封装成一个串口类。1、复制英创提供的串口控制类在src\main\java目录下新建包emtronix.hardware,新建串口控制类SerialControl.java也可以直接复制英创提供的SerialControl.java源文件到emtronix.hardware包。SerialControl中加载了C/C++动态链接库(实现了native函数),并将native函数以公共静态成员方法的形式提供给Java用户调用。成都英创信息技术有限公司AndroidStudio应用开发简介10/39成都英创信息技术有限公司AndroidStudio应用开发简介11/39以上native函数,英创已经使用C/C++实现,并编译成了libSerialControl.so库文件,用户只需要将so库添加到项目中即可(见下一小节)。2、添加动态链接库在app\src\main目录下新建文件夹jniLibs\armeabi-v7a,将英创提供的libSerialControl.so文件拷贝到这个目录下。成都英创信息技术有限公司AndroidStudio应用开发简介12/393、封装串口类SerialPort串口控制类SerialControl加载的so库添加完毕之后,使用SerialControl的静态方法已经可以访问操作串口。但SerialControl仅仅是串口的四个行为(方法),为了方便串口的管理,建议将串口相关的数据(设备描述符、发送接收计数等)、行为(打开、关闭、读、写)封装成一个串口类:SerialPort。在java\com.emtronix.ccl.step2_serialport目录下新建一个串口类SerialPort,在这个类中调用SerialControl类的静态方法访问串口设备,并对外提供公共接口。在MainActivity中示例化SerialPort去操作串口。成都英创信息技术有限公司AndroidStudio应用开发简介13/39点击ok后,开始编辑SerialPort.java文件,这里只添加了描述符mFd、发送计数mSendCount、接收计数mRecvCount成员变量。用户可以根据自己的需要在这里自行添加其他变量和方法。在对外的公共接口中都是调用SerialControl类的静态方法实现,并对读写计数,即完成了串口类的封装。封装好的串口类可以在MainActivity中实例化,然后调用这些public函数操作串口。成都英创信息技术有限公司AndroidStudio应用开发简介14/39编辑完SerialPort类后,如果应用中还需要其他java类,像上一样新建java类,只有需要调用C/C++库的类才需要native函数。本例中又添加了查找串口类SerialPortFinder和常用工具类ToolsFunc(自己常用的通用函数)。四、编写java应用程序经过以上步骤之后,SerialPort类可以通过JNI接口访问C/C++动态库,已经封装好了对底层的访问,就可以在纯java语言环境中开发应用程序了。此时的开发过程,跟不直接访问硬件的是一样的,在MainActivity中实例化一个SerialPort类,调用其公共接口就可以完成对硬件资源的访问了。1、设计界面成都英创信息技术有限公司AndroidStudio应用开发简介15/39在app\src\main\res下有个layout文件夹,android应用的界面布局文件都在这里,此应用只有一个界面activity_main.xml,默认只有一个文本显示“HelloWorld!”。对Android界面的设计可以通过xml语言修改这个文件,也可以通过可视化编辑窗口拖动相应部件到Android模拟窗口。使用xml语言修改能更精细的控制界面,具体见源码;使用可视化编辑窗口能够比较直观方便的实现界面的初步编辑。这里简单介绍下可视化编辑步骤。a)、新建一个1024*600的Android虚拟设备点击编辑窗口中activity_main.xml左下角的Design图标进入可视化窗口,默认选择的设备是Nexus4,点击下拉窗口,选择AddDeviceDefiniton...。进入到了VirtualDeviceConfiguration,点击CreateVirtualDevice。成都英创信息技术有限公司AndroidStudio应用开发简介16/39成都英创信息技术有限公司AndroidStudio应用开发简介17/39成都英创信息技术有限公司AndroidStudio应用开发简介18/39进入SelectHardware后选择Tablet,点击左下角的NewHardwareProfile,设置虚拟设备的参数,如下所示,主要是分辨率、屏幕大小要与实际设备相同。点击Finish后回到SelectHardware,选中esm6802,点击Next。进入SystemImage页面,选择downloadandroid7.1.1的image,点击download。下载完成后,在下载页面点击Finish,回到SystemImage页面点击next。成都英创信息技术有限公司AndroidStudio应用开发简介19/39成都英创信息技术有限公司AndroidStudio应用开发简介20/39确认配置后,点击Finish。这里并不需要运行虚拟设备,关闭YourVirtualDevices窗口。成都英创信息技术有限公司AndroidStudio应用开发简介21/39b)可视化编辑界面回到activity_main.xml的编辑页面,再次点击设备下拉菜单,就可以选择刚才建立的esm6802了。点击左上角的showdesign图标,就可以得到如下所示的大图显示。成都英创信息技术有限公司AndroidStudio应用开发简介22/39这时就可以拖动左边窗口中需要的组件到虚拟设备,并在右边property窗口设置具体参数了。不管是可视化拖动设计的界面,还是使用xml语法编写的界面,最后都可以在design页面看到设计的最终样子。Step2_SerialPort的界面如下图所示。成都英创信息技术有限公司AndroidStudio应用开发简介23/392、编写java代码,实现应用的业务逻辑Android系统与用户交互的界面通过Activity加载呈现给用户,在Activity中实现对界面操作的监听,并完成相应的业务逻辑。onCreate函数就是Activity创建时候回调函数,一般在这里找到xml界面中的元部件,设置
本文标题:Android-Studio应用开发简介
链接地址:https://www.777doc.com/doc-4635231 .html