首页 / Android 入门教程 / 创建第一个项目

Android 入门教程

创建第一个项目

本教程共 100 篇 · 第 7 篇 · 更新于 2026-07-28 · 约 7 分钟阅读

AndroidAndroid 入门教程Android Studio新建项目Jetpack ComposeEmpty Activity

7. 创建第一个项目

本节目标:用 Android Studio 创建第一个 Compose 项目,跑起来看到「Hello Android」,并搞懂生成的文件都是干什么的。

第 1 步:打开新建项目向导

启动 Android Studio,在欢迎界面点 New Project。如果已经打开了一个项目,菜单 File -> New -> New Project

第 2 步:选模板

弹出 New Project 窗口,左边是模板分类(Phone and Tablet、Wear OS、TV、Automotive),右边是具体模板。

我们选 Phone and Tablet 下的 Empty Activity(注意是新版那个,叫 “Empty Activity” 带 Compose 标识的,不是 “Empty Views Activity”)。

Note

Android 16 时代的 Android Studio,默认的 Empty Activity 模板就是基于 Jetpack Compose 的。如果你想用传统 XML 写界面,才选 “Empty Views Activity”。本教程以 Compose 为主线,所以选 Empty Activity。

点 Next。

第 3 步:填项目信息

这一页要填几个关键字段:

  • Name:应用名称,用户能在桌面看到,比如 My First App
  • Package name:包名,应用唯一标识,反域名格式,比如 com.example.myfirstapp。包名一旦定了很难改,上架后就不能改了。
  • Save location:项目保存路径,别带中文和空格。
  • LanguageKotlin(默认就是,本教程只用 Kotlin)。
  • Minimum SDK:最低支持版本。选 API 24(覆盖 95%+ 设备),或按你需求选。Compose 最低支持 API 21。
  • Build configuration language:选 Kotlin DSL(用 build.gradle.kts),这是现在推荐的方式,比老式 Groovy 更现代。

填完点 Finish。

Tip

包名建议用你自己拥有的域名反过来写,没有域名就用 com.你的名字.项目名。别用 com.example 上架,这是 Google 保留的演示包名。

第 4 步:等 Gradle 同步

点 Finish 后 Android Studio 开始创建项目、下载依赖、同步 Gradle。第一次比较慢,可能几分钟,取决于网络。

底部状态栏会显示进度。等到底部 Build 输出显示 BUILD SUCCESSFUL 或没有进度条了,就可以开始写代码了。

如果卡在下载依赖,多半是网络问题:

  • 配代理:Settings -> HTTP Proxy
  • 用国内镜像:在 settings.gradle.kts 里加阿里云镜像仓库(后面 Gradle 章会讲)。

第 5 步:认识生成的项目结构

项目创建好后,左侧切到 Android 视图,能看到这样的结构:

app/
├── manifests/
│   └── AndroidManifest.xml        ← 应用清单
├── java/com.example.myfirstapp/
│   ├── MainActivity.kt            ← 主 Activity
│   └── ui/theme/
│       ├── Color.kt               ← 颜色定义
│       ├── Theme.kt               ← 主题
│       └── Type.kt                ← 字体定义
└── res/
    ├── drawable/                  ← 图片
    ├── mipmap-*/                  ← 应用图标(多分辨率)
    ├── values/
    │   ├── strings.xml            ← 字符串
    │   └── themes.xml             ← 主题 XML
    └── xml/
        ├── backup_rules.xml
        └── data_extraction_rules.xml
Gradle Scripts/
├── build.gradle.kts (Project)     ← 项目级构建脚本
├── build.gradle.kts (Module :app) ← 模块级构建脚本
└── settings.gradle.kts            ← 项目设置

MainActivity.kt

这是应用的入口,长这样:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            MyFirstAppTheme {
                // A surface container using the background color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    Greeting("Android")
                }
            }
        }
    }
}

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
    Text(
        text = "Hello $name!",
        modifier = modifier
    )
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
    MyFirstAppTheme {
        Greeting("Android")
    }
}

关键点先扫一眼,不用全懂:

  • MainActivity 继承自 ComponentActivity,是 Compose 用的 Activity 基类。
  • setContent { ... } 里写 Compose 界面,替代传统 setContentView(R.layout.xxx)
  • @Composable 注解标记的函数是可组合函数(Composable Function),描述界面。
  • @Preview 注解的函数能在编辑器右侧实时预览,不用运行。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyFirstApp">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:theme="@style/Theme.MyFirstApp">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

清单声明了应用有一个 MainActivity,并且它是启动入口(MAIN + LAUNCHER)。点桌面图标就是启动这个 Activity。

build.gradle.kts (Module :app)

模块级构建脚本,声明依赖和构建配置:

plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.kotlin.android)
    alias(libs.plugins.compose.compiler)
}

android {
    namespace = "com.example.myfirstapp"
    compileSdk = 36

    defaultConfig {
        applicationId = "com.example.myfirstapp"
        minSdk = 24
        targetSdk = 36
        versionCode = 1
        versionName = "1.0"
    }
    // ...
}

dependencies {
    implementation(libs.androidx.core.ktx)
    implementation(platform(libs.androidx.compose.bom))
    implementation(libs.androidx.activity.compose)
    implementation(libs.androidx.ui)
    implementation(libs.androidx.material3)
    // ...
}

这里 libs.xxx 是用 Version Catalog(libs.versions.toml)统一管理依赖版本,比直接写版本号清晰。

第 6 步:改一下试试

Greeting 函数里的文本改成你自己的:

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
    Text(
        text = "你好,$name!这是我的第一个 Android 应用。",
        modifier = modifier
    )
}

然后 MainActivity 里调用改成:

Greeting("世界")

编辑器右侧如果有 Preview 面板,能看到实时变化。没有的话点右上角三个点 -> Preview 开启。

第 7 步:运行

顶部工具栏选好设备(模拟器或真机),点绿色三角 Run 按钮。下一节专门讲运行和调试,这里先让它跑起来看到「你好,世界」就行。

常见问题

同步失败:找不到依赖

网络问题。配代理或换镜像源。

编译报错:SDK not found

compileSdk 设了 36 但 SDK 里没装 Android 16 Platform。SDK Manager 里勾选 Android 16 装上。

包名想改

新项目最好一开始就定好。改了之后:Build -> Clean Project,再 Build -> Rebuild Project

小结

用 Empty Activity 模板创建项目,填好 Name、包名、Minimum SDK,等 Gradle 同步完成。生成的项目里 MainActivity.kt 是入口,setContent 里写 Compose 界面,AndroidManifest.xml 声明组件,build.gradle.kts 管依赖。下一节让它真正跑起来,并学调试。