Lab Week 1 Summary
Lab学后总结
主要教授的知识
- Android开发环境基础:介绍了如何下载并配置最新版(2025年7月标准使用的Narwhal版本)的Android Studio 。
- 项目结构与Gradle配置:展示了如何创建一个新项目,并说明了
MainActivity.kt文件以及build.gradle.kts文件的作用,特别是如何修改compileSdk和targetSdk版本 。 - Android虚拟设备(AVD):讲解了虚拟设备(模拟器)的概念,以及如何通过Device Manager配置特定的硬件(如Pixel 6)和系统镜像(如API 36) 。
- UI预览与调试工具:介绍了Jetpack Compose中的
@Preview功能,以及如何使用Build Output、Logcat和Debug(断点调试)来定位代码错误 。 - 核心构建概念:在最后的讨论部分,提出了关于Gradle文件、依赖项(dependencies)、存储库(repositories)以及不同SDK版本(minSdk, compileSdk, targetSdk)的理论概念 。
你需要学会的具体操作内容
- 完成本次实验后,你应该能够熟练进行以下操作:
- 安装与运行:能够成功安装Android Studio并启动它 。
- 创建项目:能够选择“Empty Activity”模板创建一个名为“HelloWorld”的Android项目 。
- 同步与构建项目:学会在修改Gradle文件后点击“Sync Now”来同步项目,并通过Make Module或Make Project来构建项目 。
- 配置与运行模拟器:能够独立创建一个新的虚拟设备,并成功在其上运行你的应用程序,看到“Hello Android”的提示 。
- 修改代码与预览:能够修改默认代码(例如将文字改为“Welcome to FIT5046”),并使用代码分割视图(Split)或设计视图(Design)来预览UI效果,无需每次都运行模拟器 。
- 排查与修复错误:学会故意注释掉必填参数以触发错误,然后通过阅读Build Output的报错信息、查看Logcat日志,或者使用打断点的Debug模式来找到并检查问题所在 。
过程
问题
Android Studio: Gradle & SDK 基础概念
1. What is the difference between dependencies and repositories in Android Studio?
- 依赖项 (Dependencies):项目在编译或运行时需要的外部代码库或插件(例如 Jetpack Compose 等)。
- 存储库 (Repositories):托管和存放这些依赖项的在线服务器。通俗地说,依赖项是你要买的“商品”,存储库是卖商品的“超市”。
2. What are the default repositories in Android Studio?
- 现代 Android Studio 默认主要使用
google()(Google 自家的库)和mavenCentral()(第三方开源库的中央仓库)。
3. Which gradle file contains repositories?
- 存储库配置通常位于项目根目录的
settings.gradle.kts文件中。
4. Which gradle file contains dependencies?
- 位于模块级别的
build.gradle.kts (Module: app)文件中
- 如果说
settings.gradle.kts是告诉 IDE 去哪里(仓库)下载资源,那么dependencies就是一份具体的购物清单 。它列出了你的应用程序为了正常运行,必须“依赖”的外部代码库 。 - 为什么它很重要?
- 代码复用:你不需要自己去写一套渲染文字的引擎,直接调用
implementation(libs.androidx.compose.ui)就能使用 Google 已经写好的强大功能。 - 版本控制:当你需要升级应用功能时,只需在这里修改版本号,Gradle 就会自动帮你从仓库下载最新的稳定版。
- 防止错误:如果你删除了某一行依赖,点击 Sync Now 后,你的代码里对应的部分就会立刻变红,提醒你缺少了必要的库 。
5. What is the purpose of minSdk? What is the minSdk in the HelloWorld app?
- 作用:决定能安装和运行该应用的最低 Android 系统版本。如果设备系统低于此版本,将无法安装。
- HelloWorld 中的数值:24(即 Android 7.0 "Nougat")。
6. What is the purpose of compileSDK? What is the compileSdk in the HelloWorld app?
- 作用:指示 Gradle 在编译应用时使用的 Android SDK 版本。它决定了你在写代码时能调用哪些最新的系统 API。
- HelloWorld 中的数值:36。
7. What is the purpose of targetSDK? What is the targetSdk in the HelloWorld app?
- 作用:targetSDK是针对哪个 Android 版本进行过充分测试的。它决定了应用在较新系统上运行时的向前兼容行为(如是否启用新版的权限申请规则)。
- HelloWorld 中的数值:36。
8. Are there any recommendations for deciding on the versions of minSdk, compileSdk, and targetSdk?
- compileSdk:建议始终使用最新的稳定版本,以获取最新的 API 和编译器优化。
- targetSdk:通常应紧跟 compileSdk,应用商店也会有近期的 targetSdk 版本强制要求。
- minSdk:需权衡商业与技术。设置过低会增加旧设备适配工作量;设置过高会流失老用户。通常参考 Android Studio 建议的设备覆盖率进行设置。