# calendar **Repository Path**: lilihli/calendar ## Basic Information - **Project Name**: calendar - **Description**: 用于简单的日历记事 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-08 - **Last Updated**: 2025-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介 本项目用于在日历上添加简单的记事备忘录,基于Go语言的 Fyne 框架开发,可以编译成安卓程序在手机上运行。 ## 编译 编译该项目需要完成以下几个步骤。以下是详细的指导: --- ### 1. **准备工作** 确保你的开发环境已经配置好以下工具: - **Go 编译器**:安装最新版本的 Go(建议 1.20 或更高版本)。 - **Android SDK 和 NDK**:用于构建和运行 Android 应用。 - **Fyne CLI 工具**:用于简化跨平台编译。 #### 安装 Fyne CLI 运行以下命令安装 Fyne CLI 工具: ```bash go install fyne.io/fyne/v2/cmd/fyne@latest ``` #### 配置 Android 开发环境 见下方 Android SDK 详细配置小节 --- ### 2. **编译为 Android APK** 使用 Fyne CLI 工具编译 Android 应用: #### (1) 初始化项目 在项目根目录运行以下命令: ```bash fyne package -os android -appID com.example.calendar ``` - `-os android`:指定目标平台为 Android。 - `-appID`:设置应用的唯一标识符(推荐使用反向域名格式)。 #### (2) 编译 APK 运行以下命令生成 APK 文件: ```bash fyne package -os android -appID com.example.calendar -icon path/to/icon.png ``` - `-icon`:指定应用图标(PNG 格式)。 编译完成后,会在当前目录生成一个 `.apk` 文件。 --- ### 3. **测试 APK** 将生成的 APK 文件安装到 Android 设备上进行测试。 #### (1) 使用 ADB 安装 确保设备已连接并启用开发者模式,运行以下命令: ```bash adb install your-app.apk ``` #### (2) 使用模拟器 启动 Android 模拟器后,运行以下命令安装 APK: ```bash adb install your-app.apk ``` ## Android SDK 详细配置 ### 1. ** Android SDK 详细配置方法** Android SDK 是开发 Android 应用的核心工具包,包含编译、调试和运行应用所需的工具。 #### (1) 下载地址 前往 [Android SDK 命令行工具](https://developer.android.google.cn/studio?hl=zh-cn#command-tools) 页面,找到 **Command line tools only** 部分,根据你的操作系统选择合适的版本下载。 - **Windows**: `commandlinetools-win-*` - **macOS**: `commandlinetools-mac-*` - **Linux**: `commandlinetools-linux-*` #### (2) 推荐版本 建议下载最新的稳定版本(截至 2023 年,推荐版本为 **8512546** 或更高)。 #### (3) 解压文件 将下载的压缩包解压到一个目录中,例如: ```bash ~/android-sdk ``` 解压后,你会看到一个名为 `cmdline-tools` 的文件夹。将其重命名为 `latest`,并创建一个父目录 `tools`: ```bash mkdir -p ~/android-sdk/cmdline-tools mv cmdline-tools/ ~/android-sdk/cmdline-tools/latest ``` 最终目录结构应如下: ``` ~/android-sdk/ └── cmdline-tools/ └── latest/ ├── bin/ ├── lib/ └── ... ``` #### (4) 使用 `sdkmanager` 安装组件 进入 `bin` 目录并运行 `sdkmanager` 来安装必要的组件: ```bash cd ~/android-sdk/cmdline-tools/latest/bin ./sdkmanager "platform-tools" "platforms;android-30" "build-tools;30.0.3" ``` - `platform-tools`:包含 `adb` 等工具。 - `platforms;android-30`:指定 Android API 级别(推荐 30 或更高)。 - `build-tools;30.0.3`:构建工具。 如果需要更多组件,可以运行以下命令查看可用列表: ```bash ./sdkmanager --list ``` --- ### 2. **下载 Android NDK** NDK 是用于编译 Go 程序到 Android 平台的必要工具。 #### (1) 下载地址 前往 [NDK 下载页面](https://developer.android.google.cn/ndk/downloads?hl=zh-cn),找到独立的 NDK 下载链接。 - **Windows**: `android-ndk-r25c-windows.zip` - **macOS**: `android-ndk-r25c-darwin.zip` - **Linux**: `android-ndk-r25c-linux.zip` #### (2) 推荐版本 建议使用 **NDK r25c**(最新稳定版本),因为它兼容 Go 和 Fyne 框架。 #### (3) 解压文件 将下载的 NDK 压缩包解压到一个目录中,例如: ```bash ~/android-ndk ``` 解压后,你会看到类似以下的目录结构: ``` ~/android-ndk/ └── android-ndk-r25c/ ├── build/ ├── toolchains/ └── ... ``` --- ### 3. **配置环境变量** 为了让系统能够找到 Android SDK 和 NDK 工具,需要配置环境变量。 #### (1) 编辑环境变量文件 根据你的操作系统,编辑相应的配置文件: - **macOS/Linux**: 编辑 `~/.bashrc` 或 `~/.zshrc` 文件: ```bash export ANDROID_HOME=$HOME/android-sdk export PATH=$PATH:$ANDROID_HOME/platform-tools export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin export ANDROID_NDK_HOME=$HOME/android-ndk/android-ndk-r25c export PATH=$PATH:$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin ``` - **Windows**: 在系统属性中添加环境变量: - `ANDROID_HOME`: `C:\android-sdk` - `ANDROID_NDK_HOME`: `C:\android-ndk\android-ndk-r25c` - 将以下路径添加到 `Path`: - `%ANDROID_HOME%\platform-tools` - `%ANDROID_HOME%\cmdline-tools\latest\bin` - `%ANDROID_NDK_HOME%\toolchains\llvm\prebuilt\windows-x86_64\bin` #### (2) 生效配置 保存文件后,运行以下命令使配置生效: ```bash source ~/.bashrc # 或 source ~/.zshrc ``` 验证是否配置成功: ```bash adb version sdkmanager --version clang --version ``` --- ### 4. **验证安装** 确保所有工具都已正确安装并可用。 #### (1) 检查 Android SDK 运行以下命令,确保 `adb` 和 `sdkmanager` 正常工作: ```bash adb devices sdkmanager --list ``` #### (2) 检查 Android NDK 运行以下命令,确保 `clang` 和其他工具链正常工作: ```bash clang --version aarch64-linux-android21-clang --version ``` --- ### 5. **编译 Android APK** 完成上述步骤后,你可以使用 Fyne CLI 编译 Android 应用: #### (1) 初始化项目 在项目根目录运行以下命令: ```bash fyne package -os android -appID com.example.calendar ``` #### (2) 编译 APK 运行以下命令生成 APK 文件: ```bash fyne package -os android -appID com.example.calendar -icon path/to/icon.png ``` --- ### 总结 通过以上步骤,你已经成功单独下载并配置了 Android SDK 和 NDK,无需安装 Android Studio。以下是关键点总结: - **SDK 版本**: 推荐使用最新稳定版(如 8512546)。 - **NDK 版本**: 推荐使用 r25c。 - **环境变量**: 确保 `ANDROID_HOME` 和 `ANDROID_NDK_HOME` 配置正确。 ## 调试 使用 Android 模拟器调试你的 Go 程序是一个非常有效的方法,尤其是在开发阶段。以下是详细的步骤和说明,帮助你设置模拟器并调试程序。 --- ### 1. **安装 Android SDK 和模拟器** 如果你还没有安装 Android SDK 和模拟器,请按照以下步骤操作: #### (1) 下载 Android SDK 工具 前往 [Android SDK 命令行工具](https://developer.android.com/studio#command-tools) 页面,下载适合你操作系统的命令行工具(无需安装 Android Studio)。 解压后,确保 `sdkmanager` 可用: ```bash ./sdkmanager --list ``` #### (2) 安装模拟器及相关组件 运行以下命令安装模拟器和必要的组件: ```bash ./sdkmanager "emulator" "platform-tools" "platforms;android-30" "system-images;android-30;google_apis;x86" ``` - `emulator`: 模拟器工具。 - `platform-tools`: 包含 `adb` 等工具。 - `platforms;android-30`: Android API 级别 30。 - `system-images;android-30;google_apis;x86`: x86 架构的系统镜像。 #### (3) 创建虚拟设备 使用 `avdmanager` 创建一个虚拟设备: ```bash ./avdmanager create avd --name "TestDevice" --package "system-images;android-30;google_apis;x86" --device "pixel" ``` - `--name`: 虚拟设备名称(例如 `TestDevice`)。 - `--package`: 使用的系统镜像。 - `--device`: 设备类型(例如 `pixel`)。 --- ### 2. **启动模拟器** 启动刚刚创建的虚拟设备: ```bash emulator -avd TestDevice ``` 如果一切正常,模拟器窗口会弹出,并显示一个 Android 设备界面。 --- ### 3. **将 APK 安装到模拟器** 编译你的 Go 程序并生成 APK 文件后,可以将其安装到模拟器中进行测试。 #### (1) 编译 APK 使用 Fyne CLI 编译 APK: ```bash fyne package -os android -appID com.example.calendar -icon path/to/icon.png ``` 生成的 APK 文件会出现在当前目录下(例如 `calendar.apk`)。 #### (2) 安装 APK 使用 `adb` 将 APK 安装到模拟器中: ```bash adb install calendar.apk ``` 如果成功安装,你会在模拟器的应用列表中看到你的应用。 --- ### 4. **调试程序** #### (1) 查看日志输出 在模拟器运行时,你可以使用 `adb logcat` 查看应用的日志输出: ```bash adb logcat ``` 为了过滤特定应用的日志,可以使用以下命令: ```bash adb logcat | grep Fyne ``` 这会显示与你的应用相关的日志信息。 #### (2) 检查文件系统 如果你想检查应用是否正确保存了数据(如 `notes.json` 文件),可以使用以下步骤查看内部存储内容: ```bash adb shell cd /data/data/com.example.calendar/files/ ls cat notes.json ``` #### (3) 动态调试 如果你需要动态调试应用,可以在代码中添加日志输出(如 `fmt.Println` 或 `log.Println`),然后通过 `adb logcat` 查看实时日志。 --- ### 5. **常见问题及解决方法** #### (1) **模拟器无法启动** - 确保你的主机支持硬件加速(如 Intel HAXM 或 AMD Hypervisor)。 - 在 Linux 上,可能需要启用 KVM: ```bash sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils sudo usermod -aG kvm $USER ``` - 在 Windows 上,确保 BIOS 中启用了虚拟化技术(VT-x 或 AMD-V)。 #### (2) **APK 安装失败** - 如果出现权限问题,尝试卸载旧版本后再重新安装: ```bash adb uninstall com.example.calendar adb install calendar.apk ``` - 确保 APK 文件与模拟器的架构匹配(例如 x86 或 ARM)。 #### (3) **日志输出不完整** - 如果日志输出被截断,可以增加缓冲区大小: ```bash adb logcat -G 16M ``` --- ### 6. **总结** 通过以上步骤,你可以轻松使用 Android 模拟器调试你的 Go 程序。以下是关键点总结: 1. 安装 Android SDK 和模拟器工具。 2. 创建虚拟设备并启动模拟器。 3. 编译 APK 并安装到模拟器中。 4. 使用 `adb logcat` 查看日志输出,或使用 `adb shell` 检查文件系统。