贝博恩创新科技网

Android Studio开发教程从哪开始学?

Android Studio 开发完整教程

目录

  1. 第一部分:环境准备与基础概念

    Android Studio开发教程从哪开始学?-图1
    (图片来源网络,侵删)
    • 1 什么是 Android?
    • 2 什么是 Android Studio?
    • 3 安装 Android Studio
    • 4 配置 Android SDK
    • 5 创建你的第一个项目:Hello World
    • 6 认识 Android Studio 界面
  2. 第二部分:核心组件与 UI 设计

    • 1 应用四大核心组件简介
    • 2 UI 布局:XML 与 ConstraintLayout
    • 3 常用 UI 组件
    • 4 使用布局预览器
    • 5 实践:构建一个简单的登录界面
  3. 第三部分:交互与逻辑 - Kotlin 编程基础

    • 1 为什么是 Kotlin?(Java 的替代者)
    • 2 Kotlin 基础语法速览
    • 3 在 Activity 中处理用户点击事件
    • 4 实践:让登录按钮动起来
  4. 第四部分:数据存储与列表显示

    • 1 使用 Intent 在页面间跳转
    • 2 使用 TextView 显示动态数据
    • 3 列表显示:RecyclerViewAdapter
    • 4 实践:创建一个简单的任务列表
  5. 第五部分:项目进阶与发布

    Android Studio开发教程从哪开始学?-图2
    (图片来源网络,侵删)
    • 1 应用图标与启动页
    • 2 调试与日志
    • 3 构建与生成 APK
    • 4 后续学习方向

第一部分:环境准备与基础概念

1 什么是 Android?

Android 是一个由 Google 开发和主导的、基于 Linux 内核的开源移动操作系统,它被广泛用于智能手机、平板电脑、智能手表、电视等设备,作为开发者,我们使用 Android SDK (Software Development Kit) 来为这个平台创建应用程序。

2 什么是 Android Studio?

Android Studio 是 Google 官方推荐的、用于 Android 应用开发的集成开发环境,它集成了代码编辑、调试、性能分析、版本控制(Git)等一系列强大功能,是开发 Android App 的首选工具。

3 安装 Android Studio

  1. 下载:访问 Android Studio 官方下载页面
  2. 选择系统:根据你的操作系统(Windows, macOS, Linux)下载对应的安装包。
  3. 安装
    • Windows:双击安装包,按照向导一步步操作,建议安装时勾选 "Android Virtual Device"(虚拟设备)。
    • macOS:将下载的 DMG 文件拖拽到 Applications 文件夹即可。
  4. 启动:安装完成后,启动 Android Studio。

4 配置 Android SDK

首次启动 Android Studio 时,它会引导你进行初始配置:

  1. Welcome 界面:选择 "Custom"(自定义)以进行更详细的配置。
  2. Settings 界面
    • Theme:选择你喜欢的主题(Darkest 或 Light)。
    • SDK:这是最关键的一步,它会自动检测并下载最新的 Android SDK 和平台工具,如果网络较慢,这个过程可能需要一些时间,确保至少选择一个 Android 版本(如 Android 13.0 "Tiramisu")作为你的 Minimum SDK(最低兼容版本)。
  3. Emulator Setup:创建一个虚拟设备(模拟器),这样你就可以在电脑上直接运行和测试你的 App,选择一个设备型号(如 Pixel 6),选择一个系统镜像(建议下载推荐的系统版本),然后点击 "Finish"。

5 创建你的第一个项目:Hello World

  1. 启动 Android Studio,点击 "New Project"。
  2. 选择模板:对于初学者,选择 "Empty Views Activity" 然后点击 "Next"。
  3. 配置项目
    • Name:给你的应用起个名字,如 "MyFirstApp"。
    • Package name:应用的唯一标识符,通常是反向域名格式,如 com.example.myfirstapp不要轻易修改
    • Save location:选择项目保存的路径。
    • Language:选择 Kotlin(强烈推荐)。
    • Minimum SDK:选择你之前配置的最低版本。
  4. 点击 "Finish",Android Studio 会开始构建项目,这可能需要几分钟,耐心等待。

6 认识 Android Studio 界面

项目构建完成后,你会看到主界面,主要包含以下几个部分:

Android Studio开发教程从哪开始学?-图3
(图片来源网络,侵删)
  • 工具栏:包含运行、调试、Git 等常用操作。
  • 导航栏:可以在项目文件、结构视图、设备日志之间切换。
  • 编辑器窗口:这是你编写代码和设计 UI 的主要区域。
  • 工具窗口栏:位于编辑器下方和右侧,包含:
    • Logcat:显示应用的运行日志,是调试的利器。
    • Build:显示项目的构建过程和错误信息。
    • Device Manager:管理你的虚拟设备或已连接的实体设备。

第二部分:核心组件与 UI 设计

1 应用四大核心组件简介

一个 Android App 通常由以下四种组件构成:

  • Activity:代表一个屏幕,一个 App 通常有多个 Activity,比如登录界面、主界面、设置界面等,我们目前看到的就是 MainActivity
  • Service:在后台执行长时间运行的任务,没有用户界面,比如播放音乐、下载文件。
  • Broadcast Receiver:接收系统或 App 发送的广播消息,比如手机电量低、网络状态改变。
  • Content Provider:管理应用的数据,并允许其他应用访问这些数据,比如联系人、相册数据。

2 UI 布局:XML 与 ConstraintLayout

应用的界面是通过 XML 文件来描述的,这些文件位于 app/res/layout/ 目录下。

  • XML:一种标记语言,用来定义 UI 的结构和外观。
  • ConstraintLayout:目前最推荐的布局方式,它允许你通过创建视图之间的约束关系来定位组件,非常适合构建复杂且灵活的界面,可以有效减少布局的嵌套层级,提高性能。

3 常用 UI 组件

app/res/layout/activity_main.xml 文件中,你会看到类似这样的代码:

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    tools:context=".MainActivity" />
<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click Me" />
  • TextView:用于显示文本。
  • Button:一个可点击的按钮。
  • EditText:用于用户输入文本。
  • ImageView:用于显示图片。

4 使用布局预览器

activity_main.xml 文件的右上角,有三个标签:

  • Split:代码和预览视图同时显示,最常用。
  • Code:只显示代码。
  • Design:可视化拖拽设计界面(不推荐初学者使用,因为手动编写 XML 更能理解布局原理)。

5 实践:构建一个简单的登录界面

  1. 打开 app/res/layout/activity_main.xml
  2. 删除默认的 TextViewButton
  3. 从左侧的 "Palette"(调色板)中拖拽以下组件到画布上:
    • 一个 TextView,修改 text 属性为 "用户名:"。
    • 一个 EditText,修改 id@+id/et_usernamehint 属性为 "请输入用户名"。
    • 一个 TextView,修改 text 属性为 "密码:"。
    • 一个 EditText,修改 id@+id/et_passwordinputType 属性为 textPassword(这样输入的内容会显示为点)。
    • 一个 Button,修改 id@+id/btn_logintext 属性为 "登录"。
  4. 使用 ConstraintLayout 的约束,让这些组件水平居中并垂直排列,你可以直接在预览图上拖拽组件的锚点(小圆点)到父布局的边缘或另一个组件上,或者手动编写 XML 代码。
  5. 最终的 activity_main.xml 应该看起来像这样:
    <androidx.constraintlayout.widget.ConstraintLayout ...>
        <TextView
            android:id="@+id/tv_username"
            ... />
        <EditText
            android:id="@+id/et_username"
            ... />
        <TextView
            android:id="@+id/tv_password"
            ... />
        <EditText
            android:id="@+id/et_password"
            ... />
        <Button
            android:id="@+id/btn_login"
            ... />
    </androidx.constraintlayout.widget.ConstraintLayout>

第三部分:交互与逻辑 - Kotlin 编程基础

1 为什么是 Kotlin?

Kotlin 是 Google 推荐的 Android 开发首选语言,它是现代、简洁、安全的编程语言,与 100% 兼容 Java,可以无缝调用 Java 代码,相比 Java,Kotlin 代码更简洁,空指针更安全。

2 Kotlin 基础语法速览

  • 变量
    • val:不可变变量(类似 Java 的 final)。
    • var:可变变量。
    • val name: String = "Alice"
    • var age: Int = 30
  • 函数
    fun sayHello(name: String): String {
        return "Hello, $name!"
    }
  • 空安全:Kotlin 区分可空和不可空类型。String 不能为空,String? 可以为空。
    val name: String? = null
    // 必须处理可能为 null 的情况
    val length = name?.length // name 为 null,则 length 也为 null

3 在 Activity 中处理用户点击事件

现在我们要让登录按钮点击后执行一些操作。

  1. 打开 app/java/com/example/myfirstapp/MainActivity.kt
  2. 我们需要在 onCreate 方法中获取 UI 组件的引用,使用 findViewById 或更现代的 ViewBinding(这里先用 findViewById 简化)。
  3. 然后为按钮设置一个点击监听器。
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // 加载布局文件
        // 1. 获取按钮的引用
        val loginButton: Button = findViewById(R.id.btn_login)
        // 2. 设置点击监听器
        loginButton.setOnClickListener {
            // 当按钮被点击时,这里的代码会执行
            Toast.makeText(this, "登录按钮被点击了!", Toast.LENGTH_SHORT).show()
        }
    }
}
  • findViewById(R.id.btn_login):通过在 XML 中定义的 id 来找到对应的 UI 组件。
  • setOnClickListener:设置一个监听器,当用户点击该视图时,会执行 中的代码块(Lambda 表达式)。
  • Toast.makeText(...).show():弹出一个简小的提示框。

4 实践:让登录按钮动起来

修改上面的 setOnClickListener,让它获取用户名和密码并显示出来。

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val loginButton: Button = findViewById(R.id.btn_login)
        val usernameEditText: EditText = findViewById(R.id.et_username)
        val passwordEditText: EditText = findViewById(R.id.et_password)
        loginButton.setOnClickListener {
            val username = usernameEditText.text.toString()
            val password = passwordEditText.text.toString()
            if (username.isEmpty() || password.isEmpty()) {
                Toast.makeText(this, "用户名和密码不能为空!", Toast.LENGTH_SHORT).show()
            } else {
                Toast.makeText(this, "用户名: $username, 密码: $password", Toast.LENGTH_LONG).show()
            }
        }
    }
}
  • usernameEditText.text.toString():获取 EditText 中的文本并转换为字符串。

第四部分:数据存储与列表显示

1 使用 Intent 在页面间跳转

Intent 是 Android 中不同组件之间通信的“信使”,我们可以用它来启动一个新的 Activity。

  1. 在 Android Studio 中,右键点击 app/java/com/example/myfirstapp 包 -> New -> Activity -> Empty Views Activity,命名为 WelcomeActivity

  2. 打开 WelcomeActivity.kt,修改 onCreate 方法:

    class WelcomeActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_welcome) // Android Studio 会自动创建这个布局文件
            // 获取从 MainActivity 传递过来的用户名
            val username = intent.getStringExtra("USERNAME")
            val welcomeText: TextView = findViewById(R.id.welcomeTextView)
            welcomeText.text = "欢迎, $username!"
        }
    }
  3. 修改 activity_welcome.xml,添加一个 TextView 并设置 id@+id/welcomeTextView

  4. 修改 MainActivity.kt 中的点击事件,使用 Intent 跳转:

    // 在 MainActivity.kt 中
    loginButton.setOnClickListener {
        val username = usernameEditText.text.toString()
        val password = passwordEditText.text.toString()
        if (username.isEmpty() || password.isEmpty()) {
            Toast.makeText(this, "用户名和密码不能为空!", Toast.LENGTH_SHORT).show()
        } else {
            // 创建一个 Intent,从当前 Activity 指向 WelcomeActivity
            val intent = Intent(this, WelcomeActivity::class.java)
            // 使用 putExtra 传递数据
            intent.putExtra("USERNAME", username)
            // 启动新的 Activity
            startActivity(intent)
        }
    }

2 使用 TextView 显示动态数据

这在上一节的 WelcomeActivity 中已经展示了,通过 intent.getStringExtra() 获取数据,然后使用 findViewById 找到 TextView,并调用 text 属性来设置内容。

3 列表显示:RecyclerView 和 `Adapter

当需要显示一个可滚动的列表时,RecyclerView 是最佳选择。

  • RecyclerView:一个高效的滚动容器,它只渲染当前屏幕可见的项,大大提升了性能。
  • Adapter:连接数据源(如一个 List)和 RecyclerView 的桥梁,它负责将数据列表中的每一项“适配”成列表中的一个列表项(View)。

4 实践:创建一个简单的任务列表

  1. 准备数据:在 MainActivity.kt 中创建一个任务列表。

    val taskList = mutableListOf("学习 Android", "去健身", "买菜做饭")
  2. 添加 RecyclerView:在 activity_main.xml 中添加一个 RecyclerView

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" />
  3. 创建列表项布局:右键点击 app/res/layout -> New -> Layout Resource File,命名为 item_task.xml,设计一个简单的布局,包含一个 TextView

  4. 创建 Adapter

    • 右键点击包名 -> New -> Kotlin Class/File,选择 Class,命名为 TaskAdapter

    • 代码结构如下:

      class TaskAdapter(private val taskList: List<String>) : RecyclerView.Adapter<TaskAdapter.TaskViewHolder>() {
          // 定义一个 ViewHolder,用来缓存每个列表项的 View
          class TaskViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
              val taskTextView: TextView = itemView.findViewById(R.id.taskTextView)
          }
          // 创建 ViewHolder
          override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TaskViewHolder {
              val view = LayoutInflater.from(parent.context).inflate(R.layout.item_task, parent, false)
              return TaskViewHolder(view)
          }
          // 绑定数据到 ViewHolder
          override fun onBindViewHolder(holder: TaskViewHolder, position: Int) {
              holder.taskTextView.text = taskList[position]
          }
          // 返回列表项总数
          override fun getItemCount() = taskList.size
      }
  5. 在 Activity 中使用 Adapter

    // 在 MainActivity.kt 的 onCreate 方法中
    val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
    val layoutManager = LinearLayoutManager(this) // 设置线性布局管理器
    recyclerView.layoutManager = layoutManager
    val adapter = TaskAdapter(taskList)
    recyclerView.adapter = adapter

第五部分:项目进阶与发布

1 应用图标与启动页

  • 应用图标:替换 app/src/main/res/mipmap-*/ic_launcher.png
  • 启动页:在 res/drawable 中创建 splash_screen.xml,然后在 AndroidManifest.xml 中为你的主 Activity 设置 android:windowBackground 属性。

2 调试与日志

  • 断点调试:在代码行号左侧点击,设置断点,然后点击 "Debug" 按钮(小虫子图标),程序会运行到断点处暂停,你可以查看变量值,单步执行代码。
  • Logcat:这是最重要的调试工具,你可以通过标签(TAG)、日志级别(Verbose, Debug, Info, Warn, Error)来筛选日志。Log.d("MyTag", "This is a debug message")

3 构建与生成 APK

  1. 点击顶部菜单 Build -> Build Bundle(s) / APK(s) -> Build APK(s)
  2. 构建完成后,Android Studio 会提示你 APK 文件的位置,这个 .apk 文件可以直接安装到 Android 设备或模拟器上。

4 后续学习方向

恭喜!你已经掌握了 Android 开发的基础,接下来可以探索:

  • MVVM 架构:学习更现代的应用架构,分离 UI 和业务逻辑。
  • Room 数据库:在本地持久化存储数据。
  • 网络请求:使用 Retrofit 和 OkHttp 从服务器获取数据。
  • 依赖注入:学习 Hilt 或 Dagger 来管理对象的生命周期。
  • Jetpack Compose:Google 推出的现代 UI 工具包,使用声明式 UI 编程,是未来的趋势。

这份教程为你打下了坚实的基础,最重要的是多动手实践,遇到问题多查阅官方文档和 Stack Overflow,祝你开发愉快!

分享:
扫描分享到社交APP
上一篇
下一篇