Android BLE 开发入门指南
本文档基于开源项目 PunchThrough/ble-starter-android 编写,旨在帮助开发者快速理解和使用该项目。以下是项目的目录结构、启动文件和配置文件的详细介绍。
1. 项目的目录结构及介绍
项目的目录结构如下:
ble-starter-android/
├── app/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com.punchthrough.blestarterapp/
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── BleUtils.kt
│ │ │ │ ├── BleManager.kt
│ │ │ │ └── ...
│ │ │ └── res/
│ │ │ ├── layout/
│ │ │ ├── values/
│ │ │ └── ...
│ │ └── ...
│ └── ...
├── gradle/
│ └── wrapper/
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── .gitignore
├── LICENSE
├── README.md
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
目录结构说明
- app/: 包含应用程序的主要代码和资源文件。
- build.gradle: 应用程序的构建脚本。
- src/: 源代码目录。
- main/: 主源代码目录。
- java/: Kotlin 源代码目录。
- com.punchthrough.blestarterapp/: 应用程序的主要包。
- MainActivity.kt: 应用程序的主活动。
- BleUtils.kt: BLE 工具类。
- BleManager.kt: BLE 管理接口。
- ...: 其他相关文件。
- com.punchthrough.blestarterapp/: 应用程序的主要包。
- res/: 资源文件目录。
- layout/: 布局文件。
- values/: 字符串和其他值资源。
- ...: 其他资源文件。
- java/: Kotlin 源代码目录。
- main/: 主源代码目录。
- gradle/: Gradle 包装器目录。
- wrapper/: Gradle 包装器文件。
- gradle-wrapper.jar: Gradle 包装器 JAR 文件。
- gradle-wrapper.properties: Gradle 包装器属性文件。
- wrapper/: Gradle 包装器文件。
- .gitignore: Git 忽略文件。
- LICENSE: 项目许可证。
- README.md: 项目自述文件。
- build.gradle: 根项目构建脚本。
- gradle.properties: Gradle 属性文件。
- gradlew: Gradle 包装器脚本(Unix)。
- gradlew.bat: Gradle 包装器脚本(Windows)。
- settings.gradle: 项目设置文件。
2. 项目的启动文件介绍
MainActivity.kt
MainActivity.kt
是应用程序的主活动,负责初始化和启动应用程序的主要界面。以下是文件的主要内容:
package com.punchthrough.blestarterapp
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
import com.punchthrough.blestarterapp.ui.theme.BLEStarterAppTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
BLEStarterAppTheme {
Surface(color = MaterialTheme.colorScheme.background) {
Greeting("Android")
}
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
BLEStarterAppTheme {
Greeting("Android")
}
}