iOS 设备的屏幕尺寸、分辨率及其屏幕边长比例详细情况是怎样的?

根据屏幕尺寸和分辨率,ios现在数起来有6个版本。
一,3GS;二,4s为代表;三,iphone5;四,ipad2为代表;五,ipad4为代表;六,ipad mini。
只是分辨率不一样的情况,如一二或者四五相比,开发时提供两种分辨率就可以了,应用自动识别?
只是尺寸不一样的情况,如四六相比,开发时完全没有影响?
分辨率以及尺寸都不一样的情况,如二三相比,又如何?
------------------------------------------------------------------------------------------------------------------------------------------------
增加问题:
1.回头想想,其实ios平台,iphone5不是第一次大改分辨率了,ipad的出现就是新增了一个分辨率,而且比例都不一样。那ipad都已经支持,iphone5增加支持应该相对很简单吧。假如开发一个应用,支持所有的iphone以及ipad,是不是就是应用内需要同时提供 320 x 480点下、 320 x 568点下、 768 x 1136点下共三套方案,然后通过 [[UIScreen mainScreen] bounds] 获取到当前屏幕的基础分辨率来识别配对?
2.对于iphone来说,两次分辨率的改变都显得小心翼翼,一次成倍的提升,一次只是长度方向上的提升。看看android,即使是亲儿子,每一代出的分辨率都好像很随意,那对于开发者,是不是就可以说即使是针对谷歌亲儿子开发应用,都已经很崩溃?谷歌为啥连亲儿子都这样?
3.除了屏幕之外,其他的硬件对开发应用是不是也有影响,比如CPU。三星的同一代galaxy,CPU都有不同版本,对于应用会有什么影响?



iOS 设备现有的分辨率如下:

iPhone/iPod Touch
普通屏                         320像素 x 480像素       iPhone 1、3G、3GS,iPod Touch 1、2、3
3:2 Retina 屏           640像素 x 960像素       iPhone 4、4S,iPod Touch 4
16:9 Retina 屏         640像素 x 1136像素      iPhone 5,iPod Touch 5

iPad
普通屏         768像素 x 1024像素              iPad 1, iPad2,iPad mini
Retina屏     1536像素 x 2048像素            New iPad,iPad 4

问一 :只是分辨率不一样的情况,如一二或者四五相比,开发时提供两种分辨率就可以了,应用自动识别?
:在 iPhone 5 跟 iPod Touch 5 没出之前,对于开发者来说,一二就是分辨率不同的区别而已,因为他们都是3.5寸的屏幕。并且,你细心的话会注意到,一二他们的分辨率是成倍的关系。
这给 iOS 的设计和开发都提供了方便,界面设计只需要设计一套,然后进行等比例放大缩小即可。

为了方便开发人员开发,iOS 中统一使用点(Point)对界面元素的大小进行描述。
所以对于一跟二,只需把屏幕大小都当成   320 x 480点  进行开发即可,点跟像素的换算关系如下:
普屏       1点 = 1像素 
Retina屏 1点 = 2像素 
iPad 上的开发也是这样,只需根据  768 x 1136点  进行开发即可。

而在 iPhone 5 跟 iPod Touch 5 的机器上,对于开发者来说,它的界面大小就是  320 x 568点 ,你只需根据这个大小去调整你的界面(如果需要调整的话)。
比如:我有一个按钮,要放在屏幕中间的位置,那么在界面大小为 320 x 480点 的设备上,只需设置它的 center 为 (320/2, 480/2) 位置即可,在 3:2 Retina 屏上系统这个按钮也可以正确的显示在中间;
而在屏幕大小为 320 x 568点 的设备上,你就设置它的 center 为 (320/2, 568/2)。
直接通过   [[UIScreen mainScreen] bounds]  即可获取到当前屏幕的基础分辨率,所以不用 hard code。

问二 :只是尺寸不一样的情况,如四六相比,开发时完全没有影响?
:开发时只需要关注分辨率即可,iPad 2 跟 iPad mini 屏幕尺寸不同,但是分辨率一致,所以完全没有影响,在 iPad 2 上可正常跑的 app,在 iPad mini 上也可正常跑。

问三 :分辨率以及尺寸都不一样的情况,如二三相比,又如何?
:在 问一 中已经回答了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是使用Java语言、Appium和SauceLabs云平台,并通过屏幕分辨率编写iOS App返回上一页的脚本示例: ```java import io.appium.java_client.AppiumDriver; import io.appium.java_client.ios.IOSDriver; import org.openqa.selenium.Dimension; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.net.URL; public class IosAppTest { private AppiumDriver driver; @BeforeClass public void setup() throws Exception { // 设置SauceLabs云平台的配置信息 DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("username", "your-saucelabs-username"); capabilities.setCapability("accessKey", "your-saucelabs-accesskey"); capabilities.setCapability("appiumVersion", "1.20.2"); capabilities.setCapability("platformName", "iOS"); capabilities.setCapability("platformVersion", "14.5"); capabilities.setCapability("deviceName", "iPhone XS Simulator"); capabilities.setCapability("app", "sauce-storage:your-app-name.ipa"); // 替换为你的iOS App文件名 capabilities.setCapability("name", "iOS App Test"); // 创建AppiumDriver对象,连接SauceLabs云平台 driver = new IOSDriver(new URL("https://ondemand.saucelabs.com/wd/hub"), capabilities); } @Test public void testBackButton() { // 在这里执行进入下一页的操作 // 执行返回上一页的操作 Dimension size = driver.manage().window().getSize(); int startX = (int) (size.width * 0.05); int startY = (int) (size.height * 0.95); int endX = (int) (size.width * 0.95); int endY = (int) (size.height * 0.05); driver.swipe(startX, startY, endX, endY, 500); // 假设返回手势为从左上角向右下角滑动 // 验证返回上一页操作是否成功 Assert.assertTrue(driver.findElementByAccessibilityId("PreviousPageTitle").isDisplayed()); // 假设上一页的标题为"PreviousPageTitle" } @AfterClass public void teardown() { // 关闭AppiumDriver对象,断开与SauceLabs云平台的连接 driver.quit(); } } ``` 在这个示例中,我们仍然使用了SauceLabs云平台来运行iOS App自动化测试。在`testBackButton()`方法中,我们执行进入下一页的操作,然后执行返回上一页的操作。不同的是,我们没有找到页面中的返回按钮元素,而是通过屏幕分辨率来模拟返回手势。 具体实现是,我们首先获取窗口的大小,然后计算出起点和终点的坐标。在这个示例中,我们假设返回手势为从左上角向右下角滑动,起点坐标为窗口左上角的5%处,终点坐标为窗口右下角的5%处。最后,我们调用`swipe()`方法,模拟滑动操作。 最后,在`teardown()`方法中,我们关闭AppiumDriver对象,断开与SauceLabs云平台的连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值