Android Studio 项目模板完全指南

0 阅读9分钟

本文将详细介绍 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 入口
  • 依赖项
    externalNativeBuild {
        cmake {
            path "src/main/cpp/CMakeLists.txt"
        }
    }
    
  • 核心代码示例
    #include <jni.h>
    #include <string>
    
    extern "C" JNIEXPORT jstring JNICALL
    Java_com_example_nativecpp_MainActivity_stringFromJNI(
            JNIEnv* env,
            jobject /* this */) {
        std::string hello = "Hello from C++";
        return env->NewStringUTF(hello.c_str());
    }
    

与 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 ActivityEmpty Compose Activity

  • 快速原型:选择 Bottom Navigation ActivityTabbed Activity

  • 特定功能:直接选择对应的功能模板(如 Google Maps、Login Activity)

按技术栈选择

  • 现代 UI:优先选择带有 ** (Material3) ** 或 Compose 的模板

  • 传统开发:选择基于 View 系统的模板

  • 性能要求:游戏或图形应用选择 **Game Activity (C++) **

  • 自定义需求:选择 No ActivityEmpty Activity

按应用类型选择

  • 社交媒体Bottom Navigation ActivityTabbed Activity

  • 内容阅读Scrolling ActivityFullscreen Activity

  • 工具应用Basic ActivityEmpty Activity

  • 游戏应用:**Game Activity (C++) **

四、模板使用技巧

1. 模板自定义

  • 创建项目后,可以根据需要修改模板代码

  • 保留有用的结构,删除不需要的部分

  • 调整布局和样式以符合应用需求

2. 多模块项目

  • 对于大型应用,考虑使用多模块结构

  • 主应用模块使用合适的模板

  • 功能模块可以使用 No Activity 模板

3. 版本控制

  • 创建项目后立即初始化 Git 仓库

  • 添加 .gitignore 文件

  • 定期提交代码,保持版本历史

4. 依赖管理

  • 检查模板生成的依赖项

  • 根据需要添加或移除依赖

  • 保持依赖版本更新

五、总结

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

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

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