发布时间:2019-11-28 浏览次数:1899
作为APP开发产品经理,要对所负责产品的整体用户体验负责,产品的性能优化是很重要的一个环节,为了避免用户在使用产品过程中出现卡顿、加载缓慢、崩溃等性能问题,同时也为了在安排性能优化工作时做到心中有数,我们有必要加深一下对性能优化的理解。
WEB端性能优化
网页并不是单独存在的东西,它需要一个载体(浏览器),无论是pc端还是移动端。使用网页的一个基本流程:在浏览器输入网址、DNS解析(将输入的域名转换为IP地址)、下载html文件、下载css文件、下载js文件等等,当然这一切都是基于网络的,如果没有网络的话,网页也就不能使用了。
前端页面优化
加载优化
对于网页来说,加载过程是最为耗时的过程,可能会占到总耗时约80%的时间,因此作为优化的重点。
减少HTTP请求。每个请求建立连接也需要时间,dns解析也需要时间,所以做到尽量减少网络请求个数。可采用如下方案:合并CSS、JS。合并小图片,使用雪碧图(把每张小图标以.png格式文件的形式引用到页面上,使用雪碧图只需要引用一张图片,对内存和带宽更加友好)。使用iconfont或SVG代替小图片。
使用缓存(关于缓存,可查看浅析互联网中的缓存机制)。使用缓存可以减少向服务器的请求次数,节省加载时间,所以所有静态资源都要在服务器端设置缓存。使用缓存的方案:缓存一切可缓存的资源。使用外联式引用CSS、JS。
压缩HTML、CSS、JS。减少资源大小可以加快网页的显示速度,所以要对HTML、CSS、JS等进行代码压缩。
避免相互阻塞。CSS的代码放在页面的头部并使用Link方式引入,避免在HTML标签中写style样式,JS放在页面尾部。
使用首屏加载。首屏的快速显示,可以很大程度上提升用户对页面速度的感知,因此应尽量针对首屏的快速显示做优化。
按需加载。将不影响首屏的资源和当前屏幕资源不用的资源放到用户需要时才加载。可采用如下方案:延迟加载LazyLoad。 滚屏加载。注:按需加载会出现重绘制,会影响渲染的性能。
预加载。大型的重资源页面可使用提前加载下一页的方式加载页面。
图片优化。图片过大会影响页面的加载速度。优化方案:使用iconfont或SVG代替。webp优于jpg。PNG8优于gif。
减少Cookie。Cookie会影响页面的加载速度。
避免重定向(通过各种方法将各种网络请求重新定个方向转到其它位置)。重定向会影响加载速度,在服务器中应正确设置避免重定向。
代码优化
相关代码的一些优化,也会提升网页的性能。以下这些是我从开发哥哥那里得到的答案还有一些查询的资料,这一块的优化还需要多和开发哥哥沟通。
尽量避免写在HTML标签中写Style属性。
移除空的CSS代码。
合理使用display属性。
不滥用Web字体。
不声明过多的font-size,过多的font-size引发CSS的效率。
标准化各种浏览器前缀。
JS避免不必要的Dom操作。
尽量使用ID选择器,ID选择器是快的。
渲染优化
浏览器只有在确定了页面编码后才能正确的渲染页面,所以在绘制页面或执行任何的JS代码前,大部分的浏览器都会缓冲一定字节的数据来从中查找编码信息。所以需要做一些如下的优化:
减少Dom节点。Dom节点太多影响页面的渲染,应尽量减少Dom节点。
动画优化。
后端性能优化
在我们的网站越来越庞大之后,网站后端的系统架构应该逐步向高性能、高可用、高伸缩等特性进行完善,后端架构的完善对网站的性能也起着至关重要的作用。改善性能的一些方法如下:
应用、数据、文件分离。将应用程序、数据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置好不同的硬件。
添加代理服务器。当用户请求达到时首先访问代理服务器,代理服务器将缓存的数据返回给用户,如果没有缓存才会继续向应用服务器获取,这样降低了获取数据的成本。
部署CDN(内容分发网络)。将数据内容缓存到运营商的机房,用户访问时先从最近的运营商获取数据,这样大大减少了网络访问的路径。
使用集群改善应用服务器性能。业务服务器作为网站的入口,会承担大量的请求,往往通过业务服务器集群来共同分担请求数。集群也就是部署多台服务器。
数据库读写分离。 随着用户量的增加,数据库成为最大的瓶颈,改善数据库性能常用的手段是进行读写分离,读写分离就是将数据库分为读库和写库。
将业务服务器进行业务拆分。随着业务的扩展,应用程序会变得非常臃肿,这时我们需要将应用程序进行业务拆分。每个业务负责相对独立的业务运作。业务之间可以通过消息进行通信或者共享数据库。
使用分布式文件存储系统。用户量增加,产生的文件也会越来越多,单台的文件服务器已经不能满足需求,这时就需要分布式文件存储系统来进行支撑。
移动端性能优化
性能对于移动端的用户体验上更是尤其的重要,以下是针对移动端性能优化的总结内容。
启动速度优化
APP的启动会分为三中不同的状态:
冷启动。App没有启动过或App进程被killed, 系统中不存在该App进程。在这个过程中,屏幕会显示一个空白的窗口(颜色基于主题),直至首屏完全启动
热启动。热启动意味着你的App进程只是处于后台,系统只是将其从后台带到前台,展示给用户
温启动。介于冷启动和热启动之间。a用户back退出了App,然后又启动。b用户退出App后,系统可能由于内存原因将App杀死
由此可见,启动优化其实就是针对冷启动进行的优化。
UI布局优化
布局的优化遵循一个原则就是,尽量减少布局层级和复杂度,细节方面也是一些代码层级的优化。iOS与安卓端细节不同,此处就不做详细阐述了。
页面响应速度优化
避免“操作无响应”的情况。原则是:不在主线程里面做繁重的操作。
消除页面卡顿
用户感觉到的卡顿,主要来源于界面的刷新。而界面的性能主要是依赖于设备的UI渲染能力。如果我们的UI设计过于复杂,或是实现不够好,设备又不给力,界面就会像卡住了一样,给用户卡顿的感觉。消除页面的卡顿应该做到如下方面:
避免过于复杂的布局。
避免过度绘制(每屏每帧上,每个像素点应该只被绘制一次,如果有多次绘制就是过度绘制了)。
电量优化(针对于安卓设备)
对于用户来说,App的电量损耗是用户体验的一个方面,特别是当今人们对移动设备的依赖度越来越高的前提下,电量也是用户特别关注的一个点。从我们手机的电池详情统计可以简单看出,手机中最耗电的模块肯定是屏幕了,接着就是网络相关。对于电量方面的优化有以下几种:
优化网络请求。
监听手机充电状态。监听电池状态,可以将一些操作放在充电或是电量足够的情况下进行,例如用户数据同步,数据上传,下载更新包等。
及时关闭GPS,减少更新频率。GPS或网络可二选一,这样会降低电量损耗。
网络请求优化
App的网络连接对于用户来说,影响很多,直接影响用户对这个App的使用体验。其中较为重要的几点:
流量。流量是花钱买的,如果一个APP会浪费掉用户大量的流量,势必会严重影响用户体验
电量。电量现在对于用户体验来说也是重要的一环
用户等待。果App请求等待时间长,会给用户网络卡,应用反应慢的感觉,如果有替代品,我们的App很可能就会被用户无情舍弃。
以下方面可以优化网络请求:
减少网络数据获取的频次。
减少获取数据包的大小。
加入网络缓存与本地缓存。
打包网络请求。
数据压缩。
延时加载tab页面。
优化算法。
弱网测试与优化。
数据库优化
和WEB端一样,数据库方面的优化也会提升APP的使用性能。比如:
数据库重构。
查询语句的优化。
数据库分库。
服务器和客户端的交互优化
除了同WEB相似的服务器优化,在服务器与客户端交互方面可做如下优化:
客户端尽量少请求。
服务端尽量多做逻辑处理。
通信协议的优化。
以上就是关于WEB与移动端性能优化方面的小总结,性能优化大多数是需要开发公司来完成的,所以,好好善待开发公司吧!
APP软件开发是一个复杂的过程,需要开发团队有很强的专业知识和经验。然而,在开发过程中,开发团队往往会犯一些常见的错误。这些错误可能会影响软件的质量和用户体验,甚至会导致开发团队和客户之间的冲突。
在APP软件开发中,区块链技术也有着极为重要的应用价值。本文将探究区块链技术在APP软件开发中的应用价值,并深入剖析区块链技术在APP软件开发中的优势和挑战。
APP软件开发已成为市面上热门的行业之一。而APP软件开发的价格不但影响着开发行业的竞争,同时也影响着整个市场的价格。APP开发所需的各种技术细节,并不是大多数人所能理解的。
随着移动互联网的普及,App软件开发已成为一个重要的行业。但是,App开发在未来将面临着越来越多的挑战和变化。以下是App软件开发将会面临的一些挑战和变化。
随着移动互联网的普及,app开发变得越来越重要。作为中国的首都和全球热门的城市之一,重庆有许多企业在积极开展相关业务。但是,如何做好app开发?
GPT-4可以帮助app软件开发人员快速生成各种文本,如应用说明、使用指南等等,极大地提高了app软件开发的效率。另一方面,GPT-4可以通过对用户输入的语言进行分析,推荐出与用户意图相符的App,并通过自然语言生成的方式为用户提供更好的使用体验。
跨境电商APP开发涉及到跨境物流,就要包括物流的存储,转运,清关,关税,放行信息,并且保留和物流客服的沟通管道,跨境电商APP需要有文字转译功能。
人像分割与合成技术是计算机视觉领域的重要研究方向,已经在许多应用场景中得到了广泛的应用。人像分割与合成技术在app软件开发中的应用越来越广泛,可以帮助提高用户体验,增强产品竞争力。
新人在准备婚礼时,由于没有经验容易处处受阻。婚礼app开发支持服务预定、婚礼约请、新娘沙龙以及婚礼优惠服务,专业的营销参谋会提供1对1服务,提供婚庆计划,不同的计划供用户挑选。
app软件开发已经成为大连传统行业发展的必然趋势,也开始影响国民生活和工作的方方面面,而伴随着app软件的升级,大连app开发技术发生翻天覆地的变化。下面,就给大家介绍下大连app软件开发的核心要素。