使用 Android Studio 创建 Android 项目,第一个模板就是 “No Activity”,也就是没有一个窗口的项目,等同于空项目,是一个项目最基础的模板。这里我们使用"No Activity"模板,在完成在此基础上手动添加 Activity 等一些基本功能,使窗口能够活动起来,用来学习 Activity 相关的知识。

以下可能会用到的缩写:

  • AS = Android Studio

创建 No Activity 工程

  1. 创建新工程
  1. 选择 No Activity 模板,后 Next 选项
  1. 填写 app 信息,后 Finish
  1. 等待 Android Studio 完成 app 初始化
  1. 发现警告提示

点击右下方 “Event Log” 显示

  1. 处理 Gradle jdk 与 Android Studio 使用 JDK 不一直问题
    问题 5 是由于 Gradle 与 AndroidStudio 使用了不一致的 JDK 造成的提示,选择 Select a JDK 或者在 Gralde settting 中设置 JDK 与 ANdroid Studio 一致即可。
  1. Resolved:JDK_1_8 问题
    打开 Rpoject Structure,选择到 Modules 选项,出现红色 Resolved:JDK_1_8
  1. 解决问题 7 中 Resolved:JDK_1_8

    • 在 project 层 build.gradle 中创建java_version 变量:

      ext.java_version = JavaVersion.VERSION_1_8

    • 修改 module app 中 bugild.gradle 中 sourceCompatibility 与 targetCompatibility 的值

      1
      2
      3
      4
      5
      //sourceCompatibility JavaVersion.VERSION_1_8
      //targetCompatibility JavaVersion.VERSION_1_8
      // 修改
      sourceCompatibility java_version
      targetCompatibility java_version
  2. 解决 Avoid using + in version numbers; can lead to unpredictable and unrepeatable builds (junit:junit:4.+)

    • 打开 Project Structure 定位到 Suggestions,点击 Suggestions 项:
    • 选中升级到 “4.13.1” 点击 Apply 后 点击 OK
  3. 重新 gradle sync,没有任何错误及警告

  • grad了sync

手动创建第一个 Activity

  1. 选中 app 中 java 源码包,点击右键,在弹出菜单中,依次选择 “New” -> "Kotlin File/Class"菜单项

  2. 填写类名,创建 MainActivity 类

  3. 完善 MainActivity 类,使其继承 AppCompatActivity 类,并重载 onCreate 方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package com.example.uiapp

    import android.os.Bundle
    import androidx.appcompat.app.AppCompatActivity

    //MainActivity 必须是 AppCompatActivity 的直接或间接子类
    class MainActivity : AppCompatActivity(){
    //重载函数必须调用父类中的相同方法
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    }
    }

创建 UI 布局(Layout)

  1. 选中 app 中 res 资源上,点击右键,在弹出菜单中,依次选择 “New” -> "Android Resource File"菜单项

  2. 设置 Layout 属性,创建 activity_main layout

  3. Resource Layout 布局

  4. 将 layout activity_main 绑定到 MainActivity 类:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package com.example.uiapp

    import android.os.Bundle
    import androidx.appcompat.app.AppCompatActivity

    class MainActivity : AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    // 此方法将 layout activity_main 绑定到 MainActivity 类
    setContentView(R.layout.activity_main)
    }
    }
  5. 在Android Manifest.xml 中注册 activity_main

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.uiapp">

    <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.UIApp" >

    //---以下 为添加 main activity 并设置为启动 activity ---------------//
    <activity android:name=".MainActivity" android:label="Main Activity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    </activity>
    //--- main activity 添加结束 ---------------//

    </application>
    </manifest>

编译和运行项目

  1. 首先设置 AVD 模拟器,用来模拟真机
    请参照其他文档设置 AVD 模拟器

  2. 点击 绿色 “运行” 按钮,显示如下:


  至此,我们完成创建空项目,添加类、添加资源,并绑定类与资源,并设置了启动项等,下节我们在此基础上增加一些控件及窗口间的调用。