【Android开发Design】应用结构 - App Structure

合集下载

Android项目开发如何设计整体架构技术详细介绍

Android项目开发如何设计整体架构技术详细介绍

Android项目开发如何设计整体架构技术详细介绍在Android项目开发中,设计整体架构是非常重要的,它决定了项目的可扩展性、可维护性和性能等方面。

下面将从技术角度详细介绍Android项目开发的整体架构设计。

1.MVP架构:MVP是一种经典的Android架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和展示器(Presenter)。

模型负责处理数据和业务逻辑,视图负责界面的展示和用户交互,展示器作为桥梁连接模型和视图,处理界面事件和数据交互的逻辑。

MVP体现了单一职责原则,提高了项目的可测试性和可维护性。

2.MVVM架构:MVVM是Model-View-ViewModel的缩写,它是一种基于数据绑定的架构模式。

ViewModel负责处理业务逻辑和数据转换,将模型数据转换为视图可以直接使用的数据,同时监听视图的变化并更新模型数据。

视图负责界面的展示和用户交互,通过数据绑定直接与ViewModel进行交互。

MVVM 通过数据绑定的方式实现了视图和模型的解耦,提高了项目的可维护性和可测试性。

3. Clean架构:Clean架构是一种以依赖倒置原则为基础的架构模式,它将应用程序分为三个层次:表示层、域层和数据层。

表示层负责界面的展示和用户交互,域层负责处理业务逻辑和数据转换,数据层负责访问数据源。

每个层次都依赖于下一层次,但是不直接依赖于具体实现,通过接口进行解耦。

Clean架构通过减少依赖关系提高了项目的可测试性、可维护性和可扩展性。

4. Redux架构:Redux是一种基于Flux架构的状态管理模式,主要用于处理应用程序的状态同步和数据流管理。

Redux的核心概念包括:状态(State)、动作(Action)和存储(Store)。

状态是应用程序的数据,动作是描述状态变化的对象,存储是应用程序的状态容器。

Redux通过定义不可变的状态和纯函数的方法来管理应用程序的状态,简化了状态同步和数据流管理的复杂度。

Android程序结构简单讲解

Android程序结构简单讲解

Android程序结构简单讲解
Android程序在创建时,Android Studio就为其构建了基本结构,设计者可以在此结构上开发应⽤程序,因此掌握Android程序结构是很有必要的。

下⾯以HelloWorid程序为例,分析Android 程序结构:
在图中,可以看到⼀个Android程序由多个⽂件以及⽂件夹组成,这些⽂件分别⽤于不同的功能,具体分析如下:
manifests
⽤于存放AndroidManifest xml⽂件(⼜称清单⽂件).该⽂件是整个项⽬的配置⽂件。

在程序中定义的四⼤组件都需要在这个⽂件中注册,另外在该⽂件中还可以给程序添加权限。

在清单⽂件中配置的信息会添加到Android 系统中,当程序运⾏时,系统会找到清单⽂件中的配置信息,然后根据配置信息打开相应组件。

java
⽤于存放所有的Java代码,在该⽂件夹中可以创建多个包,每个包中可以存放不同的⽂件或Activity。

res
⽤于存放Android 程序所⽤到的资源,例如图⽚布局⽂件、字符串等。

drawable ⽬录⽤于存放图⽚及XML⽂件,
layout⽬录⽤于存放布局⽂件,
mipmap⽬录通常⽤于存放应⽤程序图标,系统会根据⼿机屏幕分辨率(hdpi/mdpi/xhdpi/xxhdpi/xxxhdpi)匹配相应⼤⼩的图标,
values⽬录⽤于放置定义的字符串。

Gradle Scripts
⽤于存放项⽬创建的相关⽂件,⽆须修改。

Android应用程序架构

Android应用程序架构

Android应用程序架构Android应用程序架构是指Android系统中应用程序的设计和实现方式。

随着移动互联网的快速发展,Android系统成为了最受欢迎的移动操作系统之一,而Android应用程序架构也因此变得越来越重要。

在Android应用程序架构中,有许多组件和模块,这些组件和模块可以帮助开发者构建高质量、强大的应用程序。

下面我们将深入探讨一下Android应用程序架构,包括其各个组成部分及其作用。

1.应用程序界面应用程序界面是Android应用程序的门面,也是用户与应用程序交互的地方。

在Android系统中,应用程序界面通常是由活动(Activity)、片段(Fragment)、布局(Layout)、视图(View)等组成。

其中,活动(Activity)是用户与应用程序交互的基本单位。

一个应用程序可以拥有多个活动,每个活动都是一个独立的界面。

活动可以包含一些用户界面元素,比如按钮、文本框等,可以接受用户的输入,也可以向用户展示数据。

片段(Fragment)是由活动(Activity)管理的一部分用户界面。

与活动不同的是,一个活动可以包含多个片段。

片段可以独立于活动存在,也可以与其他片段组合在一起形成一个完整的界面。

片段的使用可以让应用程序更加灵活,可以根据用户的需求动态地加载、替换、删除等。

布局(Layout)定义了用户界面的结构和样式。

在Android系统中,有多种布局,比如线性布局(LinearLayout)、相对布局(RelativeLayout)、表格布局(TableLayout)、网格布局(GridLayout)等。

通过不同的布局方式,我们可以实现各种不同的界面效果。

视图(View)是Android系统中最基本的界面元素,用于展示单个元素,例如按钮、文本框、图片等。

在Android系统中,视图(View)通常组合在布局(Layout)中使用,通过不同的视图(View)和布局(Layout)的组合,我们可以构建出非常复杂的用户界面。

Android开发之Android体系架构介绍

Android开发之Android体系架构介绍

Android开发之Android体系架构介绍在Android中,整个框架由应用、应用框架、原生库、Android实时库、硬件抽象层、Linux内核等若干部分组成。

其中最核心的Android虚拟机部分也已经开放源码。

对开发者而言,如果期望在深度定制的基础上开发出差异化、高度竞争力的产品,需要在应用框架、原生库、硬件抽象层、Linux内核等方面有较深入的理解。

图1显示了Android的体系架构。

图1 Android体系架构1 核心服务所谓Android的核心服务主要包括熵服务(Entropy Service)、电源管理器(Power Manager)、Activity管理器(Activity Manager)、通话寄存器(Telephony Registry)、包管理器(Package Manager)、账户管理器(Account Manager)、内容管理器(Content Manager)、内容提供器(System Content Providers)、电池服务(Battery Service)、光线服务(Lights Service)、振动服务(Vibrator Service)、闹钟管理器(Alarm Manager)、看门狗(Init Watchdog)、窗口管理器(Window Manager)、蓝牙服务(Bluetooth Service)等。

这些服务和应用程序密切相关,但通常应用程序不能直接接入核心服务。

早期版本中的硬件服务(Hardware Service)和传感器服务(Sensor Service)已经被移除,光线服务和振动服务在核心服务通过系统服务器来启动。

系统服务器的实现位于SystemServer.java中。

2 原生服务在Android中,上层的应用是基于Java开发的,但是框架层的服务很多是基于C/C++的,为了说明的方便,在本书中,将基于C/C++的服务称为原生服务。

Android应用程序的基本结构

Android应用程序的基本结构

Android应⽤程序的基本结构1. ⽂件夹结构表1.1 Android项⽬⽂件夹结构⼯程项解释src/该⽂件夹包含了应⽤程序的Java源代码。

它遵循标准的Java包约定。

res/此⽂件夹包含应⽤程序的所有资源,同时也是你使⽤XML声明布局⽂件的地⽅。

此⽂件夹包含所有的布局⽂件、图⽚、主题以及字符串。

gen/当你编译在res/⽬录下的XML布局⽂件时此⽂件夹⾃动⽣成。

它通常只包含⼀个⽂件——R.java。

此⽂件包含你需要在res/⽂件夹中引⽤的资源的常量。

不要编辑此⽂件夹中的任何东西。

assets/此⽂件夹包含应⽤所需的其他⽂件。

如果应⽤需要⼀个⼆进制⽂件的资源才能正常运作,把它放到此⽬录下即可。

AndroidManifest.xml该清单包含Android系统需要的应⽤程序的基本信息。

这包括应⽤使⽤的活动和服务、它需要的权限、它响应的任何意图以及应⽤程序的名称等基本信息。

default.properties列出了Android API的构建⽬标。

1. XML布局下⾯是Hello World应⽤程序的main.xml⽂件的代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=android:orientation="vertical"android:layout_width="math_parent"android:layout_height="math_parent"><Textviewandroid:layout_width="math_parent"android:layout_height="math_content"android:text="@string/hello"/></LinearLayout>第⼀⾏是基本的XML样板,列出了版本和编码形式。

android系统架构及四大组件

android系统架构及四大组件

android系统架构及四大组件Android系统架构Android系统由5部分组成,分别为:应用程序层、应用程序框架层、函数库、Android运行时和Linux内核层。

Android应用程序层:该层包括android系统的核心应用程序:日历、地图、浏览器、通讯录、Email客户端等,都是用java语言编写。

Android开发人员开发的apk应用程序就是运行在该层上。

应用程序框架:应用程序框架提供了大量的API,这样的架构设计大大方便了开发人员,开发人员可以查阅其接口文档,使用其提供的各类组件。

应用程序可以通过接口在状态栏发布通知,访问位置信息、播放音视频等。

函数库:Android包含一套被不同组件所使用的C/C++库的集合。

一般来说,Android开发者不能调用这些库,但可以通过它上面的应用框架来调用这些函数库。

其核心库包括:系统C库、媒体库、Surface Manager、Lib Web Core、Free Type、SQLite等。

Android 运行时:包括Dalvik虚拟机和Android核心库集两部分。

Java语言核心库可以使用核心库提供的大部分功能。

在Dalvik虚拟机上运行的.dex文件需要通过DX工具生成,首先把编写的Java源文件经过Java编译器生成.class文件,之后使用DX工具生成.dex文件。

每个Android应用程序对应一个Dalvik虚拟机,这样做的好处是,一个应用程序崩溃时不会影响其他应用程序。

Linux内核:Android系统建立在Linux内核之上,例如Android6.0就是基于Linux3.18内核的。

进程管理、内存管理、驱动模型、网络协议栈和安全性等都是基于Linux内核提供的。

Android四大组件Android基本四大组件包括:Activity、Service、BroadcastReceiver、ContentProvider。

Activity组件:Android中最常见的组件就是Activity。

Android应用开发基础知识

Android应用开发基础知识

Android应用开发基础知识Android应用开发是目前非常热门的行业,随着智能手机和平板电脑的普及,越来越多的人开始关注和学习这方面的技术。

本文将向大家介绍Android应用开发的基础知识,包括开发环境搭建、应用结构、常用组件和布局等。

一、开发环境搭建1. 下载和安装Java开发工具包(JDK):在Oracle官网上下载适用于你的操作系统的JDK安装包,然后按照安装向导进行安装。

2. 下载和安装Android Studio:Android Studio是Google官方推出的Android应用开发集成开发环境(IDE),可以在Android开发中进行代码编写、调试和模拟器运行等操作。

3. 配置Android开发环境:打开Android Studio,选择“配置”-> “SDK Manager”,下载所需的SDK版本和工具。

二、应用结构1. Activity:Activity是Android应用程序的基本组成部分,是用户与应用程序进行交互的界面。

每一个活动都是一个独立的组件,通过继承自Activity类实现。

2. Service:Service是一种在后台运行的组件,用于执行长时间运行的操作而不是与用户进行交互。

Service在不显示界面的情况下运行,例如后台音乐播放或下载文件等。

3. BroadcaseReceiver:BroadcaseReceiver是一种监听系统事件的组件。

当指定的事件发生时,BroadcastReceiver会接收到系统的广播消息并执行相应的代码。

4. Content Provider:Content Provider是一种用于访问和共享数据的组件,可以允许应用程序将数据共享给其他应用程序,例如联系人、短信等。

5. Intent:Intent是一种用于在不同组件之间传递数据的对象。

通过Intent可以启动其他Activity、Service和广播接收器,并且可以携带数据进行传递。

Android平台下应用程序的四大构造体系

Android平台下应用程序的四大构造体系

Android平台下应用程序的四大构造体系今天我们进一步的对Android系统应用程序的基本架构进行一个详细了解。

理解了这些概念对于开发者来说能更有效的开发Android系统应用程序.对于一个Android应用程序来说,是由四种构造块组织而成的,这四种构造块如下:ActivityIntent ReceiverServiceContent Provider但是,并不是每一个Android系统应用程序都需要这四种构造块,这不是必须的,某些时候,我们只需要这四种中的几种组合成我们的应用。

当我们明确了我们的应用需要哪些构造块后,我们就需要在AndroidManifest.xml中登记这些构造块的清单。

这是一个XML配置文件,这个配置文件用于定义我们的应用程序的组件、组件的功能及必要条件等。

这个配置文件是每个Android应用必需的。

对于AndroidMainfest.xml的Schema,参考SDK包附带的文档。

以下,我们对四种构造块做一些说明:一、Content ProviderAndroid系统应用程序能够将它们的数据保存到文件中、SQL数据库中,甚至是任何有效的设备中。

当你想将你的应用数据与其它的应用共享时,Content Provider将会很有用。

一个Content Provider类实现了一组标准的方法,从而能够让其它的应用保存或读取此Content Provider处理的各种数据类型。

二、ActivityActivity是Android系统应用程序中构造块中最基本的一种,在应用中,一个activity通常就是一个单独的屏幕。

每一个activity都被实现为一个独立的类,并且继承于Activity这个基类。

这个activity类将会显示由几个Views控件组成的用户接口,并对事件做出响应。

大部份的应用都会包含多个的屏幕。

例如,一个短消息应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

不同的应用对于界面结构的需求是不同的。

例如:
像计算器和相机应用,构建在⼀个主要的 Activity 上,这个单⼀的 Activity 处理各种操作
像拨号应用,主要的是在⼏个不同的 Activity 中切换,没有很复杂的导航
像 Gmail 和 Google 市场,包括了多个数据视图和复杂的浏览方式
您应用的结构主要由内容和展示给用户的功能决定。

基本结构 - General Structure
典型的 Android 应用由顶层视图和详细信息/编辑视图组成。

如果显示的东西非常多或者步骤复杂,使用分类目录连接顶层和详细信息。

顶层视图
也就是您应用中⼏个操作栏标签的顶层视图。

这些视图可以是对于相同数据的不同展示方式,也可以代表您应用中的不同功能。

分类目录视图
分类目录可以进⼀步显示数据。

详细信息/编辑视图
在详细信息/编辑视图中,用户将看到全部数据或者进行编辑。

顶层 - Top Level
您应用的主页设计需要仔细推敲。

它是⼈们每次启动应用时都会看到的界面,所以应当考虑到新用户和老用户。

考虑⼀下: “哥的用户最想看到的是什么?”,根据这个来设计您的主页。

首先显示内容
许多应用的目的是展示内容。

不要使用只有分类导航的界面,而是直接将内容展示在您的主页上,让⼈们可以立即看到。

根据内容选择合适的布局,还要考虑屏幕尺⼨。

电⼦市场的主页上包括应用、音乐、图书、电影和游戏。

同时在界面上展示了丰富多彩的推荐和促销内容。

搜索按钮在操作栏的显著位置。

设计操作栏,用于导航和操作
你应用的每⼀个屏幕都要显示操作栏,这样能保持统⼀的浏览体验并且可以显示重要的操作。

对于顶层来说,操作栏的设计需要考虑以下特殊的要求:
显示您应用的图标或者标题。

如果顶层由多个视图组成,或者用户经常在不同的账户间切换,那么应当加⼊“视图切换菜单”,方便用户导航。

如果您应用的目的是编写内容,那么考虑从顶层就可以直接访问这些内容。

尽量在操作栏中提供搜索功能,搜索可以节省用户⼤量时间。

Email 应用关乎处理邮件的效率,所以⼀个结构明晰的高密度列表比较好。

导航栏上可以切换不同账户以及最近的目录。

副操作栏包含了编写新邮件和搜索按钮。

为您的应用设计⼀个标志性的界面
除了操作栏,设计⼀个标志性的界面也很重要。

您的应用通过精美的视图和独有的操作方式来展示其独特性。

特别是多媒体应用,应当设计⼀个漂亮的界面,而不是使用单调的列表 (list view)。

3D 旋转式的封面是 Google 音乐应用的独特界面。

默认显示最近播放的音乐,可以很好地满足用户的视听习惯。

分类目录 - Categories
由数据驱动的应用都是现在整理好的分类目录中浏览,之后再进⼊详细信息进行查看和管理。

可以通过扁平化您应用的深度,降低导航的难度。

虽然从顶层到详细信息视图的垂直步骤是根据您应用的内容而定的,但是仍然有⼏种方式可以简化认知的难度。

使用标签整合多个分类类别和数据视图
如果分类是相似的或者类别比较少的时候,这样做比较好。

因为使用标签可以减少⼀层的导航,并且使数据⼀直保持在用户关注的中心。

在丰富的内容中导航更像是⼀种随意的浏览而不是有明确目的导航。

如果分类之间是相似的、可预见的或者关系接近的,可以使用滚动标签 (scrolling tabs,不是所有的项目都直接显示出来)。

保证滚动标签中项目的数量不要太多,否则难以操作。

常见的规则是 5 到 7 个标签。

电⼦市场使用标签同时展示分类和内容。

需要在分类中导航时,用户可以在内容区域左右滑动。

如果分类的类别之间不是很接近,应当使用固定标签 (fixed tabs),这样就可以同时看到所有的分类。

YouTube 应用使用固定标签 (fixed tabs) 在不同的功能区域间切换。

允许穿过多个层级的操作
用快捷的方式使用户可以轻松地完成他们所要执行的操作。

为了能够控制顶层列表中的数据项,在数据项边上显示⼀个明显的指示,点击后显示下拉菜单。

这样使得⼈们不需要进⼊多个层级就可以直接执行操作。

音乐应用允许用户在分类视图 (专辑) 中直接操作数据项 (歌曲),这样就不需要进⼊歌曲详细信息视图,简化了操作。

同时对多个项目进行操作
尽管分类视图⼀般是给⼈们导航到详细信息用的,但是记住,提供⼀些操作可以直接控制多条数据也是有必要的。

例如,如果您允许用户在详细信息视图删除某个项目,那么您应当允许用户在分类视图中⼀次性删除多个项目。

仔细考虑
那些操作可以作用于多个项目,通过多选界面提供这些操作,让用户可以在分类视图中直接使用。

详细信息 - Details
详细信息视图让您显示和处理数据。

详细信息视图的布局根据需要显示的数据不同而不同。

布局
考虑⼀下⼈们在详细信息视图中的操作,并根据这个安排布局。

对于沉浸式内容,使用关灯模式 (lights-out mode) 使得用户可以不受打扰的全屏查看内容。

''Google 图书应用的详细信息视图想要复制阅读⼀本真是图书的体验。

翻页动画加强了这⼀效果。

为了达到沉浸式的效果,应用进⼊了关灯模式 (lights-out mode) 隐藏了所有的系统界面元素。

联系⼈应用的详细信息视图需要展示联系信息。

列表控件 (list view) 是快速查看电话号码、email 地址和其它联系信息的最佳选择。

分割项 (split items) 将拨号和发送信息排列在了同⼀行。

''
是详细信息视图之间导航的变得简单
如果用户经常顺序浏览多个项目,那么应当让他们在详细信息视图中直接做到。

考虑使用滑动视图 (swipe view) 或者其它替代方法实现这种操作。

Gmail 应用使用滑动视图 (swipe view) 在不同的详细信息之间导航。

相册应用除了通过滑动在图片之间导航,还提供了缩略图控件 (filmstrip control) 使得用户可以快速打开指定的图片。

清单 - Checklist
在主页上显示有用的信息。

使用操作栏提供统⼀的导航体验。

通过水平导航和快捷方式压缩导航层次。

通过多选使用户可以操作多条数据。

使用滑动视图 (swipe views) 在不同的详细信息视图中导航。

原文:/design/patterns/app-structure.html
手势 - Gestures <<上⼀篇 | 下⼀篇>> 导航 - Navigation
贡献者:
iceskysl aixin
©eoe移动开发者社区
本文链接: /page/App_Structure。

相关文档
最新文档