Android-Serialport 项目使用教程
1、项目的目录结构及介绍
Android-Serialport 项目的目录结构如下:
Android-Serialport/
├── app/
│ ├── build/
│ ├── libs/
│ ├── src/
│ │ ├── androidTest/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── serialport/
│ │ │ │ ├── SerialPort.java
│ │ │ │ ├── SerialPortFinder.java
│ │ │ │ └── SerialPortManager.java
│ │ │ ├── res/
│ │ │ └── AndroidManifest.xml
│ │ └── test/
│ ├── build.gradle
│ └── proguard-rules.pro
├── serialport/
│ ├── src/
│ │ ├── main/
│ │ │ ├── cpp/
│ │ │ │ ├── SerialPort.c
│ │ │ │ └── SerialPort.h
│ │ │ └── Android.mk
│ ├── build.gradle
│ └── proguard-rules.pro
├── gradle/
├── gradle.properties
├── gradlew
├── gradlew.bat
├── build.gradle
├── settings.gradle
└── README.md
目录结构介绍
-
app/: 主应用程序模块,包含主要的业务逻辑和界面。
- build/: 构建生成的文件。
- libs/: 存放第三方库文件。
- src/: 源代码目录。
- androidTest/: 存放Android测试代码。
- main/: 主代码目录。
- java/: Java源代码目录。
- com/serialport/: 串口相关的主要Java类。
- SerialPort.java: 串口操作的核心类。
- SerialPortFinder.java: 串口查找类。
- SerialPortManager.java: 串口管理类。
- com/serialport/: 串口相关的主要Java类。
- res/: 资源文件目录。
- AndroidManifest.xml: 应用程序配置文件。
- java/: Java源代码目录。
- test/: 存放单元测试代码。
- build.gradle: 模块构建配置文件。
- proguard-rules.pro: ProGuard 配置文件。
-
serialport/: 串口库模块,包含串口操作的JNI代码。
- src/: 源代码目录。
- main/: 主代码目录。
- cpp/: C++源代码目录。
- SerialPort.c: 串口操作的C代码。
- SerialPort.h: 串口操作的头文件。
- Android.mk: Android NDK 构建配置文件。
- cpp/: C++源代码目录。
- main/: 主代码目录。
- build.gradle: 模块构建配置文件。
- proguard-rules.pro: ProGuard 配置文件。
- src/: 源代码目录。
-
gradle/: Gradle 构建系统相关文件。
-
gradle.properties: Gradle 属性配置文件。
-
gradlew: Gradle 包装脚本(Unix)。
-
gradlew.bat: Gradle 包装脚本(Windows)。
-
build.gradle: 项目构建配置文件。
-
settings.gradle: 项目设置文件。
-
README.md: 项目说明文档。
2、项目的启动文件介绍
项目的启动文件主要位于 app/src/main/java/com/serialport/
目录下,其中 SerialPort.java
是串口操作的核心类,负责打开和关闭串口,以及读写数据。
SerialPort.java
package com.serialport;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class SerialPort {
private static final String TAG = "SerialPort";
/*
* Do not remove or rename the field mFd: it is used by native method close();
*/
private FileDescriptor mFd;
private FileInputStream mFileInputStream;
private FileOutputStream mFileOutputStream