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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...