androidios对比度
A. Android与iOS 概念对比
Kotlin的 Map 相当于 Swift 的Dictionary
Kotlin的 lambda表达式相当于 Swift的Block
Android 的Adapter相当于iOS的 DataSource
setOnClickListener相当于设置targetAction的delegate
(不准确) Activity相当于UIWindow,Fragment相当于ViewController
wrap_content 相当于ScalToFit
layoutXML 相当于 Xib->
res/values/strings.xml 相当于iOS的NSLocalStrings
Tabbar ViewController / Bottom Navigation
TextView 相当于 UILable
Button 相当于 UIButton
EditText 相当于 UITextField
ProgressBar 相当于 UIProgress (菊花圈)+ UIProgress (进度条)
AlertDialog 相当于UIAlertView
text/Plain text 相当于UITextField
hint 相当于 placeholder
maxLines 相当于numberOfLines
design 相当于 Attributs inspector,负责标题等属性
blueprint 相当于 Size inspector,负责布局约束
Chain:相对布局 , 相当于 Item Relation Constraint
B. Android与iOS的区别
1、优先级别不同:iOS最先响应屏幕
当我们使用iOS或者是Android手机时,第一步就是滑屏解锁找到相应程序点击进入。而这个时候往往是所有操控开始的第一步骤,iOS系统产品就表现出来了流畅的一面,但Android产品却给人一种卡顿的现象,更别说后续深入玩游戏或者进行其它操控了。这是为什么?
其实这与两个系统的优先级有关,iOS对屏幕反应的优先级是最高的,它的响应顺序依次为Touch--Media--Service--Core架构,换句话说当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是Touch这个层级,然后才是媒体(Media),服务(Service)以及Core架构。而Android系统的优先级响应层级则是Application--Framework--Library--Kernal架构,和显示相关的图形图像处理这一部分属于Library,你可以看到到第三位才是它,当你触摸屏幕之后Android系统首先会激活应用,框架然后才是屏幕最后是核心架构。
可以看到优先级的不同导致了iOS产品以及Android手机在操控过程中的表现差异,当你滑动屏幕进行操控的时候,iOS系统会优先处理Touch层级,而Android系统则是第三个才响应Library层级,这是造成它们流畅度不同的因素之一。不过优先级对系统流畅性有有影响不假,但并不是最绝对的,造成两系统之间流畅性不一的现象还有其它因素。
2、硬件工作配置不同:iOS基于GPU加速
目前智能手机硬件装备竞赛当中,其实处理器等配置已经达到了一个瓶颈期,各大旗舰产品在硬件比拼当中基本上没有太大的区别,而这时候GPU就成为了一个凸显差异的重要因素。一些大型软件像是3D游戏对GPU性能要求都会比较高,苹果iPhone产品采用的Power VR SGX系列GPU在当下来说非常的主流,跑分测试数据证明了它并不会比一些旗舰级别的Android产品差劲。
而iOS系统对图形的各种特效处理基本上正好都是基于GPU硬件进行加速的,它可以不用完全借助CPU或者程序本身,而是通过GPU进行渲染以达到更流畅的操控表现。但是Android系统产品则并非如此,因为Android需要适应不同的手机硬件,需要满足各种差异配置,所以很多图形特效大多都要靠程序本身进行加速和渲染,并严重依赖CPU运算的操作自然会加大处理器的负荷,从而出现卡顿的问题。虽然Android 4.0以及4.1等更高版本中进行了改进将硬件加速设为默认开启,但依旧无法做到所有特效全部都靠GPU进行加速。在很多Android手机里面都自带有;是否开启GPU渲染;这个功能选项,不过开启之后的改善也是微乎其微。
屏幕最先响应的优先级关系,再加上iSO本身GPU加速程序的特性,使得大家在操控过程中感觉iOS手机拥有着不错的流畅性。因为它本身的整个流程都是在为最大化的流畅做服务,不管是第一印象的滑动接触屏幕,还是你进一步使用程序之后的更深层操作都是如此。而GPU加速这点特性,应该是它优于Android系统流畅性的又一个因素。
3、开发机制不同:安卓机制效率低
Android的编程语言是JAVA,而iOS的则为Objective-C,不过要是说Android系统之所以有些卡顿是因为JAVA开发语言的关系,或者是拿它和Objective-C对比肯定会有人提出质疑。Objective-C的优势是效率高但比较;唯一;,而JAVA的优势则是跨平台不过运行效率相对偏低,其实这两个编程语言所带来的机制不同,就已经造成了各自系统之间的流畅性差异化。
iOS的Objective-C,编译器gcc,而这个gcc编译出来的代码又被苹果专为iOS架构优化到了极致,运行过程中也不需要虚拟机在中间插手,执行效率自然很高--引自网络。这一段话应该是iOS系统本身运行程序的执行过程,而Android是通过JAVA虚拟机来执行,并且系统需要占用大量内存来换取执行速度,再加上不定期的内存自动回收机制,从而直接导致了卡顿现象的出现。
Android的JAVA编程本身运行效率比Objective-C低一些,而且再加上内存自动回收的机制,所以造成了一些卡顿不流畅的现象出现。但根据技术人员讲解,现代的JAVA虚拟机效率已经不再是最大的瓶颈,Android 4.0系统版本之后的卡顿现象明显得到了改善,所以这也是有用户并没有发现自己新买的Android手机出现太多卡顿现象的.原因。看来编程语言和机制已经被Android进行了改善,这同样也不是造成它与iOS流畅性偏差的唯一因素,不过影响却是实实在在存在着。
4、系统设计不同:安卓APP无法统一
有了优先级的关系,有了GPU加加速的影响,还有两个系统各自编程以及机制的问题,似乎已经可以说明为什么iOS相比Android更为流畅的原因。但最终还有一个问题是就是应用程序,很显然用户觉得卡顿都是在运行软件的过程中产生,毕竟没有安装任何应用的初始出厂手机基本上都不存在不流畅或者延迟等现象,而且一款智能手机不安装任何应用程序那也不符合用户的购买初衷和使用行为。所以归根结底,Android相比iOS的应用程序,到底出了什么问题?
因为iOS产品的封闭性,所以所有的APP运行对象都比较单一,因为每个应用程序都是被运行在iPhone,iPad等iOS产品当中,它们有着很高的硬件利用效率。因为iOS系统的配件供应商只有那么几家,CPU也是一年换一次,这点不像Android终端年年变月月变,开发者很难遇见未来终端分辨率会包含多少种,GPU驱动会包含哪些等等,所以相对来说Android应用开发成本较高且收益较慢。而iOS应用开发则因为软硬件垂直整合而受益,这样一来苹果自然就保证了应用本身其与硬件产品之间的完美结合程度。
其实Android和iOS两大系统APP开发情况的不同,也正是它们开发和不开放的特性所造成的。如果要是拿旗舰Android手机加上一个专为这款旗舰产品设计的游戏,来和苹果iPhone 5运行对比的话,你真的不会遇到Android旗舰机出现卡顿延迟的问题,为什么因为这款游戏针对这款手机设计,在软硬等方面都达到了最大化的兼容和优化,自然就不会出现停滞的现象。
而Android系统程序要被安装在各种符合要求的手机上面,开发者也不可能针对所有的机器型号进行开发,只能在比较主流的机器上进行测试并保证运行效果,所以他们为了兼顾整个产品线只能不得不降低游戏体验以达到高中低产品可以共用的效果。最后那些占据了Android终端份额的大量大众用户们由于自己的手机不是旗舰产品而得不到流畅的使用体验,自然而然就会产生Android产品不如iOS流畅的抱怨。
C. 浅谈iOS与Android设计规范:6类交互设计规范对比
iOS和Android两个不同的平台,肯定是有很多区别的,下面就从交互的角度,谈谈区别。
以前就读过IOS和Android的规范,但是觉得没啥大用处,因为现在APP为了保持一致性,通常在IOS和Android上的设计是一样的,而且一些小公司只设计IOS的交互原型,因为只要IOS上能用,安卓上肯定没问题,前段时间,和一个人聊,问我它俩的区别,当时一脸懵逼,不知从何说起。毕竟是两个不同的平台,肯定是有很多区别的,下面就从交互的角度,谈谈区别。
一、全局导航
IOS:通常放在底部,方便用户点击
Android:通常放在上面,下面有物理按键,防止误操作。
解析:因为Android比IOS多了物理按键,为了防止误操作,所以只能将全局导航放在上面,但是随着屏幕越来越大,上面是手指无法触及的区域,所以切换起来相对成本较高。
二、二级导航
IOS:通常放返回、上一级标题、标题(居中),操作通常只有一个
Android:通常返回控件、logo、下拉菜单、重要操作、更多操作
解析:IOS显示了上一级的名称,让用户点击返回后,心里有预期,Android放了APP的logo,增加了品牌性,但是就使用来讲,用户不知道点击会回到哪,下拉菜单和更多操作都需要点击才能显示,增加了操作步骤。
三、工具栏
IOS:通常放在最下面,方便操作
Android:放在导航栏里,将重要操作放在外面,其他放在更多里。
解析:IOS将操作都放在底部,区域更大,操作更方便。Android将操作放在了顶部,显得很拥挤,并且还收起了一部分,需要用户查找,但是却节省了空间,让内容显示区更大。
四、提示框
IOS:出现在屏幕中间,可以带图标,可以不带,可以是静态的,也可以是动态的。
Android:不可以带图标,不能是动态的,最多只可以带一个操作按钮,最多只能出现一个提示,不能和低端的悬浮按钮重合。
解析:IOS的设计理念是尽量不打扰用户,只要用户能看见变化,轻易不会出现提示,只有一些用户无法感知时,才会出现提示框,所以可以是动态的,像调节音量。Android的提示要比IOS重一些,因为它可以带一个按钮。
五、警示框
IOS:标题和按钮是必须的,可以有内容和输入
Android:主要有四种:用途、内容、事件、表现。
1、用途包含了标题,内容和事件。
六、手势定义
IOS的手势规定有8种,如下:
解析:IOS只有8种手势,Android有14种,但是很多都不常用,个人感觉IOS的8种已经完全够用了,定义那么多种,用户的学习成本就会提高,而且Android的有些手势并没有定义可以做什么,所以给出这么多手势也没有用。
结语
本文对IOS和Android的规范进行了对比,Android的规范那是相当详细,但是IOS的只给出了设计原则,所以,一些是我自己总结的,可能对比的还不够全面,欢迎大家一起讨论。
D. Android与iOS:应用程序用户界面设计的差异和比较
移动领域的两大风向标--Android和iOS,也是移动应用设计时最大的两个竞争对手。Android与iOS在市场份额、受欢迎程度、使用人口统计方面数据不相上下,在这里,我们对比了Android和iOS之间的简单设计差异,这将帮助我们弄清一个与另一个有何不同。
由于碎片化的原因,安卓系统的应用设计会有细微的差异。
我们先来了解一下Android与iOS UI应用设计在扁平化设计和材质设计方面的对比。
人机界面指南主要基于三个原则。清晰、尊重和深度。简单来说,该方法支持极简主义,使用简洁的元素,注重排版和扁平化色彩。
简而言之,Android Material Design被认为是Flat设计的升级版,带有拟态性(一种流行的设计概念,即让所代表的物品与现实世界中的对应物相似)。
用Google设计副总裁 MatíasDuarte 的话来说,它是–
有了这些基础知识,让我们从7个方面研究两个平台之间的差异。
目录
1. 导航
2. 按钮
3. 图标和屏幕分辨率
4. 字体
5. 控件
6. 卡片
7. 警报
对于iOS应用程序,总是在“后退”按钮旁边提示上一个选项卡的名称。在中间,显示当前选项卡的名称,而在右上角则显示“编辑”或“完成”(控制按钮)。
说到Android的设计规则,应用程序通常在抽屉菜单或后退按钮(可选)之后的左上角显示标题。移至右上方,总是有一个操作项,例如搜索图标(也可以是多个,例如“收藏夹”图标),其后是溢出菜单。
在iOS中,主导航始终显示在底部,功能菜单专门用于存储一次性功能。而在Android中,通常会在功能菜单中看到主要导航,或者以搜索栏,浮动操作按钮等形式在整个界面中存在。
ios界面指南中,没有类似抽屉导航菜单的标准控件。iOS的全局导航被放置在应用屏幕的底部,一般位于最末位的 "更多"标签下找到二级导航。
Android中,二次导航是一个抽屉,一旦按下功能菜单图标,就会从左到右打开,同时产生一个深色的遮罩层。
有四种方法可以在iOS应用中实现“后退”操作:
在某些情况下,Android应用程序中给出了类似后退的操作,您可以通过该操作进入前一个标签。但是,最常见和最简单的方法是使用导航栏中的后退按钮(Android 10中现在是可选的)。
iOS和Android中的按钮风格最主要的设计区别在于,iOS中的按钮遵循扁平化的设计模式,不带阴影、支持标题大小写。Android遵循Material Design,带阴影且字母大写。
另一个比较重要的按钮是Floating action button(FAB行动呼吁按钮)。例如安卓系统中Gmail的compose按钮,iOS系统中社交媒体应用的新建文章按钮。
两种系统都使用8dp的网格来构建屏幕结构,而最常见的边框是16dp。
在开发移动应用程序时,以预定义的尺寸设计图标是非常关键的。这里有一个表,描述了所有的测量。
这些表格一开始可能会让人有点不知所措,但是如果你知道基本尺寸,并且能够使用倍数进行检查和导出,会发现这并不复杂。
多年来,苹果一直是Helvetica Neue字体的粉丝,然而在2015年,苹果开始使用San Francisco,它更节省空间,非常适合手机、台式机和iOS Watch使用。
Android系统,一直使用Roboto作为标准系统字体。在可预见的未来,谷歌也没有计划改变这一深受喜爱的元素。
控件设计包含搜索、CTA按钮、选择控件和标签等元素。每一个都满足了这样或那样的目的,让我们来看看他们的位置。
搜索功能对于两个平台来说都非常重要,苹果最近还在iMessage中加入了 "搜索栏 "。
在苹果中,搜索选项有两种类型--突出和隐藏。通常情况下,搜索图标会显示在上边的选项卡上,而有时需要从上到下拖动屏幕才能显示搜索栏。此外,如果要取消搜索查询,可以按 "取消",如果要清除,可以用 "X"。
在安卓系统中,没有隐藏的搜索栏,你总能在上层标签中找到一个。如果要取消搜索,只需点击"←"图标即可,如果要清除查询,则和iOS中的一样。
浮动的动作按钮(FAB)在Android中充当主要行动按钮,可以出现在顶部应用栏或一些组件的边缘。而iOS应用中的主要行动按钮总是出现在页面的右上角。
不过也有一些例外,少数iOS会在底部工具栏显示CTA,而Android则在上部工具栏显示。
如果需要显示一些选项,可以在iOS平台上使用选取器控件,选取器一般出现在底部。
对于在Android平台上显示很少的选项,通常使用一个出现在原地的下拉菜单,或者一个出现在中心的模态对话框,使用模态框时应用背景变暗。
据观察,iOS系统并没有一个视觉上类似于 "标签"的控件。它使用的是一个分段的按钮。Android使用了"扁平化设计的tab"来实现同样的效果。
卡片是图片、文字、视频的集合,还包括按钮和评论。
在iOS中,卡片的特点是无阴影、全宽、无圆角。而在安卓系统中,卡片的设计有阴影、沟槽、圆角等功能。
安卓系统的提醒采用的是扁平化的按钮样式,具体尺寸可以在材质设计指南中找到。操作按钮被放置在提醒的右下角。这些 "按钮 "完全以文字为主(全大写),让用户更容易理解。
至于iOS系统的提醒,则是用分割线隔开。它们基本采用句子或标题的形式,在独立的区块中呈现。它们被放置在弹出窗口的中心。
本文涵盖了iOS和Android所有的初步差异,希望对你有所帮助,而设计一个iOS或Android的移动应用,总是有迭代的准则,所以,一定要保持信息的更新,及时调整自己的产品设计。
Q. 为什么iOS和Android上的应用看起来不一样?
品牌和意识形态的不同,已经波及到他们的操作系统的运作方式。两个平台的UI设计已经成为品牌的符号化。
Q. 如何设计一个原生应用?
在设计原生应用时,必须始终遵守iOS UI应用设计指南和Material设计指南。这样才能使应用与它所要针对的平台同步。另外,这些平台有不同的要求,所以你的应用必须满足它们才能在应用商店上发布。
Q. iOS比Android更方便用户使用吗?
这个问题的答案是纯主观的。它是基于用户的个人偏好。有些人可能会觉得iOS更实用,而有些人则在各方面都偏爱Android。
E. android应用和ios的区别是什么
最大的区别是android应用是开源的,二者的区别如下:
1、两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。
2、两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。
3、IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。
iphone沙盒机制解释:应用程序位于文件系统的严格限制部分,程序不能直接访问其他应用程序。以杀毒软件中的沙盒技术解释一下。“沙盒”技术是发现可疑行为后让程序继续运行,当发现的确是病毒时才会终止。“沙盒”技术的实践运用流程是:让疑似病毒文件的可疑行为在虚拟的“沙盒”里充分表演,“沙盒”会记下它的每一个动作;当疑似病毒充分暴露了其病毒属性后,“沙盒”就会执行“回滚”机制:将病毒的痕迹和动作抹去,恢复系统到正常状态。
安卓虚拟机机制解释:android本身不是为触摸屏打造的,所以所有的应用都是运行在一个虚拟的环境中,由底层传输数据到虚拟机中,再由虚拟机传递给用户UI,任何程序都就可以轻松访问其他程序文件。
F. Android、iOS历史版本对比
本文按时间顺序,试着梳理Android和iOS诞生以来的各重要版本以及其特点,看看这两个系统各自的发展速度和重点。
划时代的iOS第一代发布,可以说最核心的智能手机应用在这个版本已经有了,包括地图、浏览器、itunes、全屏幕触摸操作,这也可以理解当第一代iphone出现时带给所有人的震撼。
2.0最重大的改变是开放了AppStore,可以开发和使用第三方应用了,这几乎是整个移动互联网生态的基石。
iOS2.0之后2个月,Android横空出世,全球第一台Android设备是HTC Dream。Android在1.0时基本也把完整的智能手机体验带给了广大用户,当然也包括了AndroidMarket。
各功能的优化,包括支持了早该有的文本剪切、复制、黏贴等功能
主要添加了对iPad的支持
显着的变化是支持了多任务,尽管并不同桌面系统中真正的多任务处理,但这是苹果理解的在移动设备上用户所需要的多任务。随着多任务支持,双击home键的效用由原来的截屏操作,变为显示最近运行的应用。
这是一个相当成熟的系统,导致一个很长的时间内国产机一直保持在这个系统版本上。
专为Android平板设计的操作系统,但却是个短命的版本,因为他不兼容phone
重点功能是增加了siri,虽然当时很惊艳,但现在基本是个鸡肋功能。
无明显亮点,槽点是把之前一直使用的GoogleMap换成了苹果自己的Map
各种功能的优化,虽然没有明显的亮点,但稳定性较高,很长一段时间国内Android系统的主流版本,甚至到4年后的今天,仍然占有了约5%的市场
加强了开放,给与开发者更多的框架接口,比如支持小插件,通知可自定义更多操作,支持第三方键盘,开放指纹识别等。
还是一些新特性,如iPhone 6s/6s plus支持3D-Touch等
-TensorFlow Lite
TensorFlow Lite是谷歌机器学习工具TensorFlow的精简版,新工具可帮助低功耗设备跟上当今高强度任务处理,利用新的神经网络API帮助底层芯片加速数据处理。
可以看出,从一开始两个平台的高歌猛进,版本频发(特别是Android系统,当初的版本真的是满天飞,记得还有个中移动定制的android版本),到现在基本上是一年一个版本。两个系统都从野蛮成长阶段过度到了平稳发展的阶段。
同时两个平台也显示出了高度的同质化,从拍照、音乐、App市场、地图之类的基本功能,到语音助手(siri、now)、支付的高阶功能,再到现如今的AI、AR等,两个系统虽然你追我赶,但基本还是保持了步调的一致。随着Android系统性能的不断优化,如今的Android高端机至少在系统层面已经不差iOS了。
可以预见,未来2个系统也注定会越来越像,无论是功能还是性能,甚至随着三星、华为、oppovivo、小米等厂商的发力,Android系统在某些细节层面肯定会超过iOS。细节+性价比,也许是用户从iOS转向Android的理由之一,而用户维持iOS的理由则是已经习惯了iOS的生态,怕做出改变。
无论如何,这两个系统恐怕还得长期共存,他们互相恐怕是无法打败对方的,更有可能的是一起被新出现的更高层次的系统打败,毫无还手之力的那种。