Android-SerialPort-API 使用教程
1. 项目的目录结构及介绍
目录结构
Android-SerialPort-API/
├── app/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com.licheedev.serial/
│ │ │ │ ├── SerialPort.java
│ │ │ │ ├── SerialPortFinder.java
│ │ │ │ └── ...
│ │ │ └── res/
│ │ │ ├── layout/
│ │ │ ├── values/
│ │ │ └── ...
│ │ └── ...
│ └── ...
├── serialport/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── cpp/
│ │ │ │ ├── SerialPort.c
│ │ │ │ └── SerialPort.h
│ │ │ └── ...
│ └── ...
├── build.gradle
├── settings.gradle
└── ...
目录介绍
-
app/: 主应用程序模块,包含Java源代码和资源文件。
- src/main/java/com.licheedev.serial/: 包含主要的Java类文件,如
SerialPort.java
和SerialPortFinder.java
。 - src/main/res/: 包含应用程序的资源文件,如布局文件和字符串资源。
- src/main/java/com.licheedev.serial/: 包含主要的Java类文件,如
-
serialport/: 包含与串口通信相关的C/C++源代码和头文件。
- src/main/cpp/: 包含C/C++源代码文件,如
SerialPort.c
和SerialPort.h
。
- src/main/cpp/: 包含C/C++源代码文件,如
-
build.gradle: 项目的Gradle构建文件。
-
settings.gradle: 项目的设置文件,用于包含各个模块。
2. 项目的启动文件介绍
启动文件
- SerialPort.java: 这是项目的核心启动文件之一,负责打开和关闭串口,以及读写串口数据。
- SerialPortFinder.java: 用于查找系统中可用的串口设备。
代码示例
// SerialPort.java
public class SerialPort {
static {
System.loadLibrary("serial_port");
}
private native static FileDescriptor open(String path, int baudrate, int flags);
public native void close();
// 其他方法...
}
// SerialPortFinder.java
public class SerialPortFinder {
public String[] getAllDevices() {
// 实现代码...
}
public String[] getAllDevicesPath() {
// 实现代码...
}
}
3. 项目的配置文件介绍
配置文件
- build.gradle: 项目的Gradle构建配置文件,包含依赖项、插件和其他构建配置。
- settings.gradle: 项目的设置文件,用于包含各个模块。
配置示例
// build.gradle (项目级)
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.0'
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
// settings.gradle
include ':app', ':serialport'
// build.gradle (模块级)
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.licheedev.serial"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.2.0'
}