学习 Android(一)
<h2 id="简介">简介</h2><p>移动技术从未停止进化,而 Android 始终是创新的核心引擎。无论是渴望高薪职位、追求创业梦想,还是希望用技术创造价值,学习 Android 开发都是<strong>拥抱数字时代的战略性选择</strong>。从一行代码到一个改变世界的应用,你的旅程将从这里开始,接下来我们将开始进行学习Android开发。</p>
<h3 id="一安装-android-studio">一、安装 Android Studio</h3>
<ol>
<li><strong>下载 Android Studio</strong>
<ul>
<li><strong>官网地址</strong>:(最好开VPN)访问 developer.android.com/studio 或者 Android Studio 下载文件归档| Android Developers</li>
<li><strong>选择对应版本</strong>:
<ul>
<li><strong>Windows</strong>:下载 <code>.exe</code> 安装文件</li>
<li><strong>macOS</strong>:下载 <code>.dmg</code> 镜像文件</li>
<li><strong>Linux</strong>:下载 <code>.tar.gz</code> 压缩包</li>
</ul>
</li>
</ul>
</li>
<li><strong>安装 Android Studio</strong>
<ul>
<li><strong>Windows</strong>:
<ol>
<li>双击 <code>.exe</code> 文件,按向导完成安装(建议勾选 <strong>Android Virtual Device</strong> 选项)。</li>
<li>安装完成后启动 Android Studio,首次运行会提示安装 SDK 组件。</li>
</ol>
</li>
<li><strong>macOS</strong>:
<ol>
<li>拖拽 <code>.dmg</code> 中的 Android Studio 到 Applications 文件夹。</li>
<li>启动应用,接受协议并安装默认 SDK 组件。</li>
</ol>
</li>
<li><strong>Linux</strong>:
<ol>
<li>解压 <code>.tar.gz</code> 文件到目标目录(如 <code>/opt/android-studio</code>)。</li>
<li>进入 <code>bin</code> 目录,运行 <code>./studio.sh</code>,按提示完成 SDK 安装。</li>
</ol>
</li>
</ul>
</li>
<li><strong>配置 SDK 和工具</strong>
<ul>
<li>首次启动时,Android Studio 会引导安装:
<ul>
<li><strong>Android SDK</strong>:确保至少选择一个 API 级别(推荐 <strong>API 34 (Android 14)</strong>)。</li>
<li><strong>Android Emulator</strong>:用于运行虚拟设备。</li>
<li><strong>Kotlin 插件</strong>:默认已集成,无需额外安装。</li>
</ul>
</li>
</ul>
</li>
</ol>
<h3 id="二配置环境变量">二、配置环境变量</h3>
<ul>
<li>
<p><strong>安装 JDK(Java Development Kit)</strong></p>
<p>首先,确保你已经安装了 <strong>JDK</strong>(Java开发工具包)。Android Studio 和其他工具需要它来编译和运行Android应用。</p>
<p>步骤:</p>
<ol>
<li>下载并安装 JDK(推荐使用 JDK 8 或更新版本)。你可以从 Oracle JDK 官网 或 OpenJDK 下载。</li>
<li>安装后,设置 <code>JAVA_HOME</code> 环境变量,指向你的 JDK 安装目录。</li>
</ol>
</li>
<li>
<p><strong>设置 <code>JAVA_HOME</code> 环境变量</strong></p>
<p><code>JAVA_HOME</code> 是一个重要的环境变量,Android Studio 和一些构建工具(如 Gradle)会使用它来找到你的 JDK。</p>
<p>Windows</p>
<ol>
<li>打开 <strong>控制面板</strong> > <strong>系统</strong> > <strong>高级系统设置</strong> > <strong>环境变量</strong>。</li>
<li>在 "系统变量" 区域,点击 <strong>新建</strong>。</li>
<li>输入变量名为 <code>JAVA_HOME</code>,变量值为 JDK 的安装路径(例如 <code>C:\Program Files\Java\jdk-11</code>)。</li>
<li>点击 <strong>确定</strong> 保存。</li>
</ol>
</li>
<li>
<p><strong>安装 Android SDK 和设置 <code>ANDROID_HOME</code> 环境变量</strong></p>
</li>
</ul>
<p>Android SDK 是开发Android应用所必需的,它包含了编译、构建和模拟等工具。</p>
<p>步骤:</p>
<ol>
<li><strong>安装 Android Studio</strong>:
<ul>
<li>下载并安装 Android Studio,它会自动安装和配置 Android SDK。</li>
</ul>
</li>
<li><strong>设置 <code>ANDROID_HOME</code> 环境变量</strong>: Android SDK 的路径是另一个重要的环境变量。你需要设置 <code>ANDROID_HOME</code> 来告诉 Android Studio 和构建工具(如 Gradle)SDK 的位置。</li>
</ol>
<p>Windows</p>
<ol>
<li>
<p>打开 <strong>控制面板</strong> > <strong>系统</strong> > <strong>高级系统设置</strong> > <strong>环境变量</strong>。</p>
</li>
<li>
<p>在 "系统变量" 区域,点击 <strong>新建</strong>。</p>
</li>
<li>
<p>输入变量名为 <code>ANDROID_HOME</code>,变量值为 Android SDK 的路径(通常是 <code>C:\Users\<YourUsername>\AppData\Local\Android\Sdk</code>)。</p>
</li>
<li>
<p>找到 <code>Path</code> 变量,点击 <strong>编辑</strong>,在最后添加以下内容:</p>
<pre><code class="language-shell">%ANDROID_HOME%\tools
%ANDROID_HOME%\platform-tools
</code></pre>
</li>
<li>
<p>点击 <strong>确定</strong> 保存。</p>
</li>
</ol>
<ul>
<li>
<p><strong>配置 Gradle 环境(可选)</strong></p>
<p>Gradle 是 Android Studio 使用的构建工具,它也可以通过设置环境变量来进行配置。</p>
<p>Windows</p>
<ol>
<li>
<p>下载并解压 Gradle。</p>
</li>
<li>
<p>打开 <strong>控制面板</strong> > <strong>系统</strong> > <strong>高级系统设置</strong> > <strong>环境变量</strong>。</p>
</li>
<li>
<p>在 "系统变量" 区域,点击 <strong>新建</strong>。</p>
</li>
<li>
<p>输入变量名为 <code>GRADLE_HOME</code>,变量值为 Gradle 的解压路径(例如 <code>C:\Gradle</code>)。</p>
</li>
<li>
<p>找到 <code>Path</code> 变量,点击 <strong>编辑</strong>,在最后添加以下内容:</p>
<pre><code class="language-shell">%GRADLE_HOME%\bin
</code></pre>
</li>
</ol>
</li>
</ul>
<p>以上步骤帮助你配置了在 Android 开发中所需要的环境变量,包括 JDK、Android SDK 和 Gradle 等。确保每个环境变量都正确配置,以便能够顺利进行 Android 应用的开发和构建。</p>
<h3 id="三创建并运行第一个hello-world项目">三、创建并运行第一个Hello World项目</h3>
<ol>
<li>
<p>新建项目</p>
<ul>
<li>
<p>启动 Android Studio 点击 New Project<br>
<img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411153949268-2055810347.png"></p>
</li>
<li>
<p>选择模版(推荐使用 Empty Activity)最简模版</p>
<p><img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154002762-1490828109.png"></p>
</li>
<li>
<p>配置项目:</p>
<p><img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154014464-825430353.png"></p>
<ul>
<li>Name:输入项目名</li>
<li>Package name:包名,默认生成(如 <code>com.example.helloworld</code>)</li>
<li>Save location:项目保存地址</li>
<li>Minimum SDK:选择Android应用支持的最低操作系统版本,这里选择 API 21(Android 5.0)或更高</li>
<li>Build Configuration Language:构建配置语言,用于定义项目构建规则的语言,在Android中主要指 <code>Gradle</code> 构建脚本的语法,这里选择 <code>Kotlin DSL</code></li>
</ul>
</li>
<li>
<p>点击 Finish,等待 <code>Gradle</code> 构建完成</p>
<p><img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154026118-423727741.png"></p>
</li>
</ul>
</li>
<li>
<p>运行项目</p>
<ul>
<li>
<p>使用模拟器</p>
<ol>
<li>
<p>创建虚拟设备(AVD):</p>
<ul>
<li>点击工具栏 <strong>Device Manager</strong> → <strong>Create Device</strong>。</li>
<li>选择设备型号(如 <strong>Pixel 6</strong>),下载推荐的系统镜像(如 <strong>Android 14</strong>)。</li>
</ul>
</li>
<li>
<p>启动模拟器:</p>
<ul>
<li>在 Device Manager 中选择设备,点击 <strong>启动按钮</strong>(绿色三角)。</li>
</ul>
</li>
<li>
<p>运行应用:</p>
<ul>
<li>
<p>点击工具栏 <strong>Run</strong> 按钮(绿色三角)或按 <code>Shift+F10</code>。</p>
<p><img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154046514-1779900643.png"></p>
</li>
<li>
<p>选择已启动的模拟器,等待应用安装并自动启动。</p>
</li>
</ul>
</li>
</ol>
</li>
<li>
<p>使用真机调试</p>
<ol>
<li>开启开发者选项:
<ul>
<li>进入手机 <strong>设置 → 关于手机 → 版本号</strong>,连续点击 7 次开启开发者模式。</li>
</ul>
</li>
<li>启用 USB 调试:
<ul>
<li>返回设置,进入 <strong>系统 → 开发者选项 → USB 调试</strong>,启用开关。</li>
</ul>
</li>
<li>连接电脑并运行:
<ul>
<li>用 USB 线连接手机,选择 <strong>允许调试</strong>。</li>
<li>在 Android Studio 中选择设备,点击 <strong>Run</strong>。</li>
</ul>
</li>
</ol>
<p>结果如下<br>
<img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154105872-1233470972.png"></p>
</li>
</ul>
</li>
</ol>
<h3 id="四了解项目结构">四、了解项目结构</h3>
<p>要想了解Android项目结构,首先我们得先<br>
<img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154121747-516182662.png"></p>
<p>切换至项目预览模式,这方便我们观察和认识项目结构,展开关键如下所示</p>
<p><img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154140597-121543706.png"></p>
<p>接下来我们将逐步分析Android项目结构中核心目录与文件详解</p>
<ul>
<li>
<p><code>AndroidManifest.xml</code></p>
<ul>
<li>功能:存放 Android 应用的全局配置文件
<ul>
<li>定义应用的基本信息(包名、图标、权限等)</li>
<li>声明所有组件(<code>Activity(活动)</code>、<code>Service(服务)</code>、<code>BroadcastReceiver(广播)</code>、<code>ContentProvider(内容提供者)</code>)在之后我们会详细讲解这四大组件</li>
</ul>
</li>
</ul>
<pre><code class="language-xml"><?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.HelloWorld"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
</code></pre>
<ul>
<li>
<p><code><?xml version="1.0" encoding="utf-8"?></code> 声明文件的编码为 <code>UTF-8</code> 通常 Android 项目会使用UTF-8编码。</p>
</li>
<li>
<p><code><manifest></code> 是整个 Android 应用清单的根元素,所有其他元素都应该包含在此标签内。</p>
<p><code>xmlns:android="http://schemas.android.com/apk/res/android"</code>:这是 <code>android</code> 命名空间的声明,它定义了 XML 中属性的前缀 <code>android</code>,告诉 Android 系统该文件中包含的所有属性都与 Android 应用相关。</p>
<p><code>xmlns:tools="http://schemas.android.com/tools"</code>:这是 Android 开发工具的命名空间,主要用于在开发阶段向系统提供额外的信息,例如为 Android Studio 提供的工具标记。</p>
</li>
<li>
<p><code><application></code> 是 Android 应用的主要配置元素,它描述了应用的基本信息,如图标、主题、支持的语言方向等</p>
<ul>
<li><code>android:allowBackup="true"</code>:指示应用是否允许备份。<code>true</code> 表示允许,<code>false</code> 表示不允许。这有助于确保用户数据的备份和恢复。</li>
<li><code>android:dataExtractionRules="@xml/data_extraction_rules"</code>:定义应用数据提取规则(针对 Android 13 或更高版本)。这是一个 XML 文件,指定哪些数据可以被提取和备份。</li>
<li><code>android:fullBackupContent="@xml/backup_rules"</code>:指定应用的完整备份规则。与 <code>dataExtractionRules</code> 配合使用,可以控制哪些数据需要进行全备份。</li>
<li><code>android:icon="@mipmap/ic_launcher"</code>:指定应用的图标。这里引用了 <code>@mipmap/ic_launcher</code>,它通常是 <code>res/mipmap/</code> 目录下的图标资源文件。</li>
<li><code>android:label="@string/app_name"</code>:应用程序的名称,它会显示在用户的设备上。<code>@string/app_name</code> 引用了 <code>res/values/strings.xml</code> 中定义的字符串。</li>
<li><code>android:roundIcon="@mipmap/ic_launcher_round"</code>:指定圆形图标。Android 会自动使用这个图标来显示圆形的应用图标,特别是在支持圆形图标的设备上(如一些 Android Wear 设备)。</li>
<li><code>android:supportsRtl="true"</code>:支持从右向左的布局,适用于阿拉伯语、希伯来语等右到左书写的语言。</li>
<li><code>android:theme="@style/Theme.HelloWorld"</code>:指定应用的主题。<code>@style/Theme.HelloWorld</code> 引用了 <code>res/values/styles.xml</code> 中定义的样式资源。</li>
<li><code>tools:targetApi="31"</code>:该属性是用于 Android Studio 的工具命名空间,指示目标 API 级别,通常是 Android Studio 在开发过程中进行 Lint 检查时使用。</li>
</ul>
</li>
<li>
<p><code><activity></code>元素定义了一个应用中的 Activity。每个应用至少需要一个 Activity,作为应用的入口或界面。</p>
<ul>
<li><code>android:name=".MainActivity"</code>:指定该 Activity 的类名。<code>.MainActivity</code> 表示 <code>MainActivity</code> 类位于包的根目录下(例如 <code>com.example.app.MainActivity</code>)。</li>
<li><code>android:exported="true"</code>:表示这个 Activity 是否可以被其他应用启动。在 Android 12(API 级别 31)及更高版本中,如果应用中包含了显式声明 <code>intent-filter</code> 的组件(如 Activity),则需要明确设置 <code>android:exported</code> 属性。<code>true</code> 表示可以由其他应用启动,<code>false</code> 表示不能被外部应用启动。</li>
</ul>
</li>
<li>
<p><code><intent-filter></code> 定义了一个或多个 <code>Intent</code>,指定哪些外部操作可以启动这个组件(在此为 <code>MainActivity</code>)。</p>
<ul>
<li><code><action android:name="android.intent.action.MAIN" /></code>:指示这是应用的主入口(即主 Activity)。它告诉系统这是一个主要的入口活动。</li>
<li><code><category android:name="android.intent.category.LAUNCHER" /></code>:告诉系统这个 Activity 是应用的启动 Activity。当用户点击应用图标时,会启动这个 Activity。</li>
</ul>
</li>
</ul>
<p>通过理解 <code>AndroidManifest.xml</code> 文件的结构和内容,你可以更好地配置和管理 Android 应用的各个方面,其他配置在之后开发中用上了会对应的提一嘴,例如权限、服务、广播、内容提供者这些等等等等.</p>
</li>
<li>
<p><code>java/</code> 或 <code>kotlin/</code> : 存放 Java / Kotlin 源代码文件</p>
</li>
<li>
<p><code>res/</code> 资源目录:存放所有非代码资源文件,Android 会自动生成 <code>R.java</code> 提供资源 ID。</p>
<table>
<thead>
<tr>
<th>子目录</th>
<th>用途</th>
<th>示例文件</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>drawable/</code></td>
<td>图片、矢量图、形状定义等</td>
<td><code>ic_launcher_background.xml</code></td>
</tr>
<tr>
<td><code>layout/</code></td>
<td>界面布局文件(XML)</td>
<td><code>activity_main.xml</code></td>
</tr>
<tr>
<td><code>mipmap/</code></td>
<td>应用图标(不同分辨率)</td>
<td><code>ic_launcher.png</code></td>
</tr>
<tr>
<td><code>values/</code></td>
<td>字符串、颜色、样式等常量定义</td>
<td><code>strings.xml</code>, <code>colors.xml</code></td>
</tr>
<tr>
<td><code>menu/</code></td>
<td>菜单布局文件</td>
<td><code>main_menu.xml</code></td>
</tr>
<tr>
<td><code>raw/</code></td>
<td>原始文件(音频、视频等)</td>
<td><code>sound.mp3</code></td>
</tr>
<tr>
<td><code>anim/</code></td>
<td>动画资源</td>
<td><code>fade_in.xml</code></td>
</tr>
<tr>
<td><code>font/</code></td>
<td>字体文件</td>
<td>roboto.ttf</td>
</tr>
</tbody>
</table>
</li>
<li>
<p><code>Gradle Scripts/</code> : 定义项目的构建配置和依赖管理:</p>
<table>
<thead>
<tr>
<th>文件</th>
<th>作用</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>build.gradle.kts (Project)</code></td>
<td>配置全局项目设置(如 Gradle 版本、仓库地址)。</td>
</tr>
<tr>
<td><code>build.gradle.kts (Module)</code></td>
<td>配置模块级设置(编译版本、依赖库等)。</td>
</tr>
<tr>
<td><code>settings.gradle.kts</code></td>
<td>定义项目包含哪些模块。</td>
</tr>
<tr>
<td><code>gradle.properties</code></td>
<td>配置全局 Gradle 属性(如 JVM 内存大小)。</td>
</tr>
</tbody>
</table>
<ul>
<li>
<p>项目级 <code>build.gradle.kts</code></p>
<ul>
<li>
<p><strong>路径</strong>:<code>项目根目录/build.gradle.kts</code></p>
</li>
<li>
<p><strong>作用</strong>:配置全局构建设置和插件依赖。</p>
</li>
<li>
<p><strong>典型内容</strong>:</p>
<pre><code class="language-kotlin">// 顶级构建文件,在这里你可以添加对所有子项目/模块共享的配置选项。
plugins {
// 引用 Android 应用程序插件,这个插件通常用于配置和构建 Android 应用。使用了 `libs.plugins` 别名来引用插件,
// 但 `apply false` 表示插件本身不会立即应用到当前模块,而是提供给子模块使用。
alias(libs.plugins.android.application) apply false
// 引用 Kotlin Android 插件,这个插件用于配置和构建包含 Kotlin 代码的 Android 应用。
// 同样使用 `apply false` 表示该插件不会直接应用在当前模块,而是提供给子模块使用。
alias(libs.plugins.kotlin.android) apply false
}
</code></pre>
</li>
</ul>
</li>
<li>
<p>模块级 <code>build.gradle.kts</code></p>
<ul>
<li>
<p><strong>路径</strong>:<code>app/build.gradle.kts</code></p>
</li>
<li>
<p><strong>作用</strong>:配置模块级构建选项、依赖项。</p>
</li>
<li>
<p><strong>典型内容</strong>:</p>
<pre><code class="language-kotlin">// 配置插件,声明本模块将使用 Android 应用插件和 Kotlin 插件。
plugins {
// 引用 Android 应用插件,它是构建 Android 应用所必需的。
alias(libs.plugins.android.application)
// 引用 Kotlin Android 插件,用于支持 Kotlin 代码的编译。
alias(libs.plugins.kotlin.android)
}
android {
// 设置应用的命名空间。通常用于避免不同模块之间的命名冲突。
namespace = "com.example.helloworld"
// 设置编译 SDK 版本。这里设置为 Android API 级别 35(实际开发中应该使用最新的稳定版)。
compileSdk = 35
// 配置应用的默认设置。
defaultConfig {
// 设置应用的包名,通常与应用的 Java 包名相同。
applicationId = "com.example.helloworld"
// 设置最低支持的 SDK 版本。这里设置为 21,表示应用支持从 Android 5.0(Lollipop)开始的设备。
minSdk = 21
// 设置目标 SDK 版本,表示应用测试和优化的目标设备版本。这里设置为 35,表示适配 Android 12。
targetSdk = 35
// 设置版本号。版本号必须递增,每次发布新版本时要更改此值。
versionCode = 1
// 设置应用的版本名称。这个值通常会显示在应用的设置页面或安装界面。
versionName = "1.0"
// 设置测试用的 JUnit 测试运行器。
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
// 配置构建类型。这里只配置了 release 类型,表示发布版本的构建设置。
buildTypes {
release {
// 禁用代码混淆,设置为 false 不会启用 ProGuard 或 R8 混淆工具。
isMinifyEnabled = false
// 配置 ProGuard 文件。ProGuard 是一个代码优化工具,通常用于发布版本进行混淆和优化。
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"), // 使用默认的 ProGuard 配置
"proguard-rules.pro" // 项目自定义的 ProGuard 配置文件
)
}
}
// 配置 Java 编译选项。
compileOptions {
// 设置 Java 版本兼容性,这里设置为 Java 11。
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
// 配置 Kotlin 编译选项。
kotlinOptions {
// 设置 Kotlin 的 JVM 目标版本,这里设置为 Java 11。
jvmTarget = "11"
}
}
// 配置项目的依赖项。
dependencies {
// AndroidX 相关的库。这里包括核心扩展库、AppCompat、Material Design 组件、Activity 相关库等。
implementation(libs.androidx.core.ktx) // 提供对 Android 核心库的 Kotlin 扩展支持
implementation(libs.androidx.appcompat) // 支持应用在不同 Android 版本下的兼容性
implementation(libs.material) // 提供 Material Design 组件库
implementation(libs.androidx.activity) // 提供与 Activity 生命周期相关的库
implementation(libs.androidx.constraintlayout) // 提供用于布局的 ConstraintLayout 库
// 单元测试依赖。使用 JUnit 进行本地单元测试。
testImplementation(libs.junit) // JUnit 用于执行本地单元测试
// Android 测试依赖。使用 AndroidX 提供的 JUnit 和 Espresso 进行 UI 测试。
androidTestImplementation(libs.androidx.junit) // AndroidX JUnit 测试框架
androidTestImplementation(libs.androidx.espresso.core) // Espresso 用于 UI 测试
}
</code></pre>
</li>
</ul>
</li>
<li>
<p><code>settings.gradle.kts</code></p>
</li>
<li>
<p><strong>路径</strong>:<code>项目根目录/settings.gradle.kts</code></p>
</li>
<li>
<p><strong>作用</strong>:定义项目包含哪些模块及仓库地址。</p>
</li>
<li>
<p><strong>典型内容</strong>:</p>
<pre><code class="language-kotlin">// 配置插件管理(pluginManagement),决定了如何查找和解析插件。
pluginManagement {
repositories {
// 配置 Google 的插件仓库,限制只包含特定的插件(通过正则匹配)。
google {
content {
// 只包含 com.android.* 相关的插件
includeGroupByRegex("com\\.android.*")
// 只包含 com.google.* 相关的插件
includeGroupByRegex("com\\.google.*")
// 只包含 androidx.* 相关的插件
includeGroupByRegex("androidx.*")
}
}
// 配置 Maven 中央仓库,查找和解析插件。
mavenCentral()
// 配置 Gradle 插件门户,查找和解析插件。
gradlePluginPortal()
}
}
// 配置依赖解析管理(dependencyResolutionManagement),用来管理项目的依赖解析策略。
dependencyResolutionManagement {
// 设置仓库模式,当在子项目中查找依赖时,如果子项目定义了自己的仓库,将会报错。
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
// 配置全局的仓库,所有的项目都将从这些仓库中查找依赖。
repositories {
// 使用 Google 的仓库(用于 Android 构建相关的依赖)。
google()
// 使用 Maven 中央仓库,查找和解析其他常见的 Java 依赖。
mavenCentral()
}
}
// 设置根项目的名称。
rootProject.name = "HelloWorld"
// 包含项目的模块,这里表示项目的主模块是 ":app"。
include(":app")
</code></pre>
</li>
<li>
<p><code>gradle.properties</code></p>
<ul>
<li>
<p><strong>路径</strong>:<code>项目根目录/gradle.properties</code></p>
</li>
<li>
<p><strong>作用</strong>:配置全局 Gradle 属性(语法与 Groovy 相同)。</p>
</li>
<li>
<p><strong>常用配置</strong>:</p>
<pre><code class="language-properties"># 这个设置对于调整内存设置特别有用。
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
# -Xmx2048m:设置最大堆内存为 2048MB。根据需要,你可以增大或减少这个值来优化内存使用。
# -Dfile.encoding=UTF-8:确保文件编码为 UTF-8。
# AndroidX 包结构,使其更清楚哪些包是由 Android 操作系统捆绑的,哪些是打包在应用的 APK 中。
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# 设置为 true 时,项目将使用 AndroidX 支持库而非旧版支持库。
# 这对于支持库迁移至 AndroidX 非常重要,确保项目采用最新的 Android 开发标准。
# Kotlin 代码风格设置:可以设置为 "official" 或 "obsolete"。
kotlin.code.style=official
# 设置 Kotlin 代码风格为官方风格。"official" 是标准的 Kotlin 代码风格,"obsolete" 是旧版风格。
# 启用库的 R 类命名空间,以便它的 R 类只包含该库自身声明的资源,而不包含库的依赖项的资源,
# 从而减少该库的 R 类大小。
android.nonTransitiveRClass=true
# 设置为 true 时,Android 会为每个库启用命名空间,从而减少 R 类的大小,
# 使其仅包含该库内的资源,而不包含其他依赖库的资源。
</code></pre>
</li>
</ul>
</li>
</ul>
<p>在日后开发中,我们都离不开对 <code>Gradle Scripts</code> 的管理,至少我们要了解到这些基础的知识,至于其他在之后出现了相关再提及并研究。</p>
</li>
</ul>
<h3 id="五创建新的界面">五、创建新的界面</h3>
<p>Android一个App有很多界面,这不是一个Activity能完成的,接下来我们将创建一个新的界面,步骤如下<br>
<img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154207449-787778233.png"></p>
<p><img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154218374-484086052.png"></p>
<p>创建完成之后我们可以在Android 应用的全局配置文件 <code>AndroidManifest.xml</code> 中发现,AndroidStudio 会自动帮我们注册 <code>Activity</code></p>
<p><img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154230926-1123170046.png"></p>
<p>这样我们就可以创建新的界面了,这里先不讲页面之间如何跳转,在之后文章中我们在详细说明。想要运行新界面,我们可以进行如下操作:</p>
<p><img src="https://img2024.cnblogs.com/blog/2774239/202504/2774239-20250411154250920-591404982.png"></p>
<p>将想要运行的界面设置为 <code>android:exported="true"</code>表示这个 Activity 可以被其他应用启动,包括本地编译器, 然后我们将之前 <code>MainActivity</code> 的 <code><intent-filter></code> 范围的代码给剪切到想要运行的界面下,这样我们就可以运行制定的界面了。</p>
<p>在下一章节我们将会对Android中的一些常见的UI组件件进行详细的学习和运用。</p><br><br>
来源:https://www.cnblogs.com/life-game-npc1/p/18820725
頁:
[1]