01.基礎知識

来源:https://www.cnblogs.com/CGWTQ/archive/2019/04/21/10745928.html
-Advertisement-
Play Games

1.1 屏幕 移動設備與PC設備最大的差異在於屏幕,這主要體現在屏幕尺寸和屏幕解析度兩個方面。 通常我們所指的屏幕尺寸,實際上指的是屏幕對角線的長度(一般用英寸來度量)如下圖所示 而解析度則一般用像素來度量 px,表示屏幕水平和垂直方向的像素數,例如1920*1080指的是屏幕垂直方向和水平方向分別 ...


1.1   屏幕

移動設備與PC設備最大的差異在於屏幕,這主要體現在屏幕尺寸和屏幕解析度兩個方面。

通常我們所指的屏幕尺寸,實際上指的是屏幕對角線的長度(一般用英寸來度量)如下圖所示

而解析度則一般用像素來度量 px,表示屏幕水平和垂直方向的像素數,例如1920*1080指的是屏幕垂直方向和水平方向分別有1920和1080個像素點而構成,如下圖所示

 

 

1.2   長度單位

在Web開發中可以使用px(像素)、em、pt(點)、in(英寸)、cm(釐米)做為長度單位,我們最常用px(像素)做為長度單位。

我們可以將上述的幾種長度單位劃分成相對長度單位和絕對長度單位。

如上圖所示,iPhone3G/S和iPhone4/S的屏幕尺寸都為3.5英寸(in)但是屏幕解析度卻分別為480*320px、960*480px,由此我們可以得出英寸是一個絕對長度單位,而像素是一個相對長度單位(像素並沒有固定的長度)。

 

1.3   像素密度

DPI(Dots Per Inch)是印刷行業中用來表示印表機每英寸可以噴的墨汁點數,電腦顯示設備從印表機中借鑒了DPI的概念,由於電腦顯示設備中的最小單位不是墨汁點而是像素,所以用PPI(Pixels Per Inch)值來表示屏幕每英寸的像素數量,我們將PPI、DPI都稱為像素密度,但PPI應用更廣泛,DPI在Android設備比較常見。

如下圖所示,利用 勾股定理 我們可以計算得出PPI

PPI值的越大說明單位尺寸里所能容納的像素數量就越多,所能展現畫面的品質也就越精細,反之就越粗糙。

Retina即視網膜屏幕,蘋果註冊的命名方式,意指具有較高PPI(大於320)的屏幕。

 

1.4   設備獨立像素

隨著技術發展,設備不斷更新,出現了不同PPI的屏幕共存的狀態(如iPhone3G/S為163PPI,iPhone4/S為326PPI),像素不再是統一的度量單位,這會造成同樣尺寸的圖像在不同PPI設備上的顯示大小不一樣。

如下圖,假設你設計了一個163*163的藍色方塊,在PPI為163的屏幕上,那這個方塊看起來正好就是1*1寸大小,在PPI為326的屏幕上,這個方塊看起來就只有0.5*0.5寸大小了。

做為用戶是不會關心這些細節的,他們只是希望在不同PPI的設備上看到的圖像內容差不多大小,所以這時我們需要一個新的單位,這個新的單位能夠保證圖像內容在不同的PPI設備看上去大小應該差不多,這就是獨立像素,在IOS設備上叫PT(Point),Android設備上叫DIP(Device independent Pixel)或DP。

舉例說明就是iPhone 3G(PPI為163)1dp = 1px,iPhone 4(PPI為326)1dp = 2px。

我們也不難發現,如果想要iPhone 3G/S和iPhone 4/S圖像內容顯示一致,可以把iPhone 4/S的尺寸放大一倍(它們是一個2倍(@2x)的關係),即在iPhone3G/S的上尺寸為44*44px,在iPhone4/S上為88*88px,我們要想實現這樣的結果可以設置44*44dp,這時在iPhone3G/S上代表44*44px,在iPhone4/S上代表88*88px,最終用可以看到的圖像差不多大小。

通過上面例子我們不難發現dp同px是有一個對應(比例)關係的,這個對應(比例)關係是操作系統確定並處理,目的是確保不同PPI屏幕所能顯示的圖像大小是一致的,通過window.devicePixelRatio可以獲得該比例值。

下圖展示了iPhone不同型號間dp和px的比例關係

從上圖我們得知dp(或pt)和px並不總是絕對的倍數關係(並不總能保證能夠整除),而是window.devicePixelRatio ~= 物理像素/獨立像素,然而這其中的細節我們不必關心,因為操作系統會自動幫我們處理好(保證1dp在不同的設備上看上去大小差不多)。

 

1.5   像素

1、物理像素指的是屏幕渲染圖像的最小單位,屬於屏幕的物理屬性,不可人為進行改變,其值大小決定了屏幕渲染圖像的品質,我們以上所討論的都指的是物理像素。

// 獲取屏幕的物理像素尺寸

window.screen.width;

window.screen.height;

// 部分移動設備下獲取會有錯誤,與移動開發無關,只需要瞭解

2、CSS像素,與設備無關像素,指的是通過CSS進行網頁佈局時用到的單位,其預設值(PC端)是和物理像素保持一致的(1個單位的CSS像素等於1個單位的物理像素),但是我們可通縮放來改變其大小。

我們通過調整瀏覽器的縮放比例可以直觀的理解CSS像素與物理像素之前的對應關係,如下圖所示:

 我們需要理解的是物理像素和CSS像素的一個關係,1個物理像素並不總是等於一個CSS像素,通過調整瀏覽器縮放比例,可以有以上3種情況。

 

遠程調試

 

   模擬調試

現代主流瀏覽器均支持移動開發模擬調試,通常按F12可以調起,其使用也比較簡單,可以幫我們方便快捷定位問題。

  真機調試

模擬調試可以滿足大部分的開發調試任務,但是由於移動設備種類繁多,環境也十分複雜,模擬調試容易出現差錯,所以真機調試變的非常必要。

有兩種方法可以實現真機調試:

1、將做好的網頁上傳至伺服器或者本地搭建伺服器,然後移動設備通過網路來訪問。(重點)

2、藉助第三方的調試工具,如weinre、debuggap、ghostlab(比較)等

真機調試必須保證移動設備同伺服器間的網路是相通的。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 修改APP:車來了 修改內容:首次啟動引導頁,中間的點素材修改、樣式修改 修改前:未選中為白色,選中為藍色,間距為5dip 修改後:未選中為紅色,選中為黑色,間距為0 前後截圖如下: 修改過程: 一、使用apktool反編譯apk apktool安裝根據官網進行:https://ibotpeache ...
  • 上篇對於UICollectionView預設選中cell採取的是每個cell分別對應一個標識,也就代表著廢除了UICollectionView的重用機制。對於較少的數據情況是可以的,但是對於數據比較大,就會造成性能問題。 於是思考在UICollectionView重用機制下,設置預設選中的cell, ...
  • iOS打包報錯信息如下:Sign in with the app-specific password you generated. If you forgot the app-specific password or need to create a new one, go to appleid.a ...
  • QCC3026是一款基於超低功耗架構的入門級快閃記憶體可編程藍牙音頻SoC,專為緊湊型功能優化的Qualcomm TrueWireless耳塞而設計。QCC3026旨在為我們的客戶提供有助於縮短開發時間並具有成本效益的解決方案。 QCC3026晶元特征:與QCC512x相同的低功耗性能針對Qualcomm ...
  • 預設關閉定位和GPS 修改位置 frameworks/base/packages/SettingsProvider/res/values/defaults.xml network,gps 修改為 預設省電 修改位置 com/android/settings/location/LocationSett ...
  • 驍龍700系列是高通公司的中高端晶元組系列,該系列包括10nm驍龍710和驍龍712 SoC;以及8nm驍龍730和驍龍730G SoC。最新消息顯示,高通公司正在開發一款新的7nm晶元組,將被稱為驍龍735。 據稱,驍龍735將採用跟驍龍855相同的7nm工藝,這意味著功率效率將高於之前8nm的驍 ...
  • 首先說一下項目背景,公司最近在做一個移動平臺APP的開發,貼向於游戲方向,用戶量也相對較大,加上項目中幾個功能排期比較趕,導致開發中出來了不少問題,主要問題就是APP運行過程中的奔潰、卡頓、異常等問題。之前老的定位手段效率很低,有的問題需要定位一兩天才能解決,確實影響了用戶體驗。後來在帖子上發現了幾 ...
  • 1. 小程式的優缺點優點:不需下載、卸載 使用方便缺點:嵌套在微信中,屬於微信的子應用2. 使用的技術實際上是Hybrid技術的應用Hybrid App (混合模式移動應用),使用網頁語言和程式語言共同開發小程式兼具了Native App所有優勢,也兼具了Web App使用Html5跨平臺開發低成本 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...