《Android App开发入门:使用Android Studio 2.X开发环境》—— 2-2 Android 程序的设计流程

简介: 本节书摘来自华章计算机《Android App开发入门:使用Android Studio 2.X开发环境》一书中的第2章,第2-2节,作者 施威铭,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2-2 Android 程序的设计流程

Android程序设计是把程序代码和资源(Resource)分开设计的。“资源”包含界面的安排、字符串对象、图形对象、音乐对象等,这些对象都以文件的方式存放在项目的 res 文件夹下,再构建(Build)起来成为 .apk 文件,最后由用户下载安装到手机上使用。

Android 的资源以视觉部分最多,其他也包含音乐、字符串等资源,为解说方便,除非在特别谈到音乐、字符串等资源时,否则我们多以视觉资源为代表。

视觉设计和程序逻辑

原本 Android 程序是可以一直用 Java 写下去的,但那样往往工程浩大又十分复杂,因此 Android 把程序设计的工作分成两大部分:一部分专门负责做程序的视觉设计(也就是用户界面,User Interface,UI),另一部分负责程序代码(程序逻辑)的编写。Android 的视觉设计是用 XML 描述的(见本章最后的延伸阅读及附录D),程序代码则是用 Java 程序设计语言写的。

image

把视觉设计和程序逻辑分开(Android 官方文件叫做 Externalization)有许多好处:

(1)程序设计人员不一定擅长视觉设计,视觉设计的人员也往往不熟悉程序设计工作,因此如果能在设计时把两者分离,然后在最后构建(Build)的阶段再组合起来,势必对团队合作的顺畅度有很大帮助。目前,网页设计也多采用这样的团队合作方式。再者,把视觉设计和程序逻辑分开可以让项目维护简单化,尤其是程序调试的时候,错误来源不会纠缠在一起难以区分。该是视觉的部分就属于视觉,该是程序的问题就属于程序。

(2)把视觉设计和程序逻辑分开后,如果视觉设计做了更改,只要不改动程序逻辑,那么程序的部分可以完全不用改动,只要重新再 Build(建立或构建)就可以了。同样,当程序逻辑改动了,如果视觉设计不必改动,那么只要拿原来的视觉设计文件再 Build 一次即可。

  1. 这点最重要!目前手机和平板电脑型号众多、机型各异,把视觉设计分离出来对于程序设计人员实在是一大福音,因为只要把各种尺寸、分辨率、语言以及手持设备在垂直或水平握持的状态都给予不同的资源文件,然后全部 Build 到 .apk 里,当 App 执行时,手机的 Android 系统就会按用户手机里的设置值(如该手机是中文、4.5 英寸、高分辨率等)和直握、横握状态获取 .apk 里的资源文件。这样程序就可以适用于多机种和多国语言了。

image

用图形化界面做视觉设计

Android 采用 XML 设计其 UI(User Interface),优点是可以让 UI 的层次一目了然,容易维护;缺点是 XML 代码编写不易,而且无法看到所要呈现的视觉效果。因此, Android Studio 提供了所见即所得(What You See Is What You Get,WYSIWYG)的图形布局编辑器,让用户只要用拖动对象和设置属性的方式,就可以完成视觉界面布局的工作。Android Studio 会自动把用户设计好的界面布局转成 XML 布局(Layout)文件,然后和 Java 程序构建(Build)成App(.apk)文件。

image

用Java编写程序逻辑

Android 采用 Java 语言编写程序逻辑。在建立新项目的时候,Android Studio 已经 帮用户建立好了 Java 程序的骨架,因此在第 1 章中什么程序都不用写就可以直接执行, 并且可以在手机界面上看到“Hello World!”的信息。

image

在编写程序的过程中,Android Studio 会提供许多工具帮助用户自动生成程序代码,从而避免语法上的错误,初学者只要发挥三成 Java 功力,将焦点集中在 Android 架构的学习上,就可以开发 Android App 了。

Android 是一个面向对象(Object-Oriented,OO)的操作系统,因此在App 的设计中 ,OO 的影子无所不在,本书在附录 A 中有 OO 概念快速掌握的内容,让不熟悉 Java 面向对象程序设计语言的读者能够快速掌握 OO 的要点。阅读本书各章节时,可随时翻阅附录 A 加以对比,对学习效果将有很大帮助。另外,在必要时,本书随时提供有关 Java重要关键词(keyword)的说明,以帮助读者能够顺利学习。

把视觉设计与程序代码构建起来

image

相关文章
|
4天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
27天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
14 0
|
1月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
88 3
|
1月前
APP启动流程
APP启动流程
21 0
|
1月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
103 0
|
1月前
|
设计模式 人工智能 开发工具
安卓应用开发:构建未来移动体验
【2月更文挑战第17天】 随着智能手机的普及和移动互联网技术的不断进步,安卓应用开发已成为一个热门领域。本文将深入探讨安卓平台的应用开发流程、关键技术以及未来发展趋势。通过分析安卓系统的架构、开发工具和框架,本文旨在为开发者提供全面的技术指导,帮助他们构建高效、创新的移动应用,以满足不断变化的市场需求。
18 1
|
1天前
|
数据库 Android开发 开发者
安卓应用开发:构建高效用户界面的策略
【4月更文挑战第24天】 在竞争激烈的移动应用市场中,一个流畅且响应迅速的用户界面(UI)是吸引和保留用户的关键。针对安卓平台,开发者面临着多样化的设备和系统版本,这增加了构建高效UI的复杂性。本文将深入分析安卓平台上构建高效用户界面的最佳实践,包括布局优化、资源管理和绘制性能的考量,旨在为开发者提供实用的技术指南,帮助他们创建更流畅的用户体验。
|
3天前
|
测试技术 Android开发
Android App获取不到pkgInfo信息问题原因
Android App获取不到pkgInfo信息问题原因
14 0
|
18天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。
|
21天前
|
监控 算法 Android开发
安卓应用开发:打造高效启动流程
【4月更文挑战第5天】 在移动应用的世界中,用户的第一印象至关重要。特别是对于安卓应用而言,启动时间是用户体验的关键指标之一。本文将深入探讨如何优化安卓应用的启动流程,从而减少启动时间,提升用户满意度。我们将从分析应用启动流程的各个阶段入手,提出一系列实用的技术策略,包括代码层面的优化、资源加载的管理以及异步初始化等,帮助开发者构建快速响应的安卓应用。