谈谈移动端的基础开发

517 阅读7分钟

这是我参与8月更文挑战的第29天,活动详情查看:8月更文挑战

前言

大家好哇,今天我们来谈谈移动端的基础开发,大神请绕道,因为本文基本摘自我刚入行时的笔记哦~

移动端开发现状

  • 移动web开发指的是需要适配移动设备的网页开发
  • 移动web开发与pc端web开发没有本质的区别,使用的还是HTML/CSS/JavaScript的技术
  • 移动web开发与pc端web开发的区别是什么?

移动端的浏览器与pc端不同:

pc端浏览器主要有: 谷歌浏览器、苹果浏览器、UC浏览器、QQ浏览器、欧朋浏览器、百度手机浏览器、360安全浏览器、搜狗浏览器、猎豹浏览器等。

国内的手机浏览器 都是根据webkit内核修改过来的,国内没有自主研发的内核,国内的操作系统也是基于Android系统修改的。

因此在移动端,css3属性只需要加webkit前缀即可。

移动端设备尺寸不一样(尺寸非常多,碎片化很严重)

移动端常见尺寸如下:

Android: 320*480 480*800  540*960 720*1280 1080*1920 2k屏 4k屏
iphpne:  640*960 640*1136 750*1334 1242*2208

移动端开发分类

  • 原生app(native app)
  • 混合app(Hybrid app)
  • web应用(webApp)

原生app(native app)

原生app是基于操作系统的开发,比如安卓,ios,windows phone,他们只能在各自的操作系统上运行。

优点:

  • 可以访问操作系统,获取更多的资源(gps,摄像头,传感器,麦克风等)
  • 速度快,性能高,用户体验好
  • 可以离线使用

缺点:

  • 开发成本高
  • 需要安装和更新,更新与发布需要审核。

Web App

Web应用使用H5C3开发页面,为浏览器设计的基于web的应用,可以在各种智能设备的手机浏览器上运行。不需要安装即可运行。

优点:

  • 支持设备广泛
  • 开发成本低(使用)
  • 可以随时上线与更新,无需审核

缺点:

  • 用户体验极度依赖网速
  • 要求联网
  • 无法获取手机的资源(gps, 传感器等)

混合app(Hybrid App)

Hybrid App是指介于web-app、native-app这两者之间的app,它虽然看上去是一个Native App,但只有一个UI WebView,里面访问的是一个Web App。(淘宝、京东、手机百度)

Hybird App说白了就是使用了Native app的壳,里面其实还是HTML5页面。

优点:

  • 开发成本和难度更低,兼容多个平台
  • 也可以访问手机的操作系统资源。
  • 更新维护更方便

缺点:

  • 用户体验相比原生app稍差。
  • 性能依赖于网速

总结:

三种开发各有优缺点,具体用什么需要根据实际情况而定,比如预算,app注重功能还是内容等。

移动开发分类.png

屏幕与分辨率

移动设备与PC设备最大的差异在于屏幕,这主要体现在屏幕尺寸和屏幕分辨率两个方面。

屏幕尺寸

通常我们所指的屏幕尺寸,实际上指的是屏幕对角线的长度(一般用英寸来度量)如下图所示

1英寸 = 2.54厘米

屏幕尺寸.png

屏幕分辨率

分辨率则一般用像素来度量,表示屏幕水平和垂直方向的像素数,例如1920*1080指的是屏幕垂直方向和水平方向分别有1920和1080个像素点而构成,如下图所示,相同尺寸下分辨率越高,越清晰。

屏幕分辨率.jpg

像素:指计算机显示设备中的最小单位,即一个像素点的大小。

像素是相对长度单位,在屏幕分辨率越高的设备,像素点越小,屏幕分辨率越低,像素点越大。

ppi对比.png

像素密度ppi(了解)

PPI(Pixels Per Inch)值来表示屏幕每英寸的像素数

利用 勾股定理 我们可以计算得出PPI

像素密度.jpg

PPI值的越大说明单位尺寸里所能容纳的像素数量就越多,所能展现画面的品质也就越精细,反之就越粗糙。

结论:当PPI 越大,展示的画质越精细。

设备独立像素

随着技术发展,设备不断更新,出现了不同PPI的屏幕共存的状态,给我们开发带来的问题

做为用户是不会关心这些细节的,他们只是希望在不同PPI的设备上看到的图像内容差不多大小,所以这时我们需要一个新的单位,这个新的单位能够保证图像内容在不同的PPI设备看上去大小应该差不多,这就是独立像素,也叫(设备无关像素),在IOS设备上叫PT,Android设备上叫DP,在css中,叫PX

获取设备的像素比

window.devicePixelRatio  // 物理像素与CSS像素的比值

2倍图与3倍图(重要)

在日常工作过程中,从UI那拿到的设计图通常都是640的设计图或者是750的设计图。

把更多的像素点压缩至一块屏幕里,从而达到更高的分辨率并提高屏幕显示的细腻程度。

2x.png

设备像素比devicePixelRatio:即像素的压缩比例

结论 :在移动端为了在高清屏手机上显示得更加细腻,通常会使用更大的图片,比如2倍图或者3倍图。

视口viewport(重要)

问题:一个电脑上的网站,在手机端访问,效果是什么样的?

1. 在手机端,html的大小都是980px,为什么?
这主要是历史原因导致的,因为在移动设备刚流行的时候,网站大多都是pc端的,pc端的页面宽度一般都比较大,
移动设备的宽度比较小,如果pc端页面直接在移动端显示的话,页面就会错乱。
为了解决这个问题,移动端html的大小直接就定死成了980px(因为早起的pc端网站版心就是980px居多)。

2. 视口
在pc端,html的大小默认是继承了浏览器的宽度,即浏览器多宽,html的大小就是多宽,
但是在移动端,多出来了一个视口的概念(乔布斯),视口说白了就是介于浏览器与html之间的一个东西,
视口的宽度默认定死了980px,因此html的宽度默认就是980px,视口的特点是能够根据设备的宽度进行缩放。

3. 视口设置。
对于现在的移动端页面来说,视口默认为980px肯定不合适,因为设备宽度不够的话,视口会进行缩放,导致页面展示效果不好看。

视口参数设置

//width 设置视口的宽度
//width=device-width   设置视口宽度为设备的宽度(常用)。

//initial-scale 设置初始缩放比例
//initial-scale=1.0  表示不缩放

//user-scalable 设置是否允许用户缩放
//user-scalable=no  不允许用户缩放

//maximum-scale  设置允许的最大缩放比例
//maximum-scale=1.0  可以不设置,因为都禁止用户缩放了。

//minimum-scale 设置允许最小缩放比
//minimum-scale=1.0  不设置,因为都禁用用户缩放了。

//标准写法:
//快捷键:  meta:vp + tab键
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0">

移动端调试问题

  • 模拟器调试
  • 真机调试:使用手机进行访问

手机设备五花八门,屏幕尺寸都大不一样,尤其是安卓端,给我们的页面预览带来了一些麻烦。在实际工作中,作为开发者不可能有足够的设备让我们去测试(除了测试部门 ),即便有,效率也特别的低,因此开发者一般都是通过浏览器的手机模拟器来模拟不同的设备。

后记

你好哇,我是南极大冰块,一个技术与颜值成正比的前端工程师,崇尚一针见血的搞定前端问题,希望我的博客有帮助到了你。

关注我,前端路途一起走。嘿哈~😛