Android程序设计基础 • 【第1章 Android程序入门】

article/2025/8/5 4:15:16

全部章节   >>>>


本章目录

1.1 Android 平台介绍

1.1.1 Android 简介

1.1.2 Android 平台的发展

1.1.3 Android 平台架构

1.2 搭建 Android 开发环境

1.2.1 下载和配置 Android Studio

1.2.2 初始化配置 Android Studio

1.2.3 配置和使用 Genymotion 模拟器

1.2.4 实践练习

1.3 创建和运行第一个 Android 应用程序

1.3.1 开发 Android 应用程序

1.3.2 运行 Android 应用程序

1.3.3 实践练习

1.4 Android 应用程序的目录结构

1.4.1 Android 工程目录结构

1.4.2 Android 代码解释

1.4.3 实践练习

总结:


1.1 Android 平台介绍

1.1.1 Android 简介

Android 一词本意指“机器人”,它是一种基于 Linux 的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑,由 Google 和开放手机联盟主导开发

Android 操作系统最初由 Andy Rubin 开发,主要用于手机

小米、华为和魅族等新兴品牌都推出了相当不错的 Android手机,并且也获得了市场的广泛认可,目前 Android 已经占据了全球智能手机操作系统 70% 以上的份额

1.1.2 Android 平台的发展

随着互联网 3G/4G 时代的来临,国家斥巨资发展移动互联网产业,移动互联网前景一片大好。通过大数据分析,2012—2019 年,智能手机用户猛增 240%,高达 11 亿用户,而 Android 系统的手机用户占比 74%

Android 是第一个完整、开放、免费的操作系统平台,将会促使移动设备创新,使用户体验到最优越的移动服务;同时,开发商也将获得全新的开放级别,便于协同合作的开展,保证新型移动设备的研发速度。

目前,市面上主要的 Android 系统版本及其详细信息见

版本号

系统代号

API

市场占有率

2.2

冻酸奶

8

0.1%

2.3.3 ~ 2.3.7

姜饼

10

1.5%

4.0.3 ~ 4.0.4 

冰淇淋三明治

15

1.3%

4.1.x4.2.x4.3

果冻豆

161718

5.6%7.7%2.3%

4.4

奇巧

19

27.7%

5.05.1

棒棒糖

2021

13.1%21.9%

6.0

棉花糖

23

18.7%

7.0      

牛轧糖

24

0.1%

1.1.3 Android 平台架构

从软件分层的角度而言,Android 系统由应用层、应用框架层、系统运行库层和 Linux 内核层组成

  • 应用层:应用层位于最上层,该层的所有应用都是使用 Java 语言编写并运行在虚拟机上的程序
  • 应用框架层:应用框架层主要提供了构建应用程序时可能用到的各种 API,Android 自带的一些核心应用就是使用这些 API 完成的,开发者也可以通过使用这些 API 来构建自己的应用程序
  • 系统运行库层:系统运行库层通过一些 C/C++ 库来为 Android 系统提供了主要的特性支持
  • Linux 内核层: Android 基于 Linux 2.6 提供核心系统服务,如安全、内存管理、进程管理、网络堆栈和驱动模型等

Android 自发布以来备受关注,越来越多的开发者基于 Android 系统开发应用。与其他手机操作系统相比,Android 具有许多无可比拟的优点,其优势主要表现在以下 5 个方面:

  • 开放性:Android 由 Google 与开放手机联盟合作开发而成,该联盟由 30 多家技术和无线应用的领军企业组成
  • 平等性:在 Android 系统中,所有应用程序完全平等,系统默认自带程序与程序员自主开发的程序差别甚微
  • 无界性:Android 中的应用程序可以通过标准 API 访问核心移动设备的功能
  • 便捷性:Android 平台手机无缝结合 Google 的优秀服务
  • 硬件丰富性:同样基于 Android 系统的开放性,众多硬件厂商可以推出各种搭载 Android 系统的设备

1.2 搭建 Android 开发环境

1.2.1 下载和配置 Android Studio

Android 开发可以使用 Windows、Mac OS、Linux 等平台的操作系统(本书选择 Windows 10),开发时需要的软件名称、使用版本及下载地址见表

软件名称

使用版本

下载地址

JDK

1.8

https://www.oracle.com/technetwork/java/javase/downloads/index.html

Android Studio 

3.2.1 

https://developer.android.google.cn/studio/index.html

Android SDK

5.1

http://developer.android.com/sdk/index.html

Genymotion

2.12.2

https://www.genymotion.com/

下载和安装 Android Studio 的操作步骤

1、点击 DOWNLOAD ANDROID STUDIO 按钮,在弹出的对话框上点击同意许可条款并下载 Windows 版本的 Android Studio

2、双击下载的安装文件,进行安装

3、点击“Next”,勾选所有的安装项。选择安装项

4、点击“Next”,设置 Android Studio 开发工具的安装路径

1.2.2 初始化配置 Android Studio

在“开始”菜单中选择 Android Studio 图标,打开开发工具。选择 Android Studio 开发工具

在弹出的对话框中,提示让用户选择是否导入之前 Android Studio 版本的配置文件,首次安装,选择不导入

在弹出的对话框上点击“Cancel”按钮

进入到 Android Studio 的配置页面

点击“Next”选择安装类型

点击“Next”,选择主题

点击“Next”完成配置工作

点击“Finish”按钮,配置工作全部完成,Android Studio 会尝试联网下载一些组件,组件下载完成后点击“Finish”按钮,进入到 Android Studio 欢迎界面

1.2.3 配置和使用 Genymotion 模拟器

使用 Genymotion 必须先注册,在 Genymotion 官网注册并激活账号。打开 Genymotion 的下载页面,登录账号,下载最新的Genymotion

下载带有 Virtual Box 的 Genymotion 安装文件进行安装,在安装过程中,设置好安装路径,根据安装向提示进行安装即可

打开 Genymotion 模拟器,点击“Add”按钮添加 Android 版本虚拟机。在弹出的“Virtual device creation wizard”窗口中,使用 Genymotion 账号登录(没有登录的情况下无法完成后续配置)

登录完成后,在“Virtual device creation wizard”窗口的“Android version”下拉选项中选择要下载的Android 虚拟机版本

在“Virtual device creation wizard”窗口的“Device model”下拉选项中选择要下载的 Android 虚拟机设备类型,可供选择的有通用手机类型、平板类型、Google 虚拟机、Sony 虚拟机等。选择通用手机类型即可。点击“Next”,为新创建的虚拟设备命名,继续点击“Next”,下载 Android 5.1 通用手机版本的虚拟机

下载完成后, 点击“Finish” 按钮, 回到“Genymotion for personal use” 窗口, 选 需要打开的Android 虚拟机,点击“Start”按钮,启动 Android 虚拟机

1.2.4 实践练习

 

1.3 创建和运行第一个 Android 应用程序

1.3.1 开发 Android 应用程序

启动 Android Studio 后,开发工具将打开上一次的工程。可以通过工具栏中的“File” “Close Project”关闭当前打开的工程,选择“Start a new Android Studio project”创建新工程

单击“Start a new Android Studio project”,弹出填写项目基本信息的界面,在界面中相应的位置填写 Android 工程名和工程保存路径

在图 1.21 中填写项目信息之后单击“Next”,配置项目所运行的平台,如可穿戴设备、电视和 Google 眼镜

填写项目信息之后单击“Next”,跳转到创建 Activity 界面,界面中列出来了 Activity 的一些内置模板,选择一个较为简洁的模板 Empty Activity 来创建一个空的 Activity

选择 Activity 模板后单击“Next”,为创建的 Activity 和视图命名

Activity Name 表示创建的 Activity 的名字,这里填入 MainActivity,Layout Name 表示布局的命名,这里填入 activity_main。然后点击“Finish”按钮,并耐心等待一会儿,项目就会创建成功

1.3.2 运行 Android 应用程序

由于 Android Studio 自动生成了很多代码和文件,所以不需要编写任何代码应用程序就已经可以运行了。但是在运行之前还必须要有一个运行的载体,可以是一部 Android 手机,也可以是 Android 模拟器

使用 Genymotion 模拟器运行 Android 应用程序

 

观察 Android Studio 顶部工具栏中的图标,其中左边的锤子按钮是用来编译按钮的,中间的下拉列表是用来选择运行哪一个项目的,通常 app 就是当前的主项目,右边的三角形按钮是用来运行项目的

启动 Genymotion 模拟器,点击 Android Studio 工具栏中的运行按钮,弹出运行设备的选择对话框

选中启动的 Genymotion 模拟器,点击“OK”按钮,Android 应用程序就会运行到模拟器上

1.3.3 实践练习

 

1.4 Android 应用程序的目录结构

1.4.1 Android 工程目录结构

使用 Android Studio 工具创建的工程,工程目录目录结构包含以下 3 个部分:

  • manifests:用于存放工程的配置文件,如 AndroidManifest.xml 文件。它是整个程序的系统控制文件,存在于每个应用程序中,程序中定义的 Activity 等组件都需要在这个文件中注册,同时还可以在这个文件中给应用程序添加权限声明。
  • Java:用于存放所有包及 Java 源代码,代码包括源程序和测试程序。开发 Android 程序时,编写该目录下的源代码占用了大量时间
  • res:包含多个目录,如 drawable、layout、values 和 mipmap 等,分别用于存放项目工程中使用的图片、布局文件、字符串文件和存放自动缩放图片的目录。其中 values 目录中包含很多 XML 描述文件,包括字符串定义、颜色定义、样式定义和长度定义等

1.4.2 Android 代码解释

AndroidManifest.xml 文件是 Android 应用程序的配置文件,在 HelloWorld 应用中AndroidManifest.xml代码如下

<?xml version="1.0" encoding="utf-8"?>
<!-- 整个应用程序的配置文件,程序中的组件都需要在这个文件中注册和配置 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ziniu.android"><!-- application标签主要用于配置整个应用程序的基本信息,包括程序使用的图标和应用程序的名称 --><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><!-- activity 标签用于配置 Activity 的基本属性,包括 Activity 的名称 --><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application>
</manifest>

AndroidManifest.xml 文件的具体说明见表:

名称

说明

activity 

与用户交互的主要工具。Activity 是应用程序的门面,凡是在

应用中看到的东西,都是放在 Activity 中的

android:name 

Activity 的名称

intent-filter 

Intent 过滤器

action

组件支持的 Intent Action

category 

组件支持的 Intent Category

MainActivity 类的代码如下:

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
}

需要重写 onCreate() 方法

MainActivity 类说明:

  • 主程序 MainActivity 类继承自 AppCompatActivity 类,这是一种向下兼容的 Activity,可以将 Activity 在各个系统版本中增加的特性和功能最低兼容到 Android 2.1 系统
  • Activity 是 Android 系统提供的一个 Activity 基类,项目中所有的 Activity 都必须继承它或者它的子类才能拥有 Activity 的特性 重写了 onCreate(Bundle savedInstanceState) 方法,这个方法是一个 Activity 被创建时必定要执行的方法
  • Android 程序的设计讲究逻辑和视图分离,因此不推荐在 Activity 中直接编写界面,更加通用的一种做法是,在布局文件中编写界面,然后在 Activity 中引入进来可以看到,onCreate() 方法中调用了 setContentView()方法,setContentView() 方法中引入了一个 activity_main 布局文件,这个布局文件就是应用程序显示的界面

activity_main.xml 文件是 MainActivity 的布局文件,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayoutxmlns: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:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.ziniu.android.MainActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

MainActivity 类的布局文件说明:

<ConstraintLayout>:定义一个扁平化布局

android:layout_width:定义当前视图在屏幕中所占的宽度。

match_parent 将屏幕的宽度作为布局的宽度

android:layout_height:定义当前视图在屏幕中所占的高度

activity_main 的布局文件中设置了一个 TextView 控件,用于显示文本内容

  • android:layout_width:属性值  wrap_content 根据文字宽度而改变控件宽度
  • android:layout_height:属性值  wrap_content 根据文字高度而改变控件高度
  • android:text:设置该  TextView 需要显示的文字内容

HelloWorld 项目中的 strings.xml 文件代码如下:

<resources><string name="app_name">HelloWorld</string>
</resources>

在代码中通过 R.string.app_name 可以获得该字符串的引用 在 XML 文件中通过 @string/app_name 可以获得该字符串的引用

1.4.3 实践练习

 

总结:

  • Android 系统可分为:应用层、应用框架层、系统运行库层和Linux 内核层
  • 搭建 Android 开发环境需要安装:JDK、Android Studio、Android SDK和Genymotion Android
  • 应用程序的目录结构包含:manifests、Java和res

 


http://chatgpt.dhexx.cn/article/wBSkFm6g.shtml

相关文章

Android自动化的一般方法

1 背景 https://mp.weixin.qq.com/s/B7o3JSkYI_9c4RivatsZKQ Android自动化包含自动化测试和第三方App的自动化运行&#xff0c;这里的自动化测试主要指的是纯粹的黑盒测试&#xff0c;即在完全不了解代码逻辑的情况下编写的测试用例&#xff0c;可以代替人工完成重复性的工…

基于Android的点餐系统设计与实现

目 录 摘 要 2 ABSTRACT 3 目 录 1 1 绪 论 1 1.1课题研究背景和意义 1 1.2课题可行性分析 2 1.3论文框架安排 3 2 开发语言说明 4 2.1 开发工具及环境简介 4 2.2 Android系统 5 2.2.1 Android Features特性 5 2.2.2 Android系统的四大组件 6 3 点餐系统分析 8 3.1概述 8 3.1.1…

基于Android的记账本的设计与实现

1.基于Android平台的记账系统概述 记账就是按照生活中的发生的经济活动&#xff0c;及时进行记录&#xff0c;为了便于分析个人消费和各种财务状况等等&#xff0c;通过您的随身会计——记账本APP更易看出资金的流动方向。 本论文采用的是一种可移动的记账方法&#xff0c;由移…

Android设计模式之——模板方法模式

一、介绍 在面向对象开发过程中&#xff0c;通常会遇到这样的一个问题&#xff0c;我们知道一个算法所需的关键步骤&#xff0c;并确定了这些步骤的执行顺序&#xff0c;但是&#xff0c;某些步骤的具体实现是未知的&#xff0c;或者说某些步骤的实现是会随着环境的变化而改变…

Android程序设计基础

#Android应用程序架构 Android程序的入口被称为Main Activity&#xff0c;带有界面的Android应用程序一般需要从Main Activity启动。 目录结构 Adnroid工程主要包括两个区域&#xff1a;源码区和资源区。 Mainifest.xml 下面是一个标准的AndroidManifest.xml文件样例。 <…

qt如何编写android程序,如何利用Qt开发Android应用程序

Qt 工具箱是一个使用广泛的跨平台GUI工具箱,可用于 Windows、Linux、Mac OSX 和许多手持平台。QT 具有良好结构化(但灵活)的面向对象的结构、清晰的文档以及直观的 API。 Qt最大的优势就是跨平台,一次性开发的Qt应用程序,可以跑Windows、跑linux、跑MAC……如今移动平台Andr…

Android插件化方案实践

一、插件化概述 1、插件化和组件化的区别 组件化是将一个app拆分为多个模块进行协作开发&#xff0c;每个模块都是一个单独的组件&#xff0c;这些组件可以相互依赖&#xff0c;也可以单独调试运行。但是最终发布的时候&#xff0c;这些组件会合并在一起&#xff0c;组成一个整…

Android手机开发课程设计之记事本

一、需求分析 1.1业务需求分析 近年来&#xff0c;随着生活节奏的加快&#xff0c;工作和生活的双重压力全面侵袭着人们&#xff0c;如何避免忘记工作和生活中的诸多事情而造成不良的后果就显得非常重要。为此我们开发一款基于Android系统的简单记事本&#xff0c;其能够便携…

MATLAB图形绘制--添加图例

添加图例 专业的图像总是附有图例来告诉读者曲线表示什么&#xff0c;下面我们将绘制两个表示势能的函数&#xff0c;他们由双曲三角函数sinh(x)和cosh(x)来定义&#xff0c;X的定义域为0&#xff5e;2&#xff0c;首先我们定义X&#xff1a; >> x [0:0.01:2];然后表示…

matlab 图例自定义,matlab中如何自定义图例_常见问题解析

pd接口是什么口_常见问题解析 pd接口也是“Type-C”的接口&#xff0c;支持扩充协议&#xff0c;可以给手机笔记本充电&#xff0c;也可以传输数据&#xff1b;而“Type-C”中的PD的意思指的是“USB Power Delivery”功率传输协议。 matlab中如何自定义图例&#xff1f;Matlab如…

Matlab 画多个图例( Plot multiple legends )

用matlab 画图时&#xff0c;发现线太多&#xff0c;生成的图例&#xff0c;遮盖了曲线。于是想画成多个图例&#xff0c;然后可以自由拖动。 废话不多说&#xff0c;2&#xff09;代码&#xff08;设置多个图例的部分在最后20行&#xff09;&#xff1b; 1&#xff09;效果。 …

matlab之图例legend的数字变量显示

legend是matlab的图例使用函数&#xff0c;其主要的只用方式为legend(内容1,内容2) 本文主要介绍一下legend如何引用数组的数字表现形式。 例如&#xff0c;若想要画一个滤波器的不同反馈系数的频率响应曲线&#xff0c;在设置条例内容时&#xff0c;需要手动输入反馈系数K的数…

MATLAB图例变成一列变多列的方法

小编在绘制GPS数据图像时&#xff0c;发现图例中元素个数有31个&#xff0c;当采用默认生成图例时&#xff0c;只有一列图例&#xff0c;显示结果如下 图例非常难看&#xff0c;而且占位子&#xff0c;如何让图例从一列变成多列呢&#xff1f; 这里小编给大家提供一个思路&…

matlab把图例放在左边,如何将图例放在p之外

如何将图例放在p之外 我有一系列20个图(不是子图)可以在一个图中制作。 我希望传说能够超越盒子。 与此同时,我不想改变轴,因为图形的大小减少了。 请帮助我以下查询: 我想将情节框保留在情节区域之外。 (我希望传说位于情节区域的右侧)。 无论如何,我减少了图例框内文本的…

matlab之在坐标区上添加图例函数legend

目录 一、功能 二、语法 1.legend(label1,...,labelN) 2.legend(labels) 3.legend(subset,___) 4.legend(target,___) 5.legend(___,Location,lcn) 6.legend(___,Orientation,ornt) 7.legend(___,Name,Value) 8.legend(bkgd) 9.lgd legend(___) 10.legend(v…

Matlab作图后的各种调整方法——线条、坐标、标题、图例

Matlab作图后的各种调整方法——线条、坐标、标题、图例 文章目录 Matlab作图后的各种调整方法——线条、坐标、标题、图例一 &#xff0c; 写在前面1.整个图窗 Figure&#xff08;gcf&#xff09;2.我们使用命令做出的线条 Line&#xff0c;例如plot命令3.坐标轴 Axes (gca) 二…

Matlab图例Legend多行排布、字体格式

适用于图例文字多&#xff0c;简单排布效果差的情形 1. 绘制图形&#xff0c;添加图例 %数据 x[1 2 3 4]; y1[16 2 3 13]; y2[5 11 10 8]; y3[9 7 6 12]; y4[4 14 15 1]; %画图plot(x,y1,r-o); %红色&#xff0c;实线&#xff0c;圆圈 hold on; plot(x,y2,k-d…

在MATLAB中的图例标注及实例说明

1.基本绘图函数 plot(Y)&#xff1a;其中输入参数Y就是Y轴的数据&#xff0c;一般习惯性输入向量 plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec):LineSpec为选项&#xff08;开关量&#xff09;字符串&#xff0c;用于设置曲线颜色、线型、数据点等&#xff1b;LineSpec的标准设定…

【Matlab】画图时去掉某些图例

1. 什么是legend函数&#xff1f; 在Matlab中&#xff0c;legend函数用于在图形中添加图例&#xff0c;以便更好地理解和解释数据。图例提供了与图形相关的标识&#xff0c;使观察者能够了解图形中不同元素的含义。 legend 函数的语法如下&#xff1a; legend(标签1, 标签2, …

【Matlab】论文各种图例配色Matlab绘制

1. Matlab 绘图 1.1. Plot 函数 x-pi:pi/10:pi; %以pi/10为步长 ytan(sin(x))-sin(tan(x)); %求出各点上的函数值 plot(x,y,--rs,... %绘制红色的虚线&#xff0c;且每个转折点上用正方形表示。LineWidth,2,... % 设置线宽为2Marke…