记录一下——学校里的“华为杯”软件设计竞赛

因为这次比赛第一次接触做软件,但是19级不需要源代码,所以这次比赛可能。。。就学了个如何写文档(???)还了解了一些技术方面的内容

系统说明书的大致结构

但收获还是有的
首先是系统说明书的构写,虽然感觉很简单,但我也是在图书馆泡了好久学会的。。。
系统说明书结构
再就是了解了一些技术。

Android 平台

Android系统以Linux内核为基础,功能强大。智能手机市场占有率居高不下。Android系统价格便宜,但性能较高,存在很多优点:
(1)Android平台首先值得称赞的是它的开放性。Android区别于其他系统是因为它是开源的,它允许移动终端厂商获取Android系统源代码,根据自己的需求编写系统,这让大部分移动设备商选择它,这让Android系统积攒了大量用户。随着用户数量和应用程序种类的增多,Android平台迅速发展,在智能手机市场上占据重要地位。同时,因为平台的开放性,许多移动终端厂商推出了各式各样功能特色的产品,为用户提供了更加丰富的硬件选择。

(2)Android平台的兼容性更好。Android平台给厂商更加开放、自由的开发环境,厂商只要遵循Android系统制定的一些规范,软件开发就不会受到限制。减少了条条框框的约束,因此出现了许多更加新颖别具特色的软件。Android最初是只能使用Java语言进行程序开发的,其底层配备了Dalvik虚拟机,它与Java虚拟机的区别在于它没有使用jvm规范,Dalvik对Java来说减少了对CPU空间的占用,更少的占用空间意味着它可以运行更大的应用。使用Java开发能将应用与底层系统分离,写出来的程序可移植性和可修改性好。这使得只要安装了Android系统的设备就可以使用Android应用程序,而IOS应用只能用于苹果手机上,这体现了Android兼容性上的优势。

(3)Android系统可以使用Google应用。Android系统是谷歌公司提出的,Google应用比如地图,浏览器等都可以使用到Android系统上,成为连接用户和互联网的重要纽带。而Android平台可以无缝结合Google应用。

结构:
Android系统结构
(1)Linux内核层
Android系统是基于Linux内核的。
这一层为Android设备的各种硬件提供了底层的驱动如显示,音频,照相机,蓝牙,WIFI,电源管理等等,Android采用Linux的原因与Linux的特性有关,内核作为一个抽象层存在硬件和软件之间,具有强大的内存管理和进程管理功能,并且有基于权限的安全模式等等,这些优点让Android系统采用了Linux内核。

(2)Android库文件层
本层中有各种库文件,通过一些c/c++库来为Android提供主要的特性支持,如SQLite提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,WebKit库提供了浏览器内核的支持等等。本层还为应用程序提供了Android运行环境,Android库文件层中包含Dalvik虚拟机,Android程序在该虚拟机上运行。相对于Java虚拟机来说Dalvik是专门为移动设备定制的,针对内存和CPU性能上都有优化。本层与Linux内核层中内容所有应用程序都会用到。

(3)应用程序框架层
这一层主要提供了构建应用程序时可能用到的各种API,应用程序框架层可以说是一个应用程序的核心,是一个共同使用和遵守的约定,然后在这个约定上扩展,但程序保持主体结构的一致,其作用的是让程序保持在满足不同需求的同时不互相影响。应用框架层给应用开发者提供一个框架,所有的应用开发都必须遵守这个框架,同时可以扩展为了连接核心应用程序所需要的API框架。

(4)应用程序层
该层是用户界面上的应用,由于在Android上使用Java开发的程序效率较高,所以通常使用Java编写。应用程序开发者可以使用应用程序框架层的API来构建自己的程序,这充分体现了Android开发的巨大潜力。

————————————————————————————————————————————————————————

MySQL数据库

软件需要存储许多的信息,比如用户信息,资源信息等,在对比了各种数据库性能、成本及软件功能需求后,选用MySQL来存储数据信息。MySQL数据库除具有体积小、速度快、低使用成本的特点外,还具有以下特点:

(1)MySQL数据库是开源的。MySQL底层源代码是开放的,开放性的源代码可以让每个用户都可以根据自己的需要对底层代码进行修改,定制属于自己的数据库。

(2)MySQL数据库查询速度快。MySQL数据库是一种关系型数据库管理系统,它将数据保存在不同的表中,因此它的灵活性更强,速度更快,而且MySQL优化了SQL算法,因此有效的提高了查询速度。

(3)MySQL数据库能够作为一个库嵌入到软件中,支持多个操作系统例如:Linux、Windows、Mac OS等,并支持多种语言,例如:C语言、Java、PHP、Python等。

———————————————————————————————————————————————————————

MVP模式

选择分析架构模型时,首先考虑了现在服务器端最常用的开发架构模型:
MVC架构模型。 MVC架构把软件系统主要分为三部分:模型(Model)、视图(View)和控制器(Controller)。MVC架构模型有着把数据模型层和视图层完全解耦,并把视图层中的逻辑控制层分离出去的特点。但是由于Android系统的特性,控制层和视图层不能完全解耦。
因此,考虑使用具有松耦合、高重用特点的MVP架构模型。
MVP架构
MVP是由MVC模式进化而来的,改进了MVC中控制器过于臃肿的问题。MVP和MVC最大的不同就是使Model和View不直接交互,而是通过Presenter作为中间媒介。Model模型层负责提供数据,Presenter负责处理程序逻辑,View视图层通过定义好的接口与Presenter进行交互。MVP架构模型除了有松耦合、高重用的特点,还有以下优点:

(1)Model模型层和View视图层完全分离,想要改变界面显示可以做到只修改视图而不影响模型,同时随着业务的不断推进,随着需求不断改动,这时只需要改动相应的视图配置,而不是修改软件整体。

(2)提高了系统运行的效率。View视图层、Model模型层和Presenter层各自负责各自的事务,通过定义的接口来传递数据进行交互,降低了代码的耦合性,提高了系统的效率。

(3)从今后测试的角度来说,MVP架构使得测试人员可以对每一层独立测试,其他层的功能可以通过模拟来实现用户的操作。这也可以将后台的业务和前台的视图开发功能独立出来。

其他

想不出标题的内容一律叫“其他”。。。

设置界面原型的网站:墨刀
画用例图架构图的网站:ProcessOn
有很多矢量图标的网站:阿里巴巴矢量图标库

再做个小小的总结:B站有很多学习视频,但是更喜欢系统一些的学习,泡图书馆是个很好的选择。只是要先学会怎么找书。。。我也不知道之前我是怎么有耐心一个一个架子找的。。。总是感觉自己云里雾里地。。。

所以,继续加油哇~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值