《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月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
903 139
|
4月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
446 137
|
4月前
|
数据采集 JavaScript 前端开发
开发比分App?你缺的不是程序员
开发体育比分App,关键不在代码,而在懂体育、懂数据、懂用户。明确定位、理清需求、选好数据源,再找专业的产品、数据与技术人才协同,才能少走弯路。程序员最后入场,效率最高。
299 154
|
5月前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
202 0
|
7月前
|
人工智能 文字识别 小程序
旅游社用什么工具收报名 + 资料?不开发 App 也能自动收集信息
本文探讨了旅游行业中报名信息收集的常见痛点及解决方案,重点介绍了二维码表单工具在提升信息收集效率、简化操作流程方面的优势。通过对比多种工具,分析其适用场景与实际应用逻辑,为一线旅游从业者提供高效、低成本的执行参考。
|
8月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
7月前
|
Rust 安全 前端开发
Github 轻松斩获30k+ Star,桌面应用开发太丝滑啦,Tauri框架能重塑桌面App开发?别错过,抓紧上车
Tauri 是一个基于 Rust 的开源框架,用于构建轻量级、高性能、安全的跨平台桌面及移动应用。它利用系统 WebView 渲染前端界面,后端由 Rust 编写,具备出色的性能和安全性。相比 Electron,Tauri 应用体积更小、启动更快,且默认权限更安全。它支持 React、Vue、Svelte 等主流前端框架,并提供自动更新、CLI 工具链、资源注入优化等功能,适用于生产力工具、开发者工具、数据分析、AI 应用等多种场景。目前 Tauri 在 GitHub 上已获得超过 30,000 Star,社区活跃,是现代桌面应用开发的理想选择。
939 0
|
4月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
571 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
4月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
503 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡