入门
# 目录视图
![]() | ![]() |
|---|
Project:跟真实目录层级一样Android:按类型分类,在 Android 开发中主流的视图方式。
# Project
- app:
- build:编译制品目录
- src:源码目录
- androidTest:测试用例
- main:核心源代码
- java:存放 kotlin、java 代码
- res:资源文件、布局文件
- drawable:图片
- layout:布局文件目录
- values:字符串、颜色、主题等配置
- mipmap:应用图标文件
- AndroidManifest.xml:应用配置文件
- build.gradle:模块级别的构建配置
- gradle:构建工具目录
- build.gradle:项目级别的构建配置、
- setting.gradle:项目设置文件,类似
POM.xml
# Android
kotlin+java:即 kotlin、java 代码文件
# 真机调试
- USB 调试
- WIFI 调试(Android11+)
# ADB
ADB,全称 Android Debug Bridge。
scoop install main/adb
常用命令
adb install {apk文件路径}
# scrcpy 投屏工具
scoop install main/scrcpy
# 连接设备
scrcpy
# 页面和布局
在传统 Android 开发中,一个页面通常由两部分组成:
- 逻辑代码:即页面的逻辑功能,数据、交互等,一般使用 Java 或 kotlin 代码编写
- 布局代码:通常使用 xml 布局
逻辑代码
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
// 设置当前页面的布局,类似于要加载哪个HTML文件
// R 是自动生成的资源类,指向res/,类似于前端的@
// 指向res/layout/activity_main(.xml)
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
Android 中页面称为 Activity ,Activity 类必须继承 AppCompatActivity :
- 对 Material Design 设计规范的支持
- 向后兼容旧版 Android 系统
- 集成 ActionBar
# 生命周期
- onCreate:当 Activity 第一次被创建时调用,代码中必须执行
super.onCreate(savedInstanceState)
# XML 布局
存放位置: /res/layout
# AndroidManifest.xml
向 Android 系统声明应用的 身份信息 、 组件清单 ,可理解为备案文件。
- 声明应用包含哪些组件(Activity、Service、Receiver、Provide)
- 申请运行所需权限(如网络访问、相机使用),以前的版本在这里申请了就可以用,但新版使用敏感权限时需要用户动态授权。
- 指定应用图标、名称、版本号
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyApplication">
<activity
android:name=".MainActivity"
android:exported="true"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
跟微信小程序类似,每个页面 (activity) 都需要注册
uses-permission:权限声明,标签需要在application上方- 参考:
<uses-permission android:name="android.permission.INTERNET" />
- 参考:
application- android:icon:图标
- android:label:名称
- android:theme:主题
- 子标签
activity:application 下- android:name:类名
- 子标签
intent-filter:意图过滤器- 作用:告诉系统哪些 intent 可以触发当前 activity,
<action android:name="android.intent.action.MAIN" />+<category android:name="android.intent.category.LAUNCHER" />表示为 app 第一启动页
- 作用:告诉系统哪些 intent 可以触发当前 activity,
上次更新: 2026/08/20, 18:03:47

