ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从源码构建 Loop Habit Tracker(uhabits):Android Studio 与命令行两种完整方案

从源码构建 Loop Habit Tracker(uhabits):Android Studio 与命令行两种完整方案 移动开发【免费下载链接】uhabitsLoop Habit Tracker, a mobile app for creating and maintaining long-term positive habits项目地址https://gitcode.com/gh_mirrors/uh/uhabits点击查看免费下载导读Loop Habit Tracker仓库名uhabits是一款开源、无广告、支持本地离线使用的习惯养成应用其代码库在 README.md 中有完整介绍。本文以仓库自带的 BUILD.md 为骨架完整讲解两种从源码构建 App 的路径——基于 Android Studio 的图形化构建以及基于 Ubuntu 命令行的全流程构建。读完本文你将掌握仓库的 Gradle 多模块结构、环境前置要求、assembleDebug构建命令、Debug APK 的输出位置以及 Release 签名构建所需的配置细节能够独立完成从克隆源码到安装 APK 的全过程。一、构建目标与仓库构建体系概览在动手之前先理解要构建的是什么。从 settings.gradle.kts 可以看出仓库由三个 Gradle 模块组成include(:uhabits-android, :uhabits-core, :uhabits-server):uhabits-androidAndroid 应用主模块最终产出可安装的 APK:uhabits-coreKotlin Multiplatform 核心逻辑模块习惯评分、历史统计等由 Android 模块通过implementation(project(:uhabits-core))依赖见 uhabits-android/build.gradle.kts:uhabits-server服务端辅助模块。根目录的 build.gradle.kts 统一声明了构建插件版本Android Gradle PluginAGP8.4.0、Kotlin1.9.22gradle/wrapper/gradle-wrapper.properties 指定 Gradle Wrapper 版本为8.6。Android 主模块的 uhabits-android/build.gradle.kts 中关键参数为applicationId org.isoron.uhabits、compileSdk 34、targetSdk 34、minSdk 28、versionName 2.2.0、versionCode 20200。这意味着构建环境需要满足JDK 11模块通过jvmToolchain(11)编译见 uhabits-android/build.gradle.kts 第 39-41 行、Android SDK Platform 34 与对应 Build Tools、Gradle 8.6由 Wrapper 自动下载。构建完成后Debug APK 将输出到uhabits-android/build/outputs/apk/debug/目录。二、方案一使用 Android Studio 构建图形化该方案适合希望边看代码边调试、使用可视化界面管理设备与日志的开发者。Step 1安装 gitgit是克隆源码并提交变更的必备工具请参照官方 git 安装指引完成安装。如果计划日后提交 Pull Request建议同时生成并配置 SSH 密钥。Step 2安装 Android StudioAndroid Studio 可以从官方渠道下载官方也推荐通过 JetBrains Toolbox 安装以便在稳定版、Beta 版与 Canary 版之间自由切换。需要注意Beta 与 Canary 版本未经项目测试可能无法正常工作请选择最新的稳定版。首次启动会进入初始化向导默认选项即可向导会顺带下载模拟器等附加组件耗时较长。Step 3克隆源码打开终端Linux/macOS或 Git BashWindows进入目标目录后执行git clone https://gitcode.com/gh_mirrors/uh/uhabits.git源码将下载到本地uhabits目录。Step 4在 Android Studio 中打开并运行启动 Android Studio选择 Open an existing Android Studio project定位到刚才克隆的uhabits目录并点击 Ok等待 IDE 完成项目索引后点击顶部工具栏右侧的 Sync Project with Gradle File 图标首次同步很可能因缺少 Android SDK 组件而多次失败。每次失败时点击提示中的 Install missing platforms、Install build tools 等链接安装缺失组件后重试通过菜单 Tools → AVD Manager 创建虚拟设备默认配置即可也可自定义点击菜单 Run → 选择运行配置uhabits-android应用即会在模拟器上启动。从当前源码看主模块开启了viewBinding、isCoreLibraryDesugaringEnabled并在 debug 构建类型下开启了测试覆盖率isTestCoverageEnabled true见 uhabits-android/build.gradle.kts因此首次同步与编译会拉取较多依赖请保持网络畅通并耐心等待。三、方案二从命令行构建Ubuntu 实测流程命令行方案更轻量适合 CI 环境或无 IDE 的服务器。原文档中的流程在Ubuntu Linux 18.04 LTS上实测通过其他发行版/操作系统需要相应调整包管理器命令。Step 1安装基础软件包git用于克隆源码JDK 用于编译 Java 与 Kotlin 源码。原文档建议安装openjdk-8-jdk-headless并特别注明更新的 JDK 版本未经过测试、可能无法正常工作sudo apt-get update sudo apt-get install -y git openjdk-8-jdk-headless版本说明该提示出自较早时期的构建文档。从当前仓库源码看Android 模块已改用jvmToolchain(11)并设置 Java 11 源/目标兼容级别见 uhabits-android/build.gradle.kts因此若构建报 JDK 版本相关错误可尝试安装 JDK 11 或更高版本并确认java -version输出符合要求。Step 2安装 Android SDK 命令行工具Android SDK Tools 包含开发与调试 Android 应用所需的众多工具。它可以随 Android Studio 一起安装也可以单独下载命令行版本从 Android 开发者官网下载sdk-tools-linux-4333796.zip或更新版本并解压。本指南假设解压到/opt/android-sdk/tools即脚本/opt/android-sdk/tools/bin/sdkmanager存在将以下内容追加到~/.profile以便其他工具定位 Android SDK。修改后需要重启终端才能生效export PATH$PATH:/opt/android-sdk/tools/bin export PATH$PATH:/opt/android-sdk/platform-tools export ANDROID_HOME/opt/android-sdk接受全部 Android SDK 许可协议yes | sdkmanager --licensesStep 3克隆源码回到用户主目录执行git clone https://gitcode.com/gh_mirrors/uh/uhabits.git源码将下载到uhabits目录。Step 4编译源码进入uhabits目录运行构建命令./gradlew assembleDebug --stacktrace--stacktrace会在失败时输出完整堆栈便于定位问题。gradlew是 Gradle Wrapper 脚本仓库根目录已自带 gradlew 与 gradlew.bat首次运行会自动按 gradle/wrapper/gradle-wrapper.properties 中声明的版本8.6下载 Gradle。如果编译成功Debug APK 将生成在uhabits-android/build/目录下。当前版本完整路径为./uhabits-android/build/outputs/apk/debug/uhabits-android-debug.apk该路径未来可能随构建配置调整。随后可使用adb安装到设备adb会在编译过程中自动安装到/opt/android-sdk/platform-tools/adb/opt/android-sdk/platform-tools/adb install ./uhabits-android/build/outputs/apk/debug/uhabits-android-debug.apk四、构建环境要点JVM 内存、Gradle 并行与 AndroidX命令行构建时Gradle 守护进程与 JVM 参数由仓库根目录的 gradle.properties 控制org.gradle.parallelfalse org.gradle.daemontrue org.gradle.jvmargs-Xms2048m -Xmx2048m android.useAndroidXtrue android.enableJetifiertrue android.defaults.buildfeatures.buildconfigtrue android.nonTransitiveRClassfalse android.nonFinalResIdsfalse其中org.gradle.jvmargs-Xms2048m -Xmx2048m将 Gradle 守护进程的堆内存设为 2 GB本仓库包含 Android 与 Kotlin Multiplatform 多模块编译期内存占用较高若机器内存紧张可在不修改仓库的前提下通过命令行覆盖该参数例如./gradlew assembleDebug -Dorg.gradle.jvmargs-Xmx3g。android.useAndroidXtrue与android.enableJetifiertrue表明项目依赖 AndroidX 体系。五、进阶Release 签名与 Play 发布构建如果不仅需要 Debug APK还想构建可用于分发的 Release 包可参考 uhabits-android/build.gradle.kts 中的签名配置签名环境变量构建脚本会检测LOOP_KEY_ALIAS环境变量若存在则创建名为release的签名配置从以下四个环境变量读取签名信息LOOP_KEY_ALIAS别名、LOOP_KEY_PASSWORD别名密码、LOOP_KEY_STOREkeystore 文件路径、LOOP_STORE_PASSWORDstore 密码Release 构建类型isMinifyEnabled true即启用代码压缩/混淆规则文件为 proguard-rules.txt并叠加 Android 默认的proguard-android.txtPlay 发布插件模块还应用了com.github.triplet.play插件版本3.8.6其play配置块会从../.secret/gcp-key.json读取 Google Play 服务账号凭据并将发布轨道设为alpha——该配置用于向 Google Play 上传构建产物普通本地构建无需关心。因此命令行构建 Release 包的方式为先按上述规则设置好四个LOOP_*环境变量再执行./gradlew assembleRelease未设置环境变量时Release 构建将退化为未签名 APK。六、常见构建问题排查结合原文档提示与仓库配置构建过程中最常遇到的问题如下问题现象可能原因处理办法Android Studio 同步反复失败提示缺少 platform / build-tools本地 SDK 组件不全点击 Install missing platforms / Install build tools 安装后重试命令行编译报 JDK 相关错误JDK 版本与模块jvmToolchain(11)要求不匹配安装 JDK 11 或更高版本并让JAVA_HOME指向正确 JDKsdkmanager提示未接受许可SDK 许可未全部接受执行yes \| sdkmanager --licenses终端找不到sdkmanager/adb环境变量未生效确认~/.profile中PATH与ANDROID_HOME已正确配置并重启终端Gradle 首次运行下载缓慢需要下载 Gradle 8.6 发行版及依赖保持网络畅通耐心等待仓库依赖仓库配置见 build.gradle.ktsgoogle、mavenCentral、jitpack 等编译耗时长/内存不足多模块项目编译内存需求较高通过-Dorg.gradle.jvmargs提高 Gradle JVM 堆内存七、构建后的验证与测试入口构建成功后除了将 APK 安装到模拟器或真机验证功能外仓库还提供了成体系的测试资源可供进一步验证单元测试 / 仪器测试源码位于 uhabits-android/src 下的test/本地 JVM 测试与androidTest/仪器测试含BaseUserInterfaceTest.kt等基类核心逻辑测试:uhabits-core模块的测试位于 uhabits-core/src/jvmTest涵盖习惯评分、频率图表等核心算法的验证用例测试规范文档测试方法与运行说明见 docs/TEST.md代码规范根 build.gradle.kts 集成了org.jlleitschuh.gradle.ktlint插件版本11.6.1贡献代码前应保证通过 ktlint 检查。在本地执行核心模块测试的命令为./gradlew :uhabits-core:jvmTest结语本文完整复刻并深化了 docs/BUILD.md 的构建流程无论你偏好 Android Studio 的可视化操作还是 Ubuntu 命令行的轻量流程只要按上述步骤准备好 JDK、Android SDK 与许可克隆仓库后执行./gradlew assembleDebug --stacktrace即可在uhabits-android/build/outputs/apk/debug/下拿到可安装的 Debug APK。若在构建中遇到问题欢迎在仓库中提交 Issue附上--stacktrace输出的完整日志将有助于快速定位问题。赞分享移动开发【免费下载链接】uhabitsLoop Habit Tracker, a mobile app for creating and maintaining long-term positive habits项目地址https://gitcode.com/gh_mirrors/uh/uhabits点击查看免费下载相关推荐CDCS金融算法挑战赛终极指南甜橙金融与融360实战案例深度解析CDCS金融算法挑战赛终极指南甜橙金融与融360实战案例深度解析 CDCSChinese Data Competitions Solutions是中国数3个核心功能如何在Mac上轻松制作Windows启动盘3个核心功能如何在Mac上轻松制作Windows启动盘 你是否曾经遇到过这样的困境手头只有一台Mac电脑却需要为Windows PC制作安装U盘或者想桌面应用PCollections实战案例构建高性能不可变数据模型的完整指南PCollections实战案例构建高性能不可变数据模型的完整指南 PCollections是一个强大的Java持久化集合库它为开发者提供了构建高性能不可变软件架构上一篇TUnit 单元测试最佳实践从标准测试、数据驱动测试到 xUnit 迁移的完整指南awesome-copilot csharp-tunit 技能详解下一篇Symfony Debug 扩展实战指南用 symfony_zval_info 与 symfony_debug_backtrace 打造 PHP 底层调试工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表