一、页面和布局
页面:一个APP通常由多个页面组成,如:登录页面、注册页面、首页、个人中心、商品详情页、购物车等等
在传统Android开发中,一个页面通常由两部分组成:
逻辑代码,即页面的逻辑功能,数据,交互等,一般使用Java代码或者kotlin代码
布局代码,通常使用xml布局
逻辑代码:
Kotlin
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
}
}
布局代码:
XML
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<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" />
</androidx.constraintlayout.widget.ConstraintLayout>
页面Activity
代码解读:
Kotlin
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
基类:
AppCompatActivity我们编写的页面需要继承
AppCompatActivity,AppCompatActivity是Google提供的一个父类
对 Material Design 设计规范的支持
向后兼容旧版 Android 系统
集成 ActionBar(应用栏)
生命周期方法 :
onCreate()
onCreate()是 Activity 生命周期的第一个生命周期回调方法当 Activity 第一次被创建时调用
必须调用
super.onCreate(savedInstanceState)来执行父类初始化
加载布局:
setContentView()
设置当前 Activity 的可视化布局
R.layout.activity_main表示
R是自动生成的资源类
layout表示布局资源目录
activity_main是具体的布局文件名(位于 res/layout 目录)
文件对应关系:

自学探索:
在
activity_main.xml中添加基本 UI 组件学习如何在 Activity 中通过
findViewById()获取视图控件了解页面(Activity)的其他生命周期方法,尝试重写其他生命周期方法(如
onResume())创建第二个 Activity 并学习跳转方法
二、XML布局
2.1.基本概念
文件类型 :
.xml文件(用 XML 语言描述界面)存放位置 :
项目根目录 → res/layout/文件夹
2.2.三种预览模式
-
Design模式:可视化界面设计,适合快速查看布局效果,支持拖放控件和实时预览。但可能不适合复杂布局或需要精确调整的情况。
-
Split模式:左右分屏,左边是代码,右边是设计视图。适合同时查看设计和代码,方便学习和调试。
-
Code模式:直接编辑XML代码,适合有经验开发者需要精确控制布局或处理复杂结构的情况。

2.3.标签
标签分类:
-
单标签(自闭合标签)
-
双标签
2.3.1.单标签(自闭合标签)
用 <标签名 /> 格式表示,没有子节点且自动闭合,常见于简单控件或声明性元素。
适用于纯展示型控件(如 TextView、Button)
XML
<!-- 自闭合标签 -->
<TextView
android:id="@+id/textView"
android:text="Hello World!" />
<!-- 另一种写法(等价) -->
<TextView android:id="@+id/textView" android:text="Hello World!"/>
2.3.2.双标签
用 <标签名> ... </标签名> 格式表示,有子节点或复杂结构 ,常见于容器布局(如 LinearLayout、RelativeLayout)
特点
-
必须成对出现(开始标签和结束标签)
-
可以嵌套子标签
-
适用于需要组合多个控件的布局
XML
<!-- 双标签(容器布局) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- 子标签:TextView 和 Button -->
<TextView
android:text="第一行" />
<Button
android:text="点击我" />
</LinearLayout>
实战小技巧:
代码格式化,按
Ctrl + Alt + L(Windows/Linux)或Cmd + Option + L(Mac)自动格式化 XML> 和 / 分别可以快速设置单标签和双标签,详情见视频演示
书写标签的时候一定要先写<,才会出现代码提示
三、AndroidManifest.xml
3.1.什么是AndroidManifest.xml?
作用:清单文件,向 Android 系统声明应用的「身份信息」和「组件清单」
关键功能:
声明应用包含哪些组件(Activity/Service/Receiver/Provider)
申请运行所需权限(如网络访问、相机使用)
指定应用的图标、名称、版本号
3.2.核心配置
3.2.1.<application> 标签
android:icon:应用图标(放在res/mipmap目录)
android:label:应用名称(需在strings.xml中定义)
android:theme:主题样式(如@style/AppTheme
3.2.2.<activity> 标签
android:name:指定 Activity 类名(需包含包名,如.MainActivity)android:screenOrientation:屏幕方向(portrait/landscape)android:launchMode:启动模式(singleTop/standard)
3.2.3.Intent Filter(意图过滤器)
作用:告诉系统哪些 Intent 可以触发当前 Activity
常见配置:
<action>:指定 Intent 的动作(如MAIN表示主入口)
<category>:指定 Intent 的类别(如LAUNCHER表示启动器)
3.2.4.权限申明
XML
<uses-permission android:name="android.permission.INTERNET" /> <!-- 网络权限 -->
<uses-permission android:name="android.permission.CAMERA" /> <!-- 相机权限 -->
注意事项:
危险权限(如位置、通讯录)需在
AndroidManifest中声明,并在运行时动态申请(Android 6.0+)使用 PermissionX 等第三方库简化权限处理
四、实战:修改应用图标和名称
修改名称
打开项目:启动Android Studio,打开你正在开发的项目。
找到
strings.xml文件 :在项目的res/values目录下,你会看到一个名为strings.xml的文件。这个文件中存储了应用中使用的各种字符串资源,包括应用名称。修改应用名称 :打开
strings.xml文件,在其中找到<string name="app_name">你的应用名称</string>这一行代码。将 "你的应用名称" 替换为你想要的新名称,比如<string name="app_name">我的新应用</string>。保存修改 :保存
strings.xml文件后,你会发现应用名称在模拟器或者真机上的显示已经更新啦。
XML
android:label="@string/app_name"
<resources>
<string name="app_name">待办助手</string>
</resources>
修改应用图标
使用Image Asset工具,设计应用图标

设计图标

五、R类
5.1.R类是什么?
R 是 Android 自动生成的 静态资源类,相当于一个「资源字典」,用来快速查找应用中的各种资源(布局、图片、字符串等)
5.2.生成规则:
每当你添加/修改资源文件(如
activity_main.xml、strings.xml、drawable/ic_launcher.png)时,Android Studio 会自动扫描并更新R类。如果资源文件命名不规范或路径错误,
R类可能无法生成,导致编译失败。
5.3.常见R类资源
|-------|------------|----------------------------------------------------|
| 资源类型 | 对应 R 类成员 | 示例代码 |
| 布局文件 | R.layout | setContentView(R.layout.activity_main) |
| 字符串 | R.string | textView.setText(R.string.app_name) |
| 图片/图标 | R.drawable | imageView.setImageResource(R.drawable.ic_launcher) |
| 颜色值 | R.color | textView.setTextColor(R.color.red) |
5.4.总结:
R 类是 Android 开发的「资源管家」,使用它能大大提高开发效率。
牢记两点:
资源文件命名和路径必须严格遵循规范。
修改资源后一定要清理项目重新编译。
六、创建新的Activity
选中项目包名下的文件夹,右键,新建activity,模板可以选择Empty Views Activity,输入Activity的名称
如何指定App启动的第一个activity?两种方式
方式一:通过配置intent-filter指定(常规方式)
方式二:通过配置launch options + exported=true (零时指定某个页面作为启动页),方式二这种方式只能通过编译运行启动指定页面,在模拟器或者真机的桌面,点击应用图标,仍然还是用的方式一