Android Studio 项目模板完全指南

作者:90后晨仔日期:2026/4/22

本文将详细介绍 Android Studio 中创建项目时的各种模板选项,帮助你快速选择最适合的项目起点。一个小白的自学成长之路

一、设备类型分类

首先,左侧列表显示了不同的设备平台:

  • **Phone and Tablet:手机和平板应用(最常用)
  • **Wear OS:智能手表应用
  • **Android TV:电视应用
  • **Automotive:车载应用

二、Phone and Tablet 模板详解

1. No Activity

Snip20260420_13.png

  • **含义:创建一个没有任何活动(Activity)的空项目
  • **特点:只包含基本的项目结构和配置文件,无任何 UI 组件
  • **适用场景

- 需要完全自定义项目结构

- 仅开发库模块

- 构建纯后端服务

  • **技术点

- 最小化项目结构

- 无默认 UI 组件

- 仅包含基本的 Gradle 配置

  • **目录结构

```

project/

├── app/

│ ├── src/main/

│ │ ├── java/

│ │ └── res/

│ └── build.gradle

└── settings.gradle

```

2. Basic Activity

Snip20260420_14.png

  • **含义:基础活动模板
  • **特点:包含一个带工具栏(Toolbar)和浮动操作按钮(FAB)的简单界面
  • **适用场景

- 快速开始一个新应用

- 需要基本导航结构

- 学习 Android 基础开发

  • **技术点

- 使用传统 View 系统

- 包含基本的布局文件

- 集成 AppBarLayout 和 FloatingActionButton

  • **主要文件

- MainActivity.java / MainActivity.kt

- activity_main.xml

- content_main.xml

3. Basic Activity (Material3)

Snip20260420_15.png

  • **含义:基于 Material Design 3 的基础活动模板
  • **特点:使用最新的 Material 3 设计规范,界面更现代
  • **适用场景

- 需要符合现代 Android 设计风格的应用

- 追求最新视觉体验

  • **技术点

- 集成 Material 3 组件库

- 支持动态颜色

- 使用 Material 3 主题

  • **依赖项

```gradle

implementation 'com.google.android.material:material:1.9.0'

```

4. Bottom Navigation Activity

Snip20260420_16.png

  • **含义:底部导航栏活动模板
  • **特点:包含底部导航栏,可切换多个页面
  • **适用场景

- 需要多个主要功能模块的应用

- 社交媒体、新闻、工具类应用

  • **技术点

- 集成 BottomNavigationView

- 支持 fragment 切换

- 实现底部导航逻辑

  • **主要组件

- BottomNavigationView

- 多个 Fragment

- NavController

5. Empty Compose Activity

Snip20260422_1.png

  • **含义:空的 Jetpack Compose 活动模板
  • **特点:使用现代的 Compose 声明式 UI 框架
  • **适用场景

- 使用 Compose 开发现代 Android 应用

- 追求简洁、响应式的 UI 开发

  • **技术点

- 基于 Kotlin 和 Compose

- 无传统 XML 布局

- 使用 @Composable 函数构建 UI

  • **依赖项

```gradle

implementation "androidx.compose.ui:ui"

implementation "androidx.compose.material:material"

implementation "androidx.compose.ui:ui-tooling-preview"

```

6. Empty Compose Activity (Material3)

Snip20260422_2.png

  • **含义:基于 Material 3 的空 Compose 活动模板
  • **特点:结合 Compose 和 Material 3 设计规范
  • **适用场景

- 需要现代 UI 设计且使用 Compose 开发的应用

- 追求最新设计语言

  • **技术点

- 集成 Compose Material 3 组件

- 使用 Material 3 主题和颜色系统

- 支持动态颜色

  • **依赖项

```gradle

implementation "androidx.compose.material3:material3"

```

7. Empty Activity

Snip20260422_3.png

  • **含义:空活动模板
  • **特点:只包含一个基本的活动,无额外 UI 组件
  • **适用场景

- 需要从头构建界面的简单应用

- 学习 Activity 生命周期

  • **技术点

- 最小化的活动结构

- 仅包含基本生命周期方法

- 简单的布局文件

  • **主要文件

- MainActivity.java / MainActivity.kt

- activity_main.xml

8. Fullscreen Activity

Snip20260422_4.png

  • **含义:全屏活动模板
  • **特点:隐藏状态栏和导航栏,实现全屏显示
  • **适用场景

- 游戏、媒体播放器

- 阅读应用

- 需要沉浸式体验的场景

  • **技术点

- 设置全屏标志

- 处理系统 UI 可见性

- 实现沉浸式模式

  • **核心代码

```kotlin

private fun hideSystemUI() {

window.decorView.systemUiVisibility = (

View.SYSTEM_UI_FLAG_IMMERSIVE

or View.SYSTEM_UI_FLAG_LAYOUT_STABLE

or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

or View.SYSTEM_UI_FLAG_FULLSCREEN

)

}

```

9. Google AdMob Ads Activity

Snip20260422_5.png

  • **含义:集成 Google AdMob 广告的活动模板
  • **特点:包含横幅广告和插页式广告的示例代码
  • **适用场景

- 需要 monetization(变现)的应用

- 免费应用增加收入

  • **技术点

- 集成 AdMob SDK

- 实现广告展示逻辑

- 处理广告加载和展示事件

  • **依赖项

```gradle

implementation 'com.google.android.gms:play-services-ads:21.0.0'

```

10. Google Maps Activity

Snip20260422_6.png

  • **含义:集成 Google Maps 的活动模板
  • **特点:显示地图界面,包含基本的地图交互功能
  • **适用场景

- 需要地图功能的应用

- 导航、位置服务

- 基于位置的应用

  • **技术点

- 集成 Google Maps SDK

- 处理地图初始化和权限

- 实现地图标记和交互

  • **依赖项

```gradle

implementation 'com.google.android.gms:play-services-maps:18.0.2'

```

11. Google Pay Activity

Snip20260422_7.png

  • **含义:集成 Google Pay 支付功能的活动模板
  • **特点:包含支付流程的示例代码
  • **适用场景

- 需要实现移动支付的应用

- 电子商务、订阅服务

  • **技术点

- 集成 Google Pay API

- 处理支付请求和响应

- 实现支付流程

  • **依赖项

```gradle

implementation 'com.google.android.gms:play-services-wallet:19.1.0'

```

12. Login Activity

Snip20260422_8.png

  • **含义:登录界面活动模板
  • **特点:包含用户名/密码输入框、登录按钮和忘记密码链接
  • **适用场景

- 需要用户认证的应用

- 会员系统、个人中心

  • **技术点

- 基本的表单验证

- 登录逻辑示例

- 处理用户输入

  • **主要组件

- EditText(用户名、密码)

- Button(登录)

- TextView(忘记密码)

13. Primary/Detail Flow

Snip20260422_9.png

  • **含义:主详情流活动模板
  • **特点:在平板上显示主列表和详情,在手机上分开显示
  • **适用场景

- 需要展示列表和详情的应用

- 邮件、新闻、产品目录

  • **技术点

- 响应式布局

- 根据屏幕尺寸调整 UI

- 实现主-详情模式

  • **布局文件

- activity_item_detail.xml

- item_list.xml

- item_detail.xml

14. Navigation Drawer Activity

Snip20260422_10.png

  • **含义:侧边导航抽屉活动模板
  • **特点:包含左侧滑动抽屉,用于应用导航
  • **适用场景

- 功能模块较多的应用

- 需要统一导航入口

  • **技术点

- 集成 DrawerLayout

- 支持抽屉展开/收起

- 实现导航菜单

  • **主要组件

- DrawerLayout

- NavigationView

- Menu 资源

15. Responsive Activity

Snip20260422_11.png

  • **含义:响应式活动模板
  • **特点:根据屏幕尺寸自动调整布局
  • **适用场景

- 需要在不同设备上自适应显示的应用

- 跨设备兼容的应用

  • **技术点

- 使用 ConstraintLayout

- 响应式布局设计

- 适配不同屏幕尺寸

  • **布局技术

- ConstraintLayout 约束布局

- 百分比布局

- 自适应控件大小

16. Settings Activity

Snip20260422_12.png

  • **含义:设置界面活动模板
  • **特点:包含设置项列表,支持偏好设置存储
  • **适用场景

- 需要用户配置选项的应用

- 应用偏好设置

  • **技术点

- 集成 PreferenceFragment

- 处理设置项存储

- 实现设置项交互

  • **主要文件

- SettingsActivity.java / SettingsActivity.kt

- preferences.xml

17. Scrolling Activity

Snip20260422_13.png

  • **含义:滚动活动模板
  • **特点:包含可滚动的内容区域,支持协调布局
  • **适用场景

- 内容较长的页面

- 文章、产品详情

- 个人资料页面

  • **技术点

- 使用 CoordinatorLayout

- 支持滚动行为

- 实现折叠工具栏

  • **主要组件

- CoordinatorLayout

- AppBarLayout

- NestedScrollView

18. Tabbed Activity

Snip20260422_14.png

  • **含义:标签页活动模板
  • **特点:包含顶部或底部标签栏,可切换不同内容
  • **适用场景

- 需要分类展示内容的应用

- 社交媒体、工具应用

  • **技术点

- 集成 TabLayout 和 ViewPager

- 支持标签切换

- 实现页面滑动

  • **主要组件

- TabLayout

- ViewPager2

- FragmentStateAdapter

19. Fragment + ViewModel

Snip20260422_15.png

  • **含义:基于 Fragment 和 ViewModel 的活动模板
  • **特点:实现了 MVVM 架构,包含 Fragment 和 ViewModel
  • **适用场景

- 需要模块化开发和数据持久化的应用

- 复杂业务逻辑的应用

  • **技术点

- 使用 ViewModel 存储 UI 相关数据

- Fragment 处理 UI 显示

- 实现 MVVM 架构

  • **主要文件

- MainActivity.java / MainActivity.kt

- PlaceholderFragment.java / PlaceholderFragment.kt

- PageViewModel.java / PageViewModel.kt

20. Game Activity (C++)

Snip20260422_16.png

  • **含义:C++ 游戏活动模板
  • **特点:使用 C++ 开发游戏,集成 NativeActivity
  • **适用场景

- 高性能游戏开发

- 需要直接访问硬件的应用

  • **技术点

- 使用 NDK

- C++ 代码实现游戏逻辑

- 集成 NativeActivity

  • **主要文件

- main.cpp

- Android.mk / CMakeLists.txt

20. Native C++

Snip20260422_17.png

  • 含义:原生 C++ 项目模板
  • 特点:使用 C++ 语言开发 Android 应用,直接编译为原生代码
  • 适用场景
    • 需要高性能的应用(如图形处理、游戏、计算密集型任务)
    • 已有 C++ 代码库需要移植到 Android
    • 需要直接访问硬件或系统底层功能
    • 对应用性能有严格要求的场景
  • 技术点
    • 集成 Android NDK(Native Development Kit)
    • 使用 C++ 编写核心逻辑
    • 通过 JNI(Java Native Interface)实现 Java 与 C++ 交互
    • 支持 CMake 或 ndk-build 构建系统
  • 主要文件
    • cpp/native-lib.cpp:C++ 核心代码文件
    • CMakeLists.txtAndroid.mk:原生代码构建配置
    • MainActivity.java / MainActivity.kt:Java/Kotlin 入口
  • 依赖项
1externalNativeBuild {  
2    cmake {  
3        path "src/main/cpp/CMakeLists.txt"  
4    }  
5}  
  • 核心代码示例
1#include <jni.h>  
2#include <string>  
3extern "C" JNIEXPORT jstring JNICALL  
4Java_com_example_nativecpp_MainActivity_stringFromJNI(  
5        JNIEnv* env,  
6        jobject /* this */) {  
7    std::string hello = "Hello from C++";  
8    return env->NewStringUTF(hello.c_str());  
9}  

与 Game Activity (C++) 的区别

  • Native C++:通用原生 C++ 模板,适用于各种需要 C++ 性能的应用
  • Game Activity (C++):专门针对游戏开发优化的模板,集成了游戏循环、输入处理等游戏特定功能

使用建议

  • 性能敏感场景:优先选择 Native C++ 模板
  • 游戏开发:选择 Game Activity (C++) 模板
  • 混合开发:可以在 Java/Kotlin 中调用 C++ 代码,实现性能与开发效率的平衡
  • 跨平台代码:利用 C++ 的跨平台特性,共享代码到其他平台

Native C++ 模板为开发者提供了直接使用 C++ 开发 Android 应用的能力,特别适合对性能有高要求的场景,是连接原生代码与 Android 平台的重要桥梁。

三、如何选择模板

初学者选择指南

  • **入门学习:推荐使用 **Basic Activity 或 **Empty Compose Activity
  • **快速原型:选择 **Bottom Navigation Activity 或 **Tabbed Activity
  • **特定功能:直接选择对应的功能模板(如 Google Maps、Login Activity)

按技术栈选择

  • **现代 UI:优先选择带有 ** (Material3) ** 或 **Compose 的模板
  • **传统开发:选择基于 View 系统的模板
  • **性能要求:游戏或图形应用选择 ** Game Activity (C++) **
  • **自定义需求:选择 **No Activity 或 **Empty Activity

按应用类型选择

  • **社交媒体:**Bottom Navigation Activity 或 **Tabbed Activity
  • **内容阅读:**Scrolling Activity 或 **Fullscreen Activity
  • **工具应用:**Basic Activity 或 **Empty Activity
  • **游戏应用:** Game Activity (C++) **

四、模板使用技巧

1. 模板自定义

  • 创建项目后,可以根据需要修改模板代码
  • 保留有用的结构,删除不需要的部分
  • 调整布局和样式以符合应用需求

2. 多模块项目

  • 对于大型应用,考虑使用多模块结构
  • 主应用模块使用合适的模板
  • 功能模块可以使用 **No Activity 模板

3. 版本控制

  • 创建项目后立即初始化 Git 仓库
  • 添加 .gitignore 文件
  • 定期提交代码,保持版本历史

4. 依赖管理

  • 检查模板生成的依赖项
  • 根据需要添加或移除依赖
  • 保持依赖版本更新

五、总结

Android Studio 提供的模板旨在帮助开发者快速启动项目,减少重复代码工作。选择合适的模板可以大大提高开发效率,特别是对于常见的应用场景。

根据你的具体需求、技术栈和应用类型,选择最适合的模板作为起点,然后根据实际需要进行定制和扩展。无论选择哪种模板,都可以通过 Android Studio 强大的工具和功能,快速构建出高质量的 Android 应用。

希望本文对你理解 Android Studio 项目模板有所帮助!


Android Studio 项目模板完全指南》 是转载文章,点击查看原文


相关推荐


【Ollama本地大模型】性能优化思考
盛世隐者2026/4/13

文章目录 1. 硬件配置与模型选择2. 模型参数配置🧠 参数详解:为何这样配置你的10核+8GB显存 3. 本地API调用3.1 模型驻留⚙️ 工作原理🛠️ 配置方式💡 实用技巧💡 最佳实践与注意事项 3.2 流式输出🔌 原理:它是如何工作的?⚖️ 场景与效果对比⚙️ 默认行为与语言SDK差异🛠️ 实际应用示例1. 流式 (`stream: true`)2. 非流式 (`stream: false`) ✨ 高级特性:工具调用与思考过程💡 最佳实践 3.3


JVM学习问题记录(2) jps命令无法识别
Engineer邓祥浩2026/4/5

现象: 命令行输入jps命令,提示"jps不是内部或外部命令,也不是可运行的程序" 背景: 学习JVM,测试jdk自带性能分析工具,需要用到jps工具 思路: 先怀疑自己 可能的原因 JDK安装有问题,无jps.exe环境变量设置问题,找不到jps.exe 动手: 去JAVA_HOME配置的查看,发现jps.exe在,用绝对路径执行是正常的查看环境变量,JAVA_HOME和path配置也是正确的,echo结果也是对的 这里就感觉很奇怪,而且试了下javac命令是正常的,那也不是路径配置问题,这里


微软官方Python网格覆盖与鼠标控制库
鹓于2026/3/28

微软官方:网格覆盖 / 鼠标指针控制 Python 库 微软官方网格覆盖(Grid Overlay)、移动鼠标指针的 Python 库,是: ✅ 官方库:windows-ui-automation / pywin32 + 微软 Mouse 原生 API 微软官方推荐的 Python 鼠标 / 网格覆盖控制方案: pywin32(Windows 系统 API,官方支持)windows.ui.input(UWP 官方鼠标 / 指针 API)Win32 API mouse_event / Se


Room 3.0:这次不是升级,是重来
Android_小雨2026/3/20

用了 Room 这么多年,大家都习惯了那套熟悉的注解和生成代码。但 Google 这次直接玩大的:新包名、只生成 Kotlin 代码、彻底抛弃 KAPT,还把同步的 DAO 方法一刀切了。所有数据库操作必须走协程或者响应式类型。 这不是 Google 闲着没事干,而是为了彻底拥抱 Kotlin Multiplatform(KMP)。Room 从出生就死死绑定 Android 的 SupportSQLite,现在想跨平台(Android、iOS、JVM、甚至 Web),只能大破大立,甩掉历史包袱


OpenClaw龙虾图鉴:16只AI Agent选型指南
默语佬2026/3/11

这里写目录标题 🦞 OpenClaw龙虾图鉴:16只AI Agent选型指南🎯 快速选型指南🥇 第一梯队:官方正统1️⃣ OpenClaw - 原生官网框架2️⃣ 🌙 KimiClaw - 云端大存储+Kimi K2.53️⃣ ⚡ MaxClaw - 成本杀手,10秒部署 🥈 第二梯队:极客专精4️⃣ 🔥 NullClaw - 678KB极致疯子5️⃣ 🦀 OpenFang - Rust生产级Agent OS6️⃣ 🐍 Nanobot - Python死忠粉7️⃣ 🤖


一键部署 Ceph 集群!Ansible 运维实战教程
遇见火星2026/3/3

一、Ceph 基础介绍 1.1 什么是Ceph Ceph是一款开源的分布式存储系统,具备高可用、高扩展、无单点故障的特性,可统一提供块存储(RBD)、对象存储(RGW)、文件存储(CephFS)三种存储服务,广泛应用于云计算、大数据等场景。 1.2 Ceph核心组件 组件 作用 MON(Monitor) 集群监视器,维护集群状态、管理认证、决策集群拓扑 OSD(Object Storage Daemon) 存储数据的核心进程,负责数据的存储、复制、恢复、均衡 MDS(Met


一个简单Demo彻底理解前后端怎么连的丨Figma + Supabase + Vercel
阿星AI工作室2026/2/23

哈喽,大家好! 我是阿星👋 很多小白编程学了三个月,全是AI做主UI,难以融入自己的设计理念。 甚至不了解前后端到底怎么连通的。 一旦代码出错了,可能和AI对话还要重新理解一遍概念。所以今天,我们通过一个简单的case,把一个完整前后端的核心链路全跑一遍👇🏻 让你能自己把控UI、把控数据库、把控前端、后端。 🗺️ 先看一眼全局流程 整件事分五步,每一步做完了才能进下一步: ① Figma 画页面 →  ② 定接口契约 →  ③ Supabase 建数据库→  ④ AI 帮你写连接代码


EasyExcel的使用
脸大是真的好~2026/2/15

需求1:能够导出1个Excel文件,能够导入一个Excel文件; 需求2:导出的文件,能实现第1行,第123列的合并单元格:也就是会写注册处理器;知道sheet和cell是什么; 需求3:能实现合并的单元格设置单元格宽高,背景颜色,内容居中,字体大小; 需求4:能控制从任意行开始写入,并让要输出的字段居中; 需求5:导出能实现从任意行开始读入; 导出Excel文件 <!-- EasyExcel 核心依赖 --> <dependency> <groupId>com.alibaba</gro


提示词工程入门-03
一诺滚雪球2026/2/6

前言 "写个代码" "帮我写个快速排序函数,用 Python 实现,要求时间复杂度 O(n log n),添加详细注释" 同样是让 AI 写代码,为什么第一个指令得到的是模糊的回复,而第二个能得到精确满足需求的代码? 这就是提示词工程(Prompt Engineering)的魔力。 好的 Prompt = 好的输出。今天我们来学习如何写出让 AI "秒懂"的提示词。 1. 什么是提示词工程 提示词(Prompt):你给大模型的输入指令 提示词工程(Prompt Engineering):设计和


耗时 20 天,AI 漫剧 APP 和 Web 全部开源, 已斩获 764 星!
苍何2026/1/28

这是苍何的第 474 篇原创! 大家好,我是消失了一段时间的苍何。 1 月 5 号,我写了篇文章,并开源了 AI 漫剧 APP,获得了很多朋友的喜欢。 然后在 GitHub 上一共获得了 764 星和 181 fork,让我有些吃惊。 说实话,这个项目远超我们的预期,甚至连歪果哥都来给我们提 issue,希望支持双语。 甚至还有老板来咨询问我卖不卖这个 APP,我说,大哥,咱都开源了,自己去整吧,不用付费,哈哈哈。 这或许就是开源的魅力吧。 但我发现,APP 还是不大方便,评论区也不少求

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客