提交 12f71e7f 编写于 作者: W wizardforcel

2019-11-29 11:29:28

上级 c2525594
......@@ -12,7 +12,7 @@
以下是一些先决条件:
* Android Studio(如果没有它,请参阅先前的[教程,以安装 Android Studio](https://javatutorial.net/install-configure-android-studio) )。
* Android Studio(如果没有它,[请参阅先前的教程](https://javatutorial.net/install-configure-android-studio),以安装 Android Studio)。
* USB 电缆
* Android 设备
......@@ -20,52 +20,52 @@
第一步是在 Android 设备上启用 USB 调试。 为此,请按照下列步骤操作
* 在手机(或平板电脑)上,转到**设置= >关于手机**
* 轻按**内部版本号** 7 次,第 7 次之后将显示**您现在是开发人员**
* 在手机(或平板电脑)上,转到“设置 => 关于手机”
* 轻按“内部版本号” 7 次,第 7 次之后将显示“您现在是开发人员”
![Step 1: USB debugging](img/b2914de4f799b438a1fed0c97cd784d0.jpg)
步骤 1:USB 调试
* 您会注意到**开发人员的选项**现在可用。
* 您会注意到“开发人员的选项”现在可用。
![Step 2: USB debugging](img/9203af4715eb52af39d594f7ad21fb84.jpg)
步骤 2:USB 侦错
步骤 2:USB 调试
* 转到**开发人员选项**并启用 **USB 调试**
* 转到“开发人员选项”并启用“USB 调试”
![Step 3: USB debugging](img/5e3ca30ab31bf39ca30cf9856d4966fe.jpg)
步骤 3:USB 调试
单击确定
单击“确定”
![Step 4: USB debugging](img/012715abed3441ac2dcab496088ab6e6.jpg)
步骤 4:USB 侦错
步骤 4:USB 调试
## 步骤 2:安装 USB 驱动程序
下一步是为您的 Android 设备安装 USB 驱动程序。 为此,请遵循设备制造商的说明。 例如,我正在使用华为的 Android 智能手机,因此我只是从他们的官方网站下载了华为 USB 驱动程序。 如果您的设备使用 Google USB 驱动程序,则可以从此链接 [http://developer.android.com/sdk/win-usb.html](http://developer.android.com/sdk/win-usb.html) 下载。 安装后,您需要对其进行更新。 确保您的设备通过 USB 电缆连接。 转到**控制面板= >设备管理器**,然后找到并右键单击您的 Android 设备,然后单击**更新驱动程序软件。**
下一步是为您的 Android 设备安装 USB 驱动程序。 为此,请遵循设备制造商的说明。 例如,我正在使用华为的 Android 智能手机,因此我只是从他们的官方网站下载了华为 USB 驱动程序。 如果您的设备使用 Google USB 驱动程序,则可以从此链接 [http://developer.android.com/sdk/win-usb.html](http://developer.android.com/sdk/win-usb.html) 下载。 安装后,您需要对其进行更新。 确保您的设备通过 USB 电缆连接。 转到“控制面板 => 设备管理器”,然后找到并右键单击您的 Android 设备,然后单击“更新驱动程序软件”。
**注意:**确保通过 USB 电缆连接时,Android 设备未处于睡眠状态。
**注意**确保通过 USB 电缆连接时,Android 设备未处于睡眠状态。
## 步骤 3:运行您的应用
不,您可以运行您的 Android 应用。 右键单击该应用程序,然后单击**运行**。 或者只需从下面显示的工具栏菜单中选择运行选项。
您可以运行您的 Android 应用。 右键单击该应用程序,然后单击“运行”。 或者只需从下面显示的工具栏菜单中选择运行选项。
![Android Studio screen](img/59044bb78a60ea856feeb6557cbffd02.jpg)
Android Studio 屏幕
将出现一个窗口 **Select Deployment Target** ,并出现可用设备的列表。 选择您的设备,然后单击 **OK** 。 Android Studio 将在您的 Android 设备上运行您的应用程序。
将出现一个窗口“Select Deployment Target”,并出现可用设备的列表。 选择您的设备,然后单击“OK”。 Android Studio 将在您的 Android 设备上运行您的应用程序。
![Deployment target](img/4f0595dbab5ce9fe535a3227f2a9cf1a.jpg)
部署目标
如果您想保存此设置供以后的应用程序,请单击**,将相同的选择用于以后的启动**
如果您想保存此设置供以后的应用程序,请单击“将相同的选择用于以后的启动”
## 参考文献
......
......@@ -6,23 +6,23 @@
## Android 简介
Android 是适用于多种不同设备的操作系统,例如平板电脑和智能手机。 它基于 Google 维护的 Linux。 统计数据显示,目前全球每月有 20 亿台活跃的 Android 设备。 Android 是功能强大的操作系统,具有许多不同的功能。 这几个
Android 是适用于多种不同设备的操作系统,例如平板电脑和智能手机。 它基于 Google 维护的 Linux。 统计数据显示,目前全球每月有 20 亿台活跃的 Android 设备。 Android 是功能强大的操作系统,具有许多不同的功能。
**消息传递:**它允许 SMS 和 MMS。
**浏览:** Android 的网络浏览器基于 WebKit 布局引擎。 它允许浏览。
**浏览** Android 的网络浏览器基于 WebKit 布局引擎。 它允许浏览。
**用户界面:** Android 提供了醒目的且易于使用的用户界面。
**用户界面**Android 提供了醒目的且易于使用的用户界面。
**触摸屏输入:** Android 支持简单和多点触摸系统。
**触摸屏输入**Android 支持简单和多点触摸系统。
**3G 通信协议:**它提供​​3G,4G 和 5G 通信协议以通过网络进行通信。
**3G 通信协议**它提供​​3G,4G 和 5G 通信协议以通过网络进行通信。
让我们谈谈内部工作,如何创建应用屏幕。
## Android 活动
活动类是 Android 的重要组成部分。 活动就像带有用户界面的单个屏幕一样,就像 Java 的[框架一样。 我们知道任何用 Java 或 C++编写的可执行程序都具有 main()方法,并且程序是通过 main()方法启动的。 代替主要方法,Android 具有不同的活动概念。](https://javatutorial.net/swing-jframe-basics-create-jframe)
活动类是 Android 的重要组成部分。 活动就像带有用户界面的单个屏幕一样,就像 Java 的框架一样。 我们知道任何用 Java 或 C++ 编写的可执行程序都具有`main()`方法,并且程序是通过`main()`方法启动的。 代替主要方法,[Android 具有不同的活动概念](https://javatutorial.net/swing-jframe-basics-create-jframe)
大多数应用程序包含多个屏幕,这意味着它们具有多个活动。 活动已在应用的清单文件中注册。 每个活动都有其自己的生命周期,您必须正确管理。
......@@ -43,7 +43,7 @@ public class MainActivity extends AppCompatActivity {
```
## Android 意
## Android 意
目的使我们能够在组件之间进行通信。 意图就像一条消息,用于从另一个组件请求操作。 它用于不同应用程序中的代码之间的运行时绑定。
......@@ -51,11 +51,11 @@ public class MainActivity extends AppCompatActivity {
Android 意图
有两个基本组成部分
有两个基本组成部分
**数据:**要传送的数据。
**数据**要传送的数据。
**操作:**要执行的操作。
**操作**要执行的操作。
有两种主要类型的意图,显式意图和隐式意图。
......@@ -68,15 +68,15 @@ Android 意图
```
转到我们的 [Android Intent 示例](https://javatutorial.net/android-intent-example),以了解有关 Android Intent 的更多信息
转到我们的 [Android `Intent`示例](https://javatutorial.net/android-intent-example),以了解有关 Android `Intent`的更多信息
## Android 服务
服务是没有用户界面的组件,可以执行长时间运行的操作。 Android 中有两种服务。
**服务:**由于它是 Android 后台服务的基类,因此它在主线程中运行。
**服务**由于它是 Android 后台服务的基类,因此它在主线程中运行。
**意图服务:**它在单独的线程中运行,并且已自毁。
**意图服务**它在单独的线程中运行,并且已自毁。
查看我们的 [Android 服务示例](https://javatutorial.net/android-service-example),以了解有关 Android 服务的更多信息
......@@ -88,8 +88,8 @@ Android 意图
Android 布局
**线性布局:**将组件组织成单个水平或垂直行。 完整示例可在中找到[](https://javatutorial.net/android-linear-layout-example)
**线性布局**:将组件组织成单个水平或垂直行。 [完整示例可在这里找到](https://javatutorial.net/android-linear-layout-example)
**相对布局:**它指定组件相对于彼此的位置。 完整示例可在中找到[](https://javatutorial.net/android-relative-layout-example)
**相对布局**:它指定组件相对于彼此的位置。 [完整示例可在这里找到](https://javatutorial.net/android-relative-layout-example)
**Web 视图:**用于网页。 完整示例可在中找到[](https://javatutorial.net/android-web-view-layout-example)
\ No newline at end of file
**Web 视图**:用于网页。 [完整示例可在这里找到](https://javatutorial.net/android-web-view-layout-example)
\ No newline at end of file
......@@ -4,20 +4,20 @@
本教程介绍了如何在 Android Studio 中创建简单的 Android 应用。
在 Android Studio 中创建应用非常容易。 在开始实际编程之前,请确保已正确设置环境和 Android SDK 路径。 您可以按照本教程中的[中的步骤进行操作。 让我们从头开始。](https://javatutorial.net/install-configure-android-studio)
在 Android Studio 中创建应用非常容易。 在开始实际编程之前,请确保已正确设置环境和 Android SDK 路径。 [您可以按照本教程中的步骤进行操作](https://javatutorial.net/install-configure-android-studio)。 让我们从头开始。
## 创建 Android 项目
创建一个新项目。
* 转到**文件**菜单= > **新建**,然后选择**新建项目。**
* 输入应用程序名称,然后选择项目的位置。 单击**,然后单击**。(应用程序名称将在您的应用程序中显示为顶部横幅)。
* 转到“文件菜单 => 新建”,然后选择“新建项目”。
* 输入应用程序名称,然后选择项目的位置。单击,然后单击。(应用程序名称将在您的应用程序中显示为顶部横幅)。
![Step 1: New Application](img/c8c84e217e732c3358912c2d57d299b8.jpg)
步骤 1:新申请
步骤 1:新应用
* 为您的项目选择**目标设备**,然后单击 **Next**
* 为您的项目选择“目标设备”,然后单击“Next”
![Step 2: Target Android Device](img/32d2de671a9b89c58c1c619628abdd9b.jpg)
......@@ -35,7 +35,7 @@
步骤 4:自订活动
* 单击**完成**
* 单击“完成”
* 这是一个空的活动的样子
![Project screen](img/25180b6928b6238c1dd62e4359bfadd0.jpg)
......@@ -50,19 +50,19 @@
项目层次结构
* **xml:**它定义应用程序的属性。
* **布局:** Layout 文件夹包含所有布局文件,用于设计应用程序的形状和外观。
* **值:**此文件夹包含其他 xml 文件,例如 strings.xml,styles.xml 和 colors.xml。 这些资源文件对于项目的代码和样式很有用。
* **Java:**此文件夹包含所有 Java 类。
* **gradle:**它包含 SDKversion,applicationId 和 BuilToolVersion
* `xml`它定义应用程序的属性。
* `layout`:布局文件夹包含所有布局文件,用于设计应用程序的形状和外观。
* `values`:此文件夹包含其他 xml 文件,例如`strings.xml``styles.xml``colors.xml`。 这些资源文件对于项目的代码和样式很有用。
* `Java`此文件夹包含所有 Java 类。
* `gradle`:它包含`SDKversion``applicationId``BuilToolVersion`
现在开始编码。
## 创建界面
打开布局文件,然后单击**设计**视图。
打开布局文件,然后单击“设计”视图。
**面板**窗口中将**文本视图**拖到屏幕上。 单击 Textview,然后可以在属性窗口中更改其属性,如字体大小,字体颜色。
**面板**窗口中将**文本视图**拖到屏幕上。 单击`Textview`,然后可以在属性窗口中更改其属性,如字体大小,字体颜色。
同样,也拖动文本字段和按钮并将其排列。 设置其属性,使屏幕如下所示。
......@@ -70,7 +70,7 @@
设计画面
**下单击**按钮后出现另一个 textview。 它应该为空(无文本)。
单击按钮后出现另一个`textview`。 它应该为空(无文本)。
如果您不喜欢这种拖放选项,则可以随时进行编码。 转到您的布局文件夹,然后打开此活动的布局文件。 它在 xml 中。 使用拖放界面时,它将自动更新。 这是现在的样子。
......@@ -148,7 +148,7 @@
## **用 Java 类**编写代码
现在打开 MainActivity.java 并将操作监听器添加到您的按钮。
现在打开`MainActivity.java`并将操作监听器添加到您的按钮。
这是添加动作监听器的方法。
......
......@@ -15,7 +15,7 @@ Android Studio 具有自己的默认运行/调试配置,足以满足我们的
* 在 Android Studio 中打开您的应用。
* 在运行/调试配置页面上,输入配置名称并选择模块(如果您不想使用默认的运行/调试配置,则此步骤是可选的)。
* 设置您的 Android 设备,确保已安装适当的 USB 驱动程序,启用 USB 调试并选择部署目标(有关更多详细信息,请参见前面的教程[如何配置 Android 设备](https://javatutorial.net/connect-android-device-android-studio))。
* 单击菜单栏上的**运行**图标,或通过右键单击根文件夹来运行您的应用,然后选择**运行**
* 单击菜单栏上的“运行”图标,或通过右键单击根文件夹来运行您的应用,然后选择“运行”
* 我运行了本教程的上一个示例(一个简单的 Android 应用)。 这是结果
* 我的设备显示在部署目标窗口中。 选择它并运行。
......@@ -46,9 +46,9 @@ Android Studio 具有自己的默认运行/调试配置,足以满足我们的
* 在运行时检查表达式流。
* 允许捕获屏幕截图和视频
在开始调试之前,请确保该构建变量将 debuggable 属性设置为 true
在开始调试之前,请确保该构建变量将`debuggable`属性设置为`true`
为此,转到 **Build = >选择构建变量**。 要开始调试,请单击菜单栏上的调试图标。 在 Android 设备上构建并安装后,它将打开调试窗口。
为此,转到“构建 => 选择构建变量”。 要开始调试,请单击菜单栏上的调试图标。 在 Android 设备上构建并安装后,它将打开调试窗口。
* 选择屏幕菜单上的调试图标。
* 在“部署目标”窗口中选择您的设备。
......@@ -56,7 +56,7 @@ Android Studio 具有自己的默认运行/调试配置,足以满足我们的
![Choose process](img/8d0d75e7d4784e6792d36883f46edfef.jpg)
选择
选择
* 单击确定。
* 您将看到调试窗口,控制台将显示已连接到设备。
......
......@@ -16,8 +16,8 @@ Android SDK 包含 Android 虚拟设备(AVD)或称为移动设备模拟器
您可以使用 Android Studio 在 Android 虚拟设备上运行应用程序,或者如果您有应用程序的 APK 文件,则可以直接在模拟器上拖动该文件以运行它。 如果要通过 Android Studio 运行,请执行以下步骤。
* 在 Android Studio 中打开您的项目(如果没有该项目,则可以按照本教程的[进行创建)](https://javatutorial.net/creating-simple-android-app)
* 单击菜单栏中的**运行**图标,或右键单击项目的根目录,然后单击运行。
* 在 Android Studio 中打开您的项目([如果没有该项目,则可以按照本教程的进行创建](https://javatutorial.net/creating-simple-android-app)
* 单击菜单栏中的“运行”图标,或右键单击项目的根目录,然后单击运行。
* 将出现一个新窗口,用于选择部署目标(如果您是第一次使用,可能会遇到一个错误,提示某些必需的文件丢失了,您可以通过单击下载按钮进行下载)。
![Select deployment target](img/053889af20faeaaf9e703f9639c422b7.jpg)
......@@ -26,28 +26,28 @@ Android SDK 包含 Android 虚拟设备(AVD)或称为移动设备模拟器
* 它显示了可用虚拟设备的列表。 您可以选择任何人。
* 如果要使用此部署目标,请始终仅单击**对以后的启动使用相同的选择**
* 点击**确定**
* 点击“确定”
* 如果看不到任何必需的虚拟设备,则可以为您创建一个。
* 在菜单栏中选择 **AVD 管理器**
* 在菜单栏中选择“AVD 管理器”
![create virtual device](img/6e7b64e7da2a86790a4ad8e1a0732cbc.jpg)
创建虚拟设备
* 单击**创建虚拟设备**
* **从列表中选择硬件**,然后单击**。下一步**
* 单击“创建虚拟设备”
* **从列表中选择硬件**,然后单击“下一步”
![Select hardware](img/da93d7129419ea75c3fb655ecad9be4b.jpg)
选择硬件
* 选择**系统映像**(选择推荐的一个),然后单击**。下一步**
* 选择“系统映像”(选择推荐的一个),然后单击“下一步”
![System Image](img/5218e9fe276e345e127f80a70e51218d.jpg)
系统映像
* **验证配置**,然后单击**完成**
* **验证配置**,然后单击“完成”
![Verify configuration](img/cf9c12c4d582579552e66be5d44bbc84.jpg)
......
......@@ -6,7 +6,7 @@
## Android 活动
Activity 是 Android 应用程序开发的基本组成部分之一。 就像带有用户界面的单个屏幕一样。 `ContextThemeWrapper`是 Android 活动的超类。 活动是 Android 应用程序的主要切入点,就像用 Java 或 C++编写的程序的主要方法一样。 一个活动与用户进行交互,因此它创建了一个放置 UI 元素的窗口。 一个 Android 应用程序可以包含多个活动,这意味着可以相互交互的许多不同屏幕。
`Activity`是 Android 应用程序开发的基本组成部分之一。 就像带有用户界面的单个屏幕一样。 `ContextThemeWrapper`是 Android 活动的超类。 活动是 Android 应用程序的主要切入点,就像用 Java 或 C++编写的程序的主要方法一样。 一个活动与用户进行交互,因此它创建了一个放置 UI 元素的窗口。 一个 Android 应用程序可以包含多个活动,这意味着可以相互交互的许多不同屏幕。
## 活动生命周期
......@@ -16,29 +16,29 @@ Activity 是 Android 应用程序开发的基本组成部分之一。 就像带
一个活动有四个状态
**正在运行:**栈顶部的活动处于运行或活动状态,表示该活动位于屏幕的前台。
**正在运行**栈顶部的活动处于运行或活动状态,表示该活动位于屏幕的前台。
**已暂停:**处于活动状态但未专注的活动处于暂停状态。 (这是活动中显示的弹出消息)。
**已暂停**处于活动状态但未专注的活动处于暂停状态。 (这是活动中显示的弹出消息)。
**恢复:**暂停的活动变为活动状态后,它将刷新并重新开始。
**恢复**暂停的活动变为活动状态后,它将刷新并重新开始。
**已停止:**在屏幕上不再可见的活动处于停止状态。
**已停止**在屏幕上不再可见的活动处于停止状态。
**调用 Android 活动的方法**
Android 活动实现以下回调方法
**OnCreate():**这是 Android 活动的第一个回调方法。 创建活动时调用它。 在这里,您可以设置所有东西,例如按钮和视图。
`OnCreate()`这是 Android 活动的第一个回调方法。 创建活动时调用它。 在这里,您可以设置所有东西,例如按钮和视图。
**OnStart():**这是第二次回调。 当活动在屏幕上可见时调用。
`OnStart()`这是第二次回调。 当活动在屏幕上可见时调用。
**OnResume():**如果活动进入前台,则在 OnStart()之后调用。 这是用户开始与活动进行交互的时间。
`OnResume()`:如果活动进入前台,则在`OnStart()`之后调用。 这是用户开始与活动进行交互的时间。
**OnPause():**然后是 OnResume()。 恢复上一个活动时将调用此方法。
`OnPause()`:然后是`OnResume()`。 恢复上一个活动时将调用此方法。
**OnStop():**当另一个活动恢复时该调用不再可见。 它变得隐藏了。
`OnStop()`当另一个活动恢复时该调用不再可见。 它变得隐藏了。
**OnDestroy():**这是活动完成时的最后一次回调。
`OnDestroy()`这是活动完成时的最后一次回调。
下图显示了 Android 活动的完整生命周期。
......@@ -50,7 +50,7 @@ Android 活动生命周期
## Android 活动示例
这是 Android 活动的示例。 打开您的 Android Studio 并创建一个新项目。 新建项目向导将允许您创建一个新的活动。 您可以在“ [创建简单的 Android 应用程序](https://javatutorial.net/creating-simple-android-app)”教程中找到有关如何创建新 Android 项目的更多信息。
这是 Android 活动的示例。 打开您的 Android Studio 并创建一个新项目。 新建项目向导将允许您创建一个新的活动。 您可以在“[创建简单的 Android 应用程序](https://javatutorial.net/creating-simple-android-app)”教程中找到有关如何创建新 Android 项目的更多信息。
```java
package com.example.admin.androidactivity;
......
......@@ -12,13 +12,13 @@
有两种类型的意图,显式和隐式意图。
**明确意图**
**显式意图**
在显式意图中,目标组件名称在创建意图时直接传递到意图中。 当一个活动调用另一个活动时,通常使用显式意图。 例如,我们有两个活动-登录活动和主页活动,登录应用程序将用户带到主页后,请参见下图。
![Explicit intent](img/eade02058cf39705b835a2d929402fa8.jpg)
明确意图
显式意图
这是在登录活动中应如何调用的代码。
......@@ -52,23 +52,23 @@ Android 联系人
有用于向活动,服务和广播接收者传达意图的单独机制。 这是几种方法的解释
**Context.startActivity():**此方法用于启动新活动,目的是作为参数传递的。
`Context.startActivity()`此方法用于启动新活动,目的是作为参数传递的。
**Context.startService():**此方法用于启动新服务,目的对象作为参数传递。
`Context.startService()`此方法用于启动新服务,目的对象作为参数传递。
**Context.sendBroadcast():**此方法用于将消息发送到任何广播接收器。 意图对象作为参数传递。
`Context.sendBroadcast()`此方法用于将消息发送到任何广播接收器。 意图对象作为参数传递。
意图对象有两个主要组成部分。
**动作:**显示要执行的动作。 它是意图对象的必修部分。 要执行的动作可以是 ACTION_VIEW,ACTION_EDIT 等。
**动作**:显示要执行的动作。 它是意图对象的必修部分。 要执行的动作可以是`ACTION_VIEW``ACTION_EDIT`等。
**数据:**它显示要操作的数据。 它可以是简单的数据类型或 URI。
**数据**它显示要操作的数据。 它可以是简单的数据类型或 URI。
## **意图**的示例
这是一个显示意图的示例。 转到您的 Android Studio 并创建一个新项目。 本示例将在您的 Android 中打开 javatutorial.net
这是一个显示意图的示例。 转到您的 Android Studio 并创建一个新项目。 本示例将在您的 Android 中打开`javatutorial.net`
这是 activity_main.xml
这是`activity_main.xml`
```java
<?xml version="1.0" encoding="utf-8"?>
......@@ -92,7 +92,7 @@ Android 联系人
```
这是 ActivtyMain.java
这是`ActivtyMain.java`
```java
package com.example.admin.intentexample;
......
......@@ -14,25 +14,25 @@ Android 服务与 [Android 活动](https://javatutorial.net/android-activity-exa
Android 中提供三种不同类型的服务。
**Scheduled:**在诸如 jobScheduler 之类的 API 中计划了一项服务,然后将其称为计划服务。 系统检查 jobScheduler 并在适当的时间执行服务。
**调度**:在诸如`jobScheduler`之类的 API 中计划了一项服务,然后将其称为计划服务。 系统检查`jobScheduler`并在适当的时间执行服务。
**已启动:**如果服务可以由应用程序组件启动,则将其称为已启动服务。 活动调用 startService()方法,然后在后台运行。 通常,此服务执行单个操作。
**启动**:如果服务可以由应用程序组件启动,则将其称为已启动服务。 活动调用`startService(0`方法,然后在后台运行。 通常,此服务执行单个操作。
**绑定:**如果应用程序组件将服务绑定到 bindService(),则称为绑定。 它具有一个客户端服务器接口,该接口允许组件与服务进行交互。
**绑定**:如果应用程序组件将服务绑定到`bindService()`,则称为绑定。 它具有一个客户端服务器接口,该接口允许组件与服务进行交互。
## Android 服务的生命周期
Android 服务生命周期与 Android 活动完全不同。 如果使用 startService()创建服务或使用 bindService()创建服务,则其生命周期可能会有所不同。 下图显示了两个生命周期。
Android 服务生命周期与 Android 活动完全不同。 如果使用`startService()`创建服务或使用`bindService()`创建服务,则其生命周期可能会有所不同。 下图显示了两个生命周期。
![Life cycle of service](img/a49927bad28ace0cdee3856625e62d00.jpg)
服务生命周期
让我们讨论服务生命周期的回调方法。 当使用 startService()创建服务时,将调用 OnStartCommand()方法。 执行此方法后,服务星将在后台运行。 如果使用此方法创建了服务,请通过调用 stopSelf()或 stopService()方法将其停止。 如果服务是有界的,则使用 OnBound()方法。 其他组件使用此方法将自己与服务绑定。 OnCreate()方法用于创建服务。 OnDestroy()方法用于销毁服务。
让我们讨论服务生命周期的回调方法。 当使用`startService()`创建服务时,将调用`OnStartCommand()`方法。 执行此方法后,服务星将在后台运行。 如果使用此方法创建了服务,请通过调用`stopSelf()``stopService()`方法将其停止。 如果服务是有界的,则使用`OnBound()`方法。 其他组件使用此方法将自己与服务绑定。`OnCreate()`方法用于创建服务。`OnDestroy()`方法用于销毁服务。
## Android 中的服务示例
这是 Android Studio 中的服务示例。 打开您的 IDE 并创建一个新项目。 创建活动并将其命名为 actvity_main,这是 activty_main.xml 的代码
这是 Android Studio 中的服务示例。 打开您的 IDE 并创建一个新项目。 创建活动并将其命名为`actvity_main`,这是`activty_main.xml`的代码
```java
<?xml version="1.0" encoding="utf-8"?>
......@@ -90,7 +90,7 @@ Android 服务生命周期与 Android 活动完全不同。 如果使用 startSe
```
这是 MainActivity.java 的代码
这是`MainActivity.java`的代码
```java
package com.example.admin.androidservice;
......@@ -136,7 +136,7 @@ public class MainActivity extends Activity implements View.OnClickListener {
```
为另一个屏幕创建另一个活动,然后为其命名。 打开 activity_second.xml 并粘贴以下代码
为另一个屏幕创建另一个活动,然后为其命名。 打开`activity_second.xml`并粘贴以下代码
```java
<?xml version="1.0" encoding="utf-8"?>
......@@ -162,7 +162,7 @@ public class MainActivity extends Activity implements View.OnClickListener {
```
这是 secondActivity.java 的代码
这是`secondActivity.java`的代码
```java
package com.example.admin.androidservice;
......
......@@ -8,7 +8,7 @@
## 线性布局
Android 中的线性布局使我们可以将组件水平排列在单列中或垂直排列在单行中。 垂直或水平方向取决于属性 **android:方向。** 线性布局简单易用,如果窗口的长度超过屏幕的长度,则会创建滚动条。 垂直线性布局每行只有一项。 线性布局具有许多不同的属性,可用于根据需要自定义线性布局。 下图显示了水平和垂直线性布局。
Android 中的线性布局使我们可以将组件水平排列在单列中或垂直排列在单行中。 垂直或水平方向取决于属性`android:orientation`线性布局简单易用,如果窗口的长度超过屏幕的长度,则会创建滚动条。 垂直线性布局每行只有一项。 线性布局具有许多不同的属性,可用于根据需要自定义线性布局。 下图显示了水平和垂直线性布局。
![Linear layout](img/85c2e475ed6c8e6d265a2fa94fa30959.jpg)
......@@ -18,12 +18,12 @@ Android 中的线性布局使我们可以将组件水平排列在单列中或垂
以下是 Android 线性布局的一些属性。
* **ID:**布局的唯一标识符。
* **方向:**用于将线性布局方向设置为垂直或水平的属性。
* **Layout_Weight:**此属性在每个组件处分配“重要性”值。
* **重力:**此属性显示对象在 x-y 平面中的位置,例如中心,右侧,顶部,底部和左侧。
* **Weight_sum:**此属性定义最大加权和。
* **分隔线:**绘图可用作按钮之间的垂直分隔线。
* `Id`布局的唯一标识符。
* `Orientation`用于将线性布局方向设置为垂直或水平的属性。
* `Layout_Weight`此属性在每个组件处分配“重要性”值。
* `Gravity`此属性显示对象在 x-y 平面中的位置,例如中心,右侧,顶部,底部和左侧。
* `Weight_sum`此属性定义最大加权和。
* `Divider`绘图可用作按钮之间的垂直分隔线。
除了这些属性,线性布局还具有许多不同的构造函数。
......@@ -31,16 +31,16 @@ Android 中的线性布局使我们可以将组件水平排列在单列中或垂
以下是线性布局的构造函数
* **LinearLayout(上下文上下文)**
* **LinearLayout(上下文上下文,AttributeSet 属性)**
* **LinearLayout(Context context,AttributeSet attrs,int styleAttribute)**
* **LinearLayout(Context context,AttributeSet attrs,int styleAttribute,int styleRes)**
* `LinearLayout(Context context)`
* `LinearLayout(Context context, AttributeSet attribute)`
* `LinearLayout(Context context, AttributeSet attrs, int styleAttribute)`
* `LinearLayout(Context context, AttributeSet attrs, int styleAttribute, int styleRes)`
## Android 中的线性布局示例
如果为两个线性布局(例如垂直线性布局或水平线性布局)设置了不同的属性值,则线性布局看起来会有所不同。
以下示例显示垂直线性布局。 这是 activity_linear_vertical.xml
以下示例显示垂直线性布局。 这是`activity_linear_vertical.xml`
```java
<?xml version="1.0" encoding="utf-8"?>
......@@ -83,9 +83,9 @@ Android 中的线性布局使我们可以将组件水平排列在单列中或垂
![linear layout Vertical](img/0d585ad0e9bd0aa1c7dcd37a58e1b236.jpg)
线性布局垂直
垂直线性布局
这是另一个显示水平线性布局的示例。 以下是 activity_linear_horizo​​ntal.xml 的代码
这是另一个显示水平线性布局的示例。 以下是`activity_linear_horizo​​ntal.xml`的代码
```java
<?xml version="1.0" encoding="utf-8"?>
......@@ -133,6 +133,6 @@ Android 中的线性布局使我们可以将组件水平排列在单列中或垂
![linear Layout Horizontal](img/f71b314144c2a46ab3fd674edfe5908a.jpg)
线性布局水平
水平线性布局
您可以从[链接](https://github.com/JavaTutorialNetwork/Tutorials/blob/master/LinearLayoutExample.rar)下载示例代码。 有关更多 Android 布局,请遵循以下教程。
\ No newline at end of file
......@@ -18,46 +18,46 @@ Android 中的布局对于基于 GUI 的应用程序非常重要。 在上一教
以下是相对布局的属性。
* **ID:**定义是否布局
* **重力:**它指定对象在 x-y 平面中的位置。
* **IgnoreGravity:**被添加以忽略特定组件上的重力。
* `Id`:定义布局 ID
* `Gravity`*它指定对象在 x-y 平面中的位置。
* `IgnoreGravity`被添加以忽略特定组件上的重力。
## 相对布局构造函数
相对布局具有四个不同的构造函数
* RelativeLayout(Contetxt 上下文)
* RelativeLayout(Contetxt 上下文,AttributeSet 属性)
* RelativeLayout(Contetxt 上下文,AttributeSet 属性,int defStyleAttribute)
* RelativeLayout(Contetxt 上下文,AttributeSet 属性,int defStyleAttribute,in defStyleRes)
* `RelativeLayout(Contetxt context)`
* `RelativeLayout(Contetxt context, AttributeSet attribute)`
* `RelativeLayout(Contetxt context, AttributeSet attribute, int defStyleAttribute)`
* `RelativeLayout(Contetxt context, AttributeSet attribute, int defStyleAttribute, in defStyleRes)`
## 相对布局的方法
以下是相对布局的几种重要方法
* **setGravity():**它将子视图的重力设置为居中,向左或向右。
* **setHorizo​​ntalGravity():**用于水平定位元素。
* **setVerticalGravity():**用于垂直放置元素。
* **requestLayout():**用于请求布局。
* **setIgnoreGravity():**用于忽略任何特定元素的重力。
* **getGravity():**用于获取元素的位置。
* **getAccessibilityClassName():**返回对象的类名称。
* `setGravity()`它将子视图的重力设置为居中,向左或向右。
* `setHorizo​​ntalGravity()`用于水平定位元素。
* `setVerticalGravity()`用于垂直放置元素。
* `requestLayout()`用于请求布局。
* `setIgnoreGravity()`用于忽略任何特定元素的重力。
* `getGravity()`用于获取元素的位置。
* `getAccessibilityClassName()`返回对象的类名称。
## 相对布局的 XML 属性
相对布局具有以下 XML 属性。
**android:layout_above,**它将给定组件的底部边缘定位在给定组件 ID 上方。
`android:layout_above`它将给定组件的底部边缘定位在给定组件 ID 上方。
**android:layout_alignBaseline,**它将给定组件的基线置于给定组件 ID 的基线之上。
`android:layout_alignBaseline`它将给定组件的基线置于给定组件 ID 的基线之上。
**android:layout_alignBottom,**它在给定组件 ID 的底部对齐。
`android:layout_alignBottom`它在给定组件 ID 的底部对齐。
**android:layout_alignEnd,**它在给定组件 ID 的末尾对齐。
`android:layout_alignEnd`它在给定组件 ID 的末尾对齐。
**android:layout_alignLeft,**它将组件定位在给定组件 ID 的左侧。
`android:layout_alignLeft`它将组件定位在给定组件 ID 的左侧。
**android:layout_alignRight,**将该组件定位在给定组件 ID 的右侧。
`android:layout_alignRight`将该组件定位在给定组件 ID 的右侧。
## 相对布局示例
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册