一、页面和布局页面一个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 version1.0 encodingutf-8? androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:apphttp://schemas.android.com/apk/res-auto xmlns:toolshttp://schemas.android.com/tools android:idid/main android:layout_widthmatch_parent android:layout_heightmatch_parent tools:context.MainActivity TextView android:layout_widthwrap_content android:layout_heightwrap_content android:textHello World! app:layout_constraintBottom_toBottomOfparent app:layout_constraintEnd_toEndOfparent app:layout_constraintStart_toStartOfparent app:layout_constraintTop_toTopOfparent / /androidx.constraintlayout.widget.ConstraintLayout页面Activity代码解读class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } }基类AppCompatActivity我们编写的页面需要继承AppCompatActivityAppCompatActivity是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:idid/textView android:textHello World! / !-- 另一种写法等价 -- TextView android:idid/textView android:textHello World!/2.3.2.双标签用标签名 ... /标签名格式表示有子节点或复杂结构常见于容器布局如LinearLayout、RelativeLayout特点必须成对出现开始标签和结束标签可以嵌套子标签适用于需要组合多个控件的布局!-- 双标签容器布局 -- LinearLayout android:layout_widthmatch_parent android:layout_heightmatch_parent android:orientationvertical !-- 子标签TextView 和 Button -- TextView android:text第一行 / Button android:text点击我 / /LinearLayout实战小技巧:代码格式化按Ctrl Alt LWindows/Linux或Cmd Option LMac自动格式化 XML 和 / 分别可以快速设置单标签和双标签详情见视频演示书写标签的时候一定要先写才会出现代码提示三、AndroidManifest.xml3.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/AppTheme3.2.2.activity标签android:name指定 Activity 类名需包含包名如.MainActivityandroid:screenOrientation屏幕方向portrait/landscapeandroid:launchMode启动模式singleTop/standard3.2.3.Intent Filter意图过滤器作用告诉系统哪些 Intent 可以触发当前 Activity常见配置action指定 Intent 的动作如MAIN表示主入口category指定 Intent 的类别如LAUNCHER表示启动器3.2.4.权限申明uses-permission android:nameandroid.permission.INTERNET / !-- 网络权限 -- uses-permission android:nameandroid.permission.CAMERA / !-- 相机权限 --注意事项危险权限如位置、通讯录需在AndroidManifest中声明并在运行时动态申请Android 6.0使用 PermissionX 等第三方库简化权限处理四、实战修改应用图标和名称修改名称打开项目启动Android Studio打开你正在开发的项目。找到strings.xml文件在项目的res/values目录下你会看到一个名为strings.xml的文件。这个文件中存储了应用中使用的各种字符串资源包括应用名称。修改应用名称打开strings.xml文件在其中找到string nameapp_name你的应用名称/string这一行代码。将 “你的应用名称” 替换为你想要的新名称比如string nameapp_name我的新应用/string。保存修改保存strings.xml文件后你会发现应用名称在模拟器或者真机上的显示已经更新啦。android:labelstring/app_name resources string nameapp_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.layoutsetContentView(R.layout.activity_main)字符串R.stringtextView.setText(R.string.app_name)图片/图标R.drawableimageView.setImageResource(R.drawable.ic_launcher)颜色值R.colortextView.setTextColor(R.color.red)5.4.总结R 类是 Android 开发的「资源管家」使用它能大大提高开发效率。牢记两点资源文件命名和路径必须严格遵循规范。修改资源后一定要清理项目重新编译。六、创建新的Activity选中项目包名下的文件夹右键新建activity模板可以选择Empty Views Activity输入Activity的名称如何指定App启动的第一个activity?两种方式方式一通过配置intent-filter指定常规方式方式二通过配置launch options exportedtrue (零时指定某个页面作为启动页)方式二这种方式只能通过编译运行启动指定页面在模拟器或者真机的桌面点击应用图标仍然还是用的方式一