一、页面和布局
页面:一个APP通常由多个页面组成,如:登录页面、注册页面、首页、个人中心、商品详情页、购物车等等
在传统Android开发中,一个页面通常由两部分组成:
逻辑代码,即页面的逻辑功能,数据,交互等,一般使用Java代码或者kotlin代码
布局代码,通常使用xml布局
逻辑代码:
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 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
代码解读:
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)
<!-- 自闭合标签 --> <TextView android:id="@+id/textView" android:text="Hello World!" /> <!-- 另一种写法(等价) --> <TextView android:id="@+id/textView" android:text="Hello World!"/>2.3.2.双标签
用<标签名> ... </标签名>格式表示,有子节点或复杂结构,常见于容器布局(如LinearLayout、RelativeLayout)
特点
必须成对出现(开始标签和结束标签)
可以嵌套子标签
适用于需要组合多个控件的布局
<!-- 双标签(容器布局) --> <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.权限申明
<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文件后,你会发现应用名称在模拟器或者真机上的显示已经更新啦。
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 (零时指定某个页面作为启动页),方式二这种方式只能通过编译运行启动指定页面,在模拟器或者真机的桌面,点击应用图标,仍然还是用的方式一