irpas技术客

移动应用分类_洛央虲

大大的周 3303

????????术语“移动应用”指一种自成一体的计算程序,被设计用于执行在移动设备上。如今,安卓和 iOS 操作系统累计构成了 超过 99% 的移动 OS 市场份额 。另外,移动互联网的使用在历史上首次超过了桌面的使用,使移动浏览和移动应用成为 最广泛传播的互联网应用程序 。 我们将使用“App” 作为通用术语,用于指在流行的移动操作系统上运行的任何应用程序。 ????????在基本意义上,App 要么直接运行在设计它们的平台上,要么运行在设备的移动浏览器上,或两者皆有。贯穿接下来的几个章节,我们将定义 App 在移动 App 分类中各自位置的特性,并讨论每个变体的差异。 原生 App ????????移动操作系统,包括安卓和 iOS ,附带一套软件开发套件( SDK ),用于开发仅运行于该操作系统的应用。这些应用程序被称为是其开发的系统的原生应用。当讨论一个 App ,一般假设它就是一个用标准编程语言为各自的操作系统而实现的原生 App ——iOS 上的 Objective-C 或者 Swift ,安卓上的 Java 或 Kotlin 。 ????????原生 App 天生就具有以最高级的可靠性来提供最快性能的能力。它们通常遵守平台指定的设计原则(例如: 安卓设计原则 ),与混合或网页 App 相比,这往往会产生更加一致的用户界面 ( UI )。由于它们与系统深度集成,原生 App 可以直接访问设备的几乎每个组件(摄像头、感应 器、硬件密钥存储等)。 ????????当我们讨论安卓原生 App 时存在一些歧义,因为该平台提供了两个开发套件 —— 安卓 SDK 和安卓 NDK。 SDK 是基于 Java 或者 Kotlin 编程语言的,是开发 App 的默认选项。 NDK (或者原生开发套件)是 C/C++ 的开发套件,用于开发可以直接访问较低级别 API (例如: OpenGL )的二进制库。这些库可以包含在使用 SDK 构建的普通 App 中。因此,我们说安卓原生 App (即用 SDK 构建的)可以拥有与 NDK 构建的原生代码。 ????????原生应用最明显的缺点就是它们只针对一种特定的平台。为安卓和 iOS 构建同样的 App ,一个人需要维护两套独立的代码库,或者常常引入复杂的开发工具来为两个平台移植一套代码(例如: Xamarin ) 网页 App ????????移动网页 App (或简称网页 App )是被设计为看起来像一个原生应用的网站。这些应用运行在设备的浏览器之上,通常用 HTML5 开发,更像是个现代的网页。启动图标的创建可能与访问原生应用的感觉相同,这些图标实际上就跟浏览器书签一样,简单地打开默认的网页浏览器来加载指定的网页。 ????????网页 App 在浏览器(即它们是 “ 沙盒 ” )的限制下运行,与设备的通用组件进行的集成很有限,相比于原生 App 来说会少一些性能。因为一个网页 App 通常面向多个平台,它们的 UI 不会遵循一些特定平台的设计原则。最大的优势是减少开发和维护与一个代码库相关的成本,并使开发者能够在不需要接触特定平台指定的 App 商店的情况下发布更新。例如:为一个网页 App 做一些 HTML 文件的跨平台更新是可行的,而对基于商店的 App 更新则需要付出更大的努力。 混合 App ????????混合 App 试图填补原生 App 和网页 App 之间的空白。一个混合 App 像原生 App 那样执行,但主 要的流程依赖网页技术,这意味着 App 的一部分在嵌入式的网页浏览器运行(通常叫 “Webview”)。因此,混合 App 继承了原生应用和网页应用的优点和缺点。 ????????一个网页到原生的抽象层使混合 App 能够访问到那些纯网页 App 无法访问的设备能力。根据开发所用的框架,一个代码库可以开发出面向多个不同平台的多个应用,其 UI 与 App 开发的原生平台十分相似。 ????????以下是一个开发混合 App 较流行的框架的不完全列表: Apache Cordova Framework 7 Ionic jQuery Mobile Google Flutter Native Script Onsen UI React Native Sencha Touch 渐进式网页应用 App ????????渐进式网页应用(PWA )像常见的网页一样加载,但是在许多地方不同于常见的网页 App 。例如:它可以离线工作,并能够访问设备的硬件,这通常是只对原生移动 App 有效的。 ????????PWA 结合了现代浏览器提供的不同的开放标准,用于提供丰富的移动端体验。一个网页 App 清单是一个简单的 JSON 文件,可以在 “ 安装 ” 后用来配置 App 的行为。 ????????PWA 可支持安卓和 iOS ,但不是所有的硬件功能都是可获取的。例如:iPhone X 或 ARKit 上的"推送通知"、用于增强现实的面部 ID 尚未在 iOS 上提供。PWA 的概述和在各个平台上的支持情况可以在 一篇来自 Maximiliano Firtman 的《Medium》文章 中找到。 移动测试指南涵盖了什么 ????????纵观本指南,我们将聚焦于占市场统治地位的安卓和 iOS 上的 App 。移动设备现在是运行这些平台最普遍的设备类型,然而,越来越多的同一类平台(特别是安卓)运行在其他设备上,比如智能手表、电视、车载导航、音频系统以及其他嵌入式系统。 ????????考虑到移动端 App 框架数量庞大,我们无法将其全面地覆盖。因此,我们只聚焦每个操作系统的原生应用。然而,当处理网页或者混合 App 的时候,同样的技术也是有用的。归根结底,无论框架,每个 App 都是基于原生组件。 参考文档: OWASP Mobile Security Testing Guide — OWASP-CHINA


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #移动应用分类 #如今安卓和 #iOS #操作系统累计构成了超过 #99的移动 #OS #市场份额