杰瑞科技汇

android java 教程

Android Java 开发教程:从入门到实践

这份教程将分为以下几个部分:

android java 教程-图1
(图片来源网络,侵删)
  1. 前置准备:搭建开发环境
  2. 核心概念:Android 应用是如何工作的?
  3. 动手实践:创建你的第一个应用 "Hello World!"
  4. 深入探索:UI、交互与数据存储
  5. 学习资源与进阶之路

第一部分:前置准备 - 搭建开发环境

在开始编码之前,你需要安装必要的软件。

安装 Java Development Kit (JDK)

Android 应用是用 Java 语言编写的,因此你需要 JDK 来编译和运行 Java 代码。

  • 下载地址Oracle JDK 下载页面OpenJDK (推荐使用较新的 LTS 版本,如 JDK 11 或 17)。
  • 安装:根据你的操作系统(Windows, macOS, Linux)下载对应的安装包并按照提示进行安装,确保在安装过程中勾选 "Add to PATH" 选项。

安装 Android Studio

这是 Google 官方推荐的 Android 集成开发环境,它集成了代码编辑器、调试器、模拟器等所有必需的工具。

  • 下载地址Android Studio 官网
  • 安装:下载后直接运行安装程序,安装过程中,它会自动检测你是否已安装 JDK,如果没有,它会提示你下载,请耐心等待所有组件下载和安装完成。

验证安装

安装完成后,打开 Android Studio,首次启动时,它可能会进行一些初始配置(如下载 SDK 组件),配置完成后,你会看到一个欢迎界面,这表明你的环境已经搭建成功!

android java 教程-图2
(图片来源网络,侵删)

第二部分:核心概念 - Android 应用是如何工作的?

在写代码之前,你需要了解几个关键概念。

四大组件

Android 应用由几个核心构建块组成,其中最重要的四个是:

  • Activity (活动):一个屏幕,每个屏幕通常对应一个 Activity,一个应用可能有“登录屏幕”、“主屏幕”、“设置屏幕”等,当你切换屏幕时,实际上是在启动和销毁不同的 Activity。
  • Service (服务):在后台运行执行长时间操作组件,没有用户界面,音乐播放器、下载文件等。
  • Broadcast Receiver (广播接收器):响应系统级或应用级事件的组件,当手机电量低时,系统会发出一个广播,你的应用可以接收这个广播并做出相应处理。
  • Content Provider (内容提供者):管理应用数据的组件,并允许其他应用访问这些数据(需要权限),手机的联系人信息就是由一个 Content Provider 管理的。

对于初学者,我们主要从 Activity 开始。

布局

Activity 的用户界面是由 布局 定义的,布局是一个 XML 文件,它描述了屏幕上有哪些控件(如按钮、文本框)以及它们的位置和样式,你可以在 XML 中编写布局,也可以使用 Android Studio 的可视化编辑器来拖拽生成。

android java 教程-图3
(图片来源网络,侵删)

Intent (意图)

Intent 是 Android 中不同组件之间通信的“信使”,你可以用它来:

  • 启动一个 Activity:点击登录按钮后,通过 Intent 启动主界面 Activity。
  • 启动一个 Service
  • 发送广播

第三部分:动手实践:创建你的第一个应用 "Hello World!"

让我们创建一个最简单的应用,它在屏幕上显示一行文字。

步骤 1:创建新项目

  1. 打开 Android Studio。
  2. 点击 "New Project"。
  3. 选择 "Empty Views Activity"(空视图活动),然后点击 "Next"。
  4. 配置你的项目:
    • Name: MyFirstApp (你的应用名称)
    • Package name: com.example.myfirstapp (应用的唯一标识符)
    • Save location: 选择一个保存项目的文件夹。
    • Language: Java (这是我们教程的重点)
    • Minimum SDK: 选择一个较低的 API 级别(如 API 24),这样可以在更多旧版手机上运行。
  5. 点击 "Finish",Android Studio 会为你生成项目结构并开始构建。

步骤 2:认识项目结构

在左侧的 "Project" 面板中,你会看到以下关键文件夹:

  • app/src/main/java: 你的 Java 源代码都在这里,你会看到一个包名 com.example.myfirstapp,下面有 MainActivity.java 文件。
  • app/src/main/res: 你的资源文件都在这里。
    • layout: 存放 XML 布局文件,默认有一个 activity_main.xml,它定义了主界面的布局。
    • mipmap-hdpi, mipmap-mdpi 等: 存放应用图标。
    • values: 存放字符串 (strings.xml)、颜色 (colors.xml) 等资源。

步骤 3:修改布局文件

  1. 打开 app/src/main/res/layout/activity_main.xml 文件。

  2. 默认情况下,你会看到一个 TextViewTextView 就是用于显示文本的控件。

  3. 切换到 "Code""Split" 视图,查看 XML 代码:

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    • android:text="Hello World!" 这行代码定义了 TextView 显示的文字。
  4. 打开 app/src/main/res/values/strings.xml 文件,你会看到:

    <string name="hello_world">Hello World!</string>

    我们将使用这个资源来代替硬编码的字符串,这是 Android 开发的良好实践。

  5. 回到 activity_main.xml,修改 TextViewandroid:text 属性,引用这个字符串资源:

    android:text="@string/hello_world"

    @string/hello_world 的意思是:去 strings.xml 文件中寻找名为 hello_world 的字符串。

步骤 4:运行应用

  1. 连接你的 Android 手机(开启“开发者选项”和“USB调试”),或者使用 Android Studio 自带的模拟器。
  2. 在 Android Studio 顶部工具栏,选择一个设备(模拟器或真机)。
  3. 点击绿色的 "Run" 按钮(一个三角形图标)。
  4. 等待片刻,应用会安装到设备上并自动启动,你将看到一个屏幕,上面显示着 "Hello World!"。

恭喜!你已经成功创建了你的第一个 Android 应用!


第四部分:深入探索 - UI、交互与数据存储

让我们让应用变得更有趣一点。

添加一个按钮并响应点击

目标:在屏幕上添加一个按钮,点击按钮后,将 "Hello World!" 的文字改为 "你好,Android!"。

步骤 1: 修改布局文件 (activity_main.xml)TextView 下面添加一个 ButtonLinearLayout 是一个简单的布局,它会垂直或水平排列其子控件。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" <!-- 垂直排列 -->
    android:gravity="center" <!-- 内容居中 -->
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/myTextView" <!-- 为TextView添加一个ID,方便在Java代码中找到它 -->
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        android:textSize="24sp" <!-- 设置字体大小 -->
        android:layout_marginBottom="20dp" <!-- 与下方按钮的距离 -->
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <Button
        android:id="@+id/myButton" <!-- 为Button添加一个ID -->
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击我" <!-- 按钮上的文字 -->
        android:textAllCaps="false" <!-- 不让所有字母大写 -->
        />
</LinearLayout>

步骤 2: 修改 Java 代码 (MainActivity.java)

  1. 打开 app/src/main/java/com/example/myfirstapp/MainActivity.java
  2. onCreate 方法中,添加以下代码来找到按钮并设置点击监听器。
package com.example.myfirstapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; // 导入Button类
import android.widget.TextView; // 导入TextView类
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // 加载布局文件
        // 1. 通过ID找到布局中的Button和TextView
        Button myButton = findViewById(R.id.myButton);
        TextView myTextView = findViewById(R.id.myTextView);
        // 2. 为Button设置一个点击事件监听器
        myButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 当按钮被点击时,这里的代码会执行
                // 3. 修改TextView的显示文本
                myTextView.setText("你好,Android!");
            }
        });
    }
}

代码解释

  • findViewById(R.id.myButton): 通过在 XML 中定义的 id (R.id.myButton) 来找到对应的 Button 控件。R 是一个自动生成的类,包含了所有资源的 ID。
  • setOnClickListener: 为按钮设置一个点击监听器,当用户点击按钮时,它会执行 onClick 方法中的代码。
  • myTextView.setText("..."): 调用 TextViewsetText 方法来改变它显示的内容。

再次运行应用,现在你应该能看到一个按钮,点击它,文字就会改变。

数据存储:使用 SharedPreferences

SharedPreferences 是一种轻量级的数据存储方式,用于保存简单的键值对数据,非常适合保存应用的设置、用户偏好等。

目标:保存用户点击按钮的次数,并在下次打开应用时显示出来。

步骤 1: 修改 Java 代码 (MainActivity.java)onCreate 方法中,添加 SharedPreferences 相关的逻辑。

// ... (前面的import语句)
public class MainActivity extends AppCompatActivity {
    private TextView myTextView;
    private Button myButton;
    private int clickCount = 0; // 用于记录点击次数
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myTextView = findViewById(R.id.myTextView);
        myButton = findViewById(R.id.myButton);
        // 1. 获取SharedPreferences对象
        // "MyPrefs" 是文件名,MODE_PRIVATE 表示只有这个应用可以访问
        SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
        // 2. 从SharedPreferences中读取上一次保存的点击次数
        // "click_count" 是键,0 是默认值(如果键不存在,则返回0)
        clickCount = sharedPreferences.getInt("click_count", 0);
        myTextView.setText("点击次数: " + clickCount);
        myButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clickCount++; // 点击次数加1
                // 3. 更新TextView
                myTextView.setText("点击次数: " + clickCount);
                // 4. 将新的点击次数保存到SharedPreferences
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putInt("click_count", clickCount); // 存入键值对
                editor.apply(); // 提交修改,必须调用!
            }
        });
    }
}

代码解释

  • getSharedPreferences("MyPrefs", MODE_PRIVATE): 获取一个名为 "MyPrefs" 的 SharedPreferences 文件。
  • sharedPreferences.getInt("click_count", 0): 尝试从文件中读取名为 "click_count" 的整数,如果不存在,则使用默认值 0
  • sharedPreferences.edit(): 获取一个 Editor 对象,用于修改数据。
  • editor.putInt(...): 要保存的数据(键值对)。
  • editor.apply(): 提交修改。apply() 是异步的,不会阻塞主线程,推荐使用。

再次运行应用,点击几次按钮后,关闭应用,然后重新打开,你会发现,点击次数被记录下来了!


第五部分:学习资源与进阶之路

你已经掌握了 Android Java 开发的基础,你可以通过以下资源继续深入学习。

官方文档 (最重要!)

在线教程与课程

  • Udemy / Coursera: 搜索 "Android Development with Java",有很多高质量的课程,Angela Yu 的课程非常受欢迎。
  • Bilibili / YouTube: 搜索 "Android Java 教程",有大量免费的视频教程,可以跟着视频一步步敲代码。

实践与项目

  • 从模仿开始: 尝试仿制一些简单的 App,如计算器、待办事项列表、天气预报(使用公开 API)。
  • 阅读开源代码: 在 GitHub 上找一些 Star 数量适中的开源 Android 项目,阅读它们的代码,学习优秀的架构和编码规范。

进阶主题

当你掌握了基础后,可以开始学习:

  • Material Design: Google 的设计规范,让你的 App 更现代、更美观。
  • RecyclerView: 用于高效显示长列表数据(如微信聊天记录),是 ListView 的升级版。
  • 网络编程: 使用 Retrofit 或 OkHttp 从服务器获取数据。
  • Jetpack 组件: 现代 Android 开发推荐使用的库,如 ViewModel (管理 UI 数据)、LiveData (数据观察者)、Room (数据库) 等,虽然 Kotlin 是主流,但 Jetpack 同样支持 Java。
  • 多线程: 使用 AsyncTask (已废弃) 或 Executor/Handler 来处理耗时操作,避免界面卡顿。

祝你学习愉快,早日成为一名优秀的 Android 开发者!

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