移动开发_移动开发项目 - CSDN
精华内容
参与话题
  • 移动APP开发的三种技术对比

    千次阅读 2019-08-23 16:00:20
    目前来说主流的App开发方式有三种:Native App 、Web App、Hybird App。下面我们来分析一下这三种App开发方式的优劣对比: 一 :Native App 即 原生App开发 优点: (1)打造完美的用户体验 (2)性能稳定 (3)操作...

    目前来说主流的App开发方式有三种:Native App 、Web App、Hybird App。下面我们来分析一下这三种App开发方式的优劣对比:

    一 :Native App 即 原生App开发

    优点:

    (1)打造完美的用户体验

    (2)性能稳定

    (3)操作速度快,上手流畅

    (4)访问本地资源(通讯录,相册)

    (5)设计出色的动效,转场,

    (6)拥有系统级别的贴心通知或提醒

    (7)用户留存率高

    缺点:

    (1)分发成本高(不同平台有不同的开发语言和界面适配)(2)维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2, V3, V4版本,需要更多的开发人员维护之前的版本)(3)更新缓慢,根据不同平台,提交–审核–上线 等等不同的流程,需要经过的流程较复杂。

    从android、iOS智能手机开始出现就开发有的开发App的技术,性能体验是最优的,API比较完善,但是学习起来难度相对来说比较高,开发成本比较高(跟开发周期相对来说比较长也是有关系的)。

    二 :Web App 即 网页App开发

    1、特点(html css js)

    2、优势 (发版完全自控随时更新开发成本小时间快)3、劣势(性能差弱网络无网络条件下体验差)Web App其实就是写好的一套长得像App UI界面的能够自适应的网页加壳。本质套webview壳子打包成App,走的都是web页面(html css js),这种方式对于做过Web开发的开说非常轻松就可以做出一个属于自己的App,因为本身来说用的就是Web的东西,所以有非常好的跨平台的特性可以在任意平台运行,包括发版这方面web可以随时部署所以不需要发版,web页面嵌入webview开发起来速度非常快,一个人就可以轻松搞定,对有展示类需求的项目来说采用这种方式是最适合的,但是如果要实现的功能比较复杂的话就显得力不从心了。

    相比Native App,Web App体验中受限于网络环境和渲染性能。

    网络环境,渲染性能
    Web APP对网络环境的依赖性较大,因为Web APP中的H5页面,当用户使用时,去服务器请求显示页面。如果此时用户恰巧遇到网速慢,网络不稳定等其他环境时,用户请求页面的效率大打折扣,在用户使 用中会出现不流畅,断断续续的不良感受。同时,H5技术自身渲染性能较弱:对复杂的图形样式,多样的动效,自定义字体等的支持性不强。

    因此,基于网络环境和渲染性能的影响,在设计H5页面时,应注意以下几点:

    1.简化不重要的动画/动效

    2.简化复杂的图形文字样式

    3.减少页面渲染的频率和次数

    三 :Hybrid App 即 混合型App开发

    1、特点(native +js或其他语言)

    2、优势(相对体验好稳定性强动态性强成本相对低跨平台)3、劣势(对团队技术栈要求相对高性能优化)Hybrid App就是Native结合Web混合开发,Native+js代码 代表作是cordova前身是phonegap,现在移交给Apache,核心JsBridge,js调java,java调js。因为有原生做基础相对体验好接近原生,因为依赖原生API所以稳定性强。跟js相互通信并不是所有都用js,所有都依赖webview。采用原生模块和js模块,js模块可以随时发版,这也是这些大厂为什么选择这个技术的原因,手淘用的就是Hybird技术,其实它的优化难度不亚于原生,但是为什么选择Hybird去做呢,就是因为热发版。

    1、在未来一段时间内,很大程度上会形成以Hybrid形式为主的移动端开发方式。

    2、web App目前是无法取代原生App开发语言的。

    3、App开发的成本、时间周期、性能优化、体验优化、动态性等将成为多数App所关注的重点。

    展开全文
  • Android移动开发的几种方式

    万次阅读 2018-08-19 06:33:53
    1.Android App开发方式 1.1 Native App (原生开发) 1.2 Web App 1.3 Hybrid App (混合开发) 1.4 JavaScript解析为Native 1.4.1 React Native(RN开发) 1.4.2 Weex 1.4.3 原理 1.5 CrossApp(C++开发) ...

    目录

    1.Android App开发方式

    1.1 Native App (原生开发)

    1.2 Web App

    1.3 Hybrid App (混合开发)

    1.4 JavaScript解析为Native

    1.4.1 React Native(RN开发)

    1.4.2 Weex

    1.4.3 原理

    1.5 CrossApp(C++开发)

    1.5.1 Qt App

    1.5.2 CrossApp

    1.6 Google App Inventor

    1.7 Xamarin(C#开发)


    1.Android App开发方式

    1.1 Native App (原生开发)

    使用Java、C、C++进行开发App称之为Native App;

    1.2 Web App

    Web App就是使用前端技术(Html+CSS+JSS)开发的Web网站,然后转换工具转化成App,其实就是使用Android的浏览器(Webkit)访问Web网站;

    优点:
    开发成本低,周期短,兼容多平台,而且更新迭代只需修改服务器端,维护方便,如果只是作个人博客、宣传使用可以;

    缺点:

    用户体验性差,消息推送不及时,调用本地文件系统难,不能调用手机硬件;

    有名的框架:

    jQuery Mobile:是一个基于Html5的前端开发框架,主要创建移动Web应用应用于手机和智能电脑;

    Bootstrap:是Twitter推出的一个使用Html+JS+CSS的前端开发工具包;

    MUI:MUI是一套前端框架,由DCLOUD公司研发而成,MUI不依赖任何第三方JS库,MUI以iOS平台UI为基础,补充部分Android平台
                 特有的UI控件;

    1.3 Hybrid App (混合开发)

    HyBrid App是介于webapp和NativeApp之间,使用Native开发,并且使用WebView访问网站,兼容了NativeApp和WebApp的优点;

    主要使用Android WebView的相关可以参考:WebView详解

    ebView,PhoneGap、Apache Cordova

     1.PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台。

     2.salama:Salama ybrid SDK提供了一个JavaScript库,一个Native库;

    1.4 JavaScript解析为Native

    1.4.1 React Native(RN开发)

    React是Facebook开源的一个JavaScript库;

    React Native(简称RN)是Facebook开源的跨平台移动移动应用开发框架,是在React框架在移动开发的衍生物,目前支持iOS和Android;

    1.4.2 Weex

    Weex是阿里巴巴开源的一个基于Vue(JS框架)语法的移动应用开发框架,使用同一套代码可以在Android、iOS和web平台使用;

    官网:http://weex.apache.org/cn/guide/

    1.4.3 原理

    都是通过中间工具把js文件执行过程过程中的各种命令发送到Native端进行执行;

    React Native是使用React native bridge把通过React框架编写的编码发送到Native端进行执行;

    Weex是使用JS bundle把通过Vue框架编写的编码发送到Native端进行执行;

    Weex 表面上是一个客户端技术,但实际上它串联起了从本地开发、云端部署到分发的整个链路。开发者首先可在本地像编写 web 页面一样编写一个 app 的界面,然后通过命令行工具将之编译成一段 JavaScript 代码,生成一个 Weex 的 JS bundle;同时,开发者可以将生成的 JS bundle 部署至云端,然后通过网络请求或预下发的方式加载至用户的移动应用客户端;在移动应用客户端里,Weex SDK 会准备好一个 JavaScript 执行环境,并且在用户打开一个 Weex 页面时在这个执行环境中执行相应的 JS bundle,并将执行过程中产生的各种命令发送到 native 端进行界面渲染、数据存储、网络通信、调用设备功能及用户交互响应等功能;同时,如果用户希望使用浏览器访问这个界面,那么他可以在浏览器里打开一个相同的 web 页面,这个页面和移动应用使用相同的页面源代码,但被编译成适合Web展示的JS Bundle,通过浏览器里的 JavaScript 引擎及 Weex SDK 运行起来的。

    How it works

     

    1.5 CrossApp(C++开发)

    1.5.1 Qt App

    Qt:是一个跨平台C++图形用户界面应用程序开发框架;

    Qt App是Qt提供了 Qt for Mobile App Develop来使用C++开发手机App,所以跨平台在Windows、Android、iOS部署应用程序;

    1.5.2 CrossApp

    CrossApp是9秒社团的一款完全免费、开源、跨平台的移动应哟开发引擎,基于MIT开源协议,基于OpenGL ES 2.0,采用MVC框架模式;

    官方网站:http://crossapp.9miao.com/

    1.6 Google App Inventor

    Google App Inventor是Google推出一个直观的可视化编程环境,允许每个人 - 甚至是儿童 - 为智能手机和平板电脑构建功能齐全的应用程序。适合通过编码激发智力和创造力;

    官方网站:http://appinventor.mit.edu/explore/

    开发工具:http://ai2.appinventor.mit.edu/

    1.7 Xamarin(C#开发)

    Xamarin.Forms 是一个用C#语言开发跨平台应用的集成开发环境,允许开发人员有效创建可跨 iOS、Android、通用 Windows 平台应用共享的本机用户界面布局。

    展开全文
  • 移动开发技术有哪些?

    千次阅读 2019-06-10 10:16:35
    原生开发指的是纯原生应用程序(简称App)开发,是在Android、iOS等移动平台上利用官方提供的开发语言、开发类库以及开发工具等进行App开发。比如Android App就是指使用Java或Kotlin开发语言在Eclipse或Android ...

    原生开发技术

    什么是原生开发?

    原生开发指的是纯原生应用程序(简称App)开发,是在Android、iOS等移动平台上利用官方提供的开发语言、开发类库以及开发工具等进行App开发。比如Android App就是指使用Java或Kotlin开发语言在Eclipse或Android Studio的开发工具上直接调用Android SDK API开发的App;而iOS App就是指通过Objective-C或Swift开发语言在Xcode的开发工具上直接调用iOS SDK API开发的App。

    原生开发的优点和缺点有哪些?

    原生App开发代表着较好的用户体验和更快更高的性能,但是原生App的可移植性比较差,特别是一款原生App,Android和iOS都要各自开发,同样的逻辑、界面都要写两套。

    主要优点:

    • 可访问Android/iOS(平台) 提供的全部功能(如GPS、摄像头...);
    • 速度快、性能高以及可实现复杂动画及绘制和整体用户体验好。

    主要缺点:

    • 平台特定、开发成本高;不同平台必须维护不同代码,人力成本随之变大;
    • 内容固定,动态化弱;大多数情况下,有新功能更新、Bug修复完时只能重新发版,用户需将App重新下载升级。

    跨平台开发技术

    背景

    在移动互联网发展初期,业务场景并不复杂,原生开发还可以应对产品需求迭代。但近几年,随着物联网时代到来,移动互联网高歌猛进、日新月异,在很多业务场景中,传统的纯原生开发已经不能满足日益增长的业务需求。

    主要表现在:

    • 动态化内容需求增大,当需求发生变化时,纯原生应用需要通过版本升级来更新内容,但应用上架、审核是需要时间周期的,这对高速变化的互联网时代来说是很难接受的,因此对应用动态化(不发版也可以更新应用内容)的需求就变的迫在眉睫。
    • 业务需求变化快,开发成本变大,由于原生开发的代码一般都要Android、iOS两个开发团队进行维护,而且版本迭代时,无论人力成本还是测试成本都会变大。

    因此针对纯原生开发主要面临的动态化和开发成本这两个问题,诞生了一些跨平台的动态化框架。

    H5+原生混合开发

    这类框架主要原理是将App的一部分需要动态变动的内容通过H5来实现,使用原生平台的网页加载控件WebView(Android)或WKWebView(iOS)来加载。这样一来,H5部分是可以随时改变而不用发版的,而且能满足动态化需求,同时,由于H5代码只需要一次开发,就能在Android和iOS两个平台上运行,这也可以减少开发成本,也就是说H5部分功能越多,开发成本就越小,我们称这种H5+原生的开发模式为混合(Hybrid)开发,采用混合模式开发的App称之为混合应用或Hybrid App,如果一个App的大多数功能都是H5实现的话,我们称其为Web App。

    目前混合开发框架的典型代表有:淘宝、Cordova和Ionic以及微信小程序等,值得一提的是微信小程序目前是在WebView中渲染的,但将来有可能会采用原生渲染。

    混合开发技术点:JS代码与原生代码之间的通信

    综上所述,原生开发可以访问平台全部功能,但混合开发中,H5代码是运行在WebView中,而WebView实质上就是一个浏览器内核,其JavaScript依然运行在一个权限受限的沙箱中,所以对于大多数系统的访问能力都受到了限制,如无法访问文件系统、不能使用蓝牙等。所以,对于H5不能实现的功能,都需要原生去做。而混合框架一般都会在原生代码中预先实现一些JavaScript需要访问系统能力的API,然后暴露给WebView以供JavaScript调用,这样一来,WebView就成为了JavaScript与原生API之间通信的桥梁,主要负责JavaScript与原生之间传递调用消息,而消息的传递必须遵守一个标准的协议,它规定了消息的格式与含义,我们把依赖于WebView的,用于在JavaScript与原生之间通信并实现了某种消息传输协议的工具称之为WebView JavaScript Bridge(简称JsBridge),它也是混合开发框架的核心。

    示例:JavaScript调用原生API获取手机型号

    下面我们以Android为例,实现一个获取手机型号的原生API供JavaScript调用。在这个示例中将展示JavaScript调用原生API的流程,读者可以直观的感受一下调用流程。我们选用Github上开源的dsBridge(Android版iOS版)来进行通信。dsBridge是一个支持同步调用的跨平台的JsBridge,此示例中只使用其同步调用功能。

    1.首先在原生中实现获取手机型号的API

    class JSAPI{
      @JavascriptInterface
      public Object getPhoneModel(Object msg) {
        return Build.MODEL;
      }
    }
    复制代码

    2.将原生API通过WebView注册到JsBridge中

    import wendu.dsbridge.DWebView
    ...
    //DWebView继承自WebView,由dsBridge提供  
    DWebView dwebView= (DWebView) findViewById(R.id.dwebview);
    //注册原生API到JsBridge
    dwebView.addJavascriptObject(new JSAPI(), null);
    复制代码

    3.在JavaScript中调用原生API

    var dsBridge=require("dsbridge")
    //直接调用原生API `getPhoneModel`方法
    var model=dsBridge.call("getPhoneModel");
    //打印机型
    console.log(model);
    复制代码

    上面示例演示了JavaScript调用原生API的过程,同样的,一般来说优秀的JsBridge也支持原生调用JavaScript,dsBridge也是支持的,如果您感兴趣,可以去Github dsBridge(Android版iOS版)项目主页查看。

    总结

    混合应用的优点是动态内容是H5,新功能增加、Bug的修复完无需让App再次发版,Web技术栈、社区及资源丰富,缺点就是性能不好,对于复杂用户界面或动画,WebView不堪重任。

    JavaScript开发+原生渲染

    目前市面上流行的JavaScript开发+原生渲染的跨平台框架有快应用、WeexReact Native(简称RN)。

    由于RN和React原理相通,并且Flutter也是受React启发,很多思想也都是相通的,万丈高楼平地起,我们有必要深入了解一下React原理,React是一个响应式的Web框架,我么先了解两个重要的概念:DOM树与响应式编程。

    DOM树

    文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口,一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的标准接口。简单来说,DOM就是文档树,与用户界面控件树对应,在前端开发中通常指HTML对应的渲染树,但广义的DOM也可以指Android中的XML布局文件对应的控件树,而术语DOM操作就是指直接来操作渲染树(或控件树),因此,可以看到其实DOM树和控件树是等价的概念,只不过前者常用于Web开发中,而后者常用于原生开发中。

    响应式编程

    React中提出一个重要思想:状态改变则UI随之自动改变,而React框架本身就是响应用户状态改变的事件而执行重新构建用户界面的工作,这就是典型的响应式编程方式,下面我们总结一下React中响应式原理:

    • 开发者只需关注状态转移(数据),当状态发生变化,React框架会自动根据新的状态重新构建UI。
    • React框架在接收到用户状态改变通知后,会根据当前渲染树,结合最新的状态改变,通过Diff算法,计算出树中变化的部分,然后只更新变化的部分(DOM操作),从而避免整棵树重构,提高性能。

    值得注意的是,在上述第二步中,状态变化后React框架并不会立即去计算并渲染DOM树的变化部分,相反,React会在DOM的基础上建立一个抽象层,即虚拟DOM树,对数据和状态所做的任何改动,都会被自动且高效的同步到虚拟DOM中,最后再批量同步到真实DOM中,而不是每次改变都去操作一下DOM。为什么不能每次改变都直接去操作DOM树?这是因为在浏览器中每一次DOM操作都有可能引起浏览器的重绘或回流:

    • 如果DOM只是外观风格发生变化,如颜色变化,会导致浏览器重绘界面;
    • 如果DOM树的结构发生变化,如尺寸、布局以及节点隐藏等,会导致浏览器回流及重新排版布局。

    而浏览器的重绘和回流都是比较昂贵的操作,如果每一次改变都直接对DOM进行操作,这会带来性能问题,而批量操作只会触发一次DOM更新。

    JavaScript开发+原生渲染的跨平台框架

    RN

    RN是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架React在原生移动应用平台的衍生产物,目前支持iOS和Android两个平台。RN使用JavaScript语言,类似于HTML的JSX(即JavaScript XML——一种在React组建内部构建标签的类XML语法),以及CSS来开发移动应用,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。

    RN是React在原生移动应用平台的衍生产物,那两者主要的区别是什么呢?其实,主要的区别在于虚拟DOM映射的对象是什么?React中虚拟DOM最终会映射为浏览器DOM树,而RN中虚拟DOM会通过JavaScriptCore映射为原生控件树。

    1、JavaScriptCore是一个JavaScript解释器,它在RN中主要有两个作用:

    ①、为JavaScript提供运行环境;

    ②、是JavaScript与原生之间通信的桥梁,作用和JsBridge一样,事实上,在iOS中,很多JsBridge的实现都是基于JavaScriptCore。

    2、RN中通过JavaScriptCore将虚拟DOM映射为原生控件的过程分为两步:

    ①、布局消息传递,将虚拟DOM布局信息传递给原生;

    ②、原生根据布局信息通过对应的原生控件渲染控件树。

    至此,RN便实现了跨平台,相对于混合应用,因为RN是原生控件渲染,所以性能会比混合应用中的H5好很多,同时RN是Web开发技术栈,也只需维护一份代码,即可在多个平台上使用。

    Weex

    Weex是阿里巴巴于2016年发布的跨平台移动应用开发框架,思想及原理和RN类似,最大的不同是语法层面,RN只支持JSX语法,而Weex支持Vue语法和Rax语法,Rax的DSL语法是基于React JSX语法而创造的,与React不同,在Rax中JSX是必选的,它不支持通过其他方式创建组件,所以学习JSX是使用Rax的必要基础。

    快应用

    快应用是华为、小米和OPPO以及魅族等国内9大主流手机厂商共同制定的轻量级应用标准,目标直指小程序。它也是采用JavaScript语言开发,原生控件渲染,与RN和Weex相比主要有两点不同:

    • 快应用自身不支持Vue或React语法,其采用原生JavaScript开发,开发框架和微信小程序很像,值得一提的是小程序目前已经可以使用Vue语法开发(mpvue),从原理上来讲,Vue的语法也可以移植到快应用上。
    • RN和Weex的渲染/排版引擎是集成到框架中的,每一个App都需要打包一份,安装包体积较大;而快应用渲染/排版引擎是集成到ROM中的,应用中无需打包,安装包体积小,正因如此,快应用才能在保证性能的同时做到快速分发。

    总结

    JavaScript开发+原生渲染的方式主要优点如下:

    • 采用Web开发技术栈、社区庞大和上手快以及开发成本相对较低;
    • 原生渲染,性能相比H5提高很多;
    • 动态化较好,支持热更新。

    JavaScript开发+原生渲染的方式主要缺点如下:

    • 渲染时需要JavaScript和原生之间通信,在有些场景,如拖动可能会因为通信频繁导致卡顿;
    • JavaScript为脚本语言,执行时需要JIT(即时编译),执行效率和AOT(提前编译)代码仍有差距;
    • 由于渲染依赖原生控件,不同平台的控件需要单独维护,并且当系统更新时,社区控件可能会滞后;除此之外,其控件系统也会受到原生UI系统限制,例如,在Android中,手势冲突消歧规则是固定的,这在使用不同人写的控件嵌套时,手势冲突问题将会变得非常棘手。

    自绘UI+原生

    自绘UI+原生是一种跨平台技术,这种技术的思路是:通过在不同平台实现一个统一接口的渲染引擎来绘制UI,而不依赖系统原生控件,所以可以做到不同平台UI的一致性。注意,自绘引擎解决的是UI跨平台问题,如果涉及其他系统能力调用,依然要依赖原生开发。

    自绘UI+原生的优点如下:

    • 性能高;因为自绘引擎是直接调用系统API来绘制UI,所以性能和原生控件接近。
    • 灵活、组件库易维护以及UI外观保真度和一致性高;因为UI渲染不依赖原生控件,也就不需要根据不同平台的控件单独维护一套组件库,所以代码容易维护;由于组件库是同一套代码、同一个渲染引擎,所以在不同平台,组件显示外观可以做到高保真和高一致性;另外,由于不依赖原生控件,也就不会受原生布局系统的限制,这样布局系统会非常灵活。

    自绘UI+原生的缺点如下:

    • 动态性不足;因为为了保证UI绘制性能,自绘UI系统一般都会采用AOT(提前编译)模式编译其发布包,所以应用发布后,不能像Hybrid和RN那些使用JavaScript(JIT,即时编译)作为开发语言的框架那样动态下发代码。

    也许你已经猜到Flutter就属于这一类跨平台技术,没错,Flutter实现了一套自绘引擎,并拥有一套自己的UI布局系统。不过,自绘引擎的思路并不是什么新概念,Flutter也并不是第一个尝试这么做的,在它之前就有一个典型的代表——QT。

    QT

    QT是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者构建图形用户界面所需的所有功能。但是,QT虽然在PC端获得了巨大成功,备受社区追捧,然而其在移动端却表现不佳,在近几年,虽然偶尔能听到QT的声音,但一直很弱,无论QT本身技术如何、设计思想如何,但事实上终究是败了,究其原因,笔者认为主要有四:

    • QT移动开发社区太小,学习资料不足,生态不好;
    • 官方推广不利,支持不够;
    • 移动端发力较晚,市场已被其它动态化框架占领(Hybrid和RN);
    • 在移动开发中,C++开发和Web开发栈相比有着先天的劣势,直接结果就是QT开发效率太低。

    基于此四点,尽管QT是移动端开发跨平台自绘引擎的先驱,但却成为了烈士。

    Flutter

    Flutter是Google推出并开源的移动应用程序(App)开发框架,主打跨平台、高保真、高性能。其采用Dart语言作为开发语言,开发者可以通过Dart语言开发Flutter App,一套代码可同时运行在iOS和Android平台上。Flutter提供了丰富的组件、接口,开发者可以很快地为Flutter添加原生扩展。

    Flutter与其他用于构建App的大多数框架不同,因为Flutter既不使用WebView,也不使用平台(Android、iOS等)的原生控件。相反,Flutter使用自己的高性能渲染引擎来绘制Widget。这样不仅可以保证在Android和iOS平台上UI的一致性,而且也可以避免对原生控件依赖而带来的限制及高昂的维护成本。

    Flutter使用Skia作为其2D渲染引擎,Skia是Google的一个2D图形处理函数库,包含字型、坐标转换以及点阵图都有高效能且简洁的表现,Skia是跨平台的,并提供了非常友好的API,目前Google Chrome浏览器和Android均采用Skia作为其绘图引擎,值得一提的是,由于Android系统已经内置了Skia,所以Flutter在打包APK(Android应用安装包)时,不需要再将Skia打入APK中,但iOS系统并未内置Skia,所以构建iPA时,也必须将Skia一起打包,这也是为什么Flutter APP的Android应用安装包比iOS应用安装包小的主要原因。

    但是Flutter也有不足之处,不支持动态下发代码和热更新。

    请戳一戳了解更多Flutter

    本章总结

    本章主要介绍了目前移动开发中三种跨平台开发技术和原生开发技术,现在我们从框架角度对比一下三种跨平台开发技术:

    技术类型 UI渲染方式 性能 开发效率 动态化 框架代表
    H5+原生 WebView渲染 一般 ✔️ Cordova、Ionic
    JavaScript+原生渲染 原生控件渲染 ✔️ RN、Weex
    自绘UI+原生 调用系统API渲染 Flutter高,QT低 默认不支持 QT、Flutter

    上表中动态化主要指是否支持动态下发代码和是否支持热更新。值得注意的是Flutter的Release包默认是使用Dart AOT(提前编译)模式编译的,所以不支持动态化,但Dart还有JIT(即时编译)或snapshot运行方式,这些模式都是支持动态化的,后续会介绍。

    此文章整理于:book.flutterchina.club/

    展开全文
  • 什么是移动开发

    千次阅读 2014-04-16 10:29:35
    移动开发[1]也称为手机开发,或叫做移动互联网开发[2]。是指以手机、PDA、UMPC等便携终端为基础,进行相应的开发工作,由于这些随身设备基本都采用无线上网的方式,因此,业内也称作为无线开发。 移动应用开发是为...

    一、简介

    移动开发也称为手机开发,或叫做移动互联网开发。是指以手机、PDA、UMPC等便携终端为基础,进行相应的开发工作,由于这些随身设备基本都采用无线上网的方式,因此,业内也称作为无线开发。
    移动应用开发是为小型、无线计算设备编写软件的流程和程序的集合,像智能手机或者平板电脑。移动应用开发类似于Web应用开发,起源于更为传统的软件开发。但关键的不同在于移动应用通常利用一个具体移动设备提供的独特性能编写软件。例如,利用iPhone的加速器编写游戏应用。
    3G时代,手机为王
    3G时代的到来,使得手机应用日渐热门,由于手机携带方便,并且是生活必带随身用品,而且信号覆盖广,操作便捷,使得人们对其给予了越来越高的期望。大家期待各种常见的或是重要的信息化系统、互联网应用可以被移植到手机上同步使用,使用户无论在何时何地,都可以连线精彩的网络世界,登录信息系统。为此,如何进行手机开发,如何在手机上催生各种多姿多彩的精彩应用,日渐成为整个ICT产业关注的焦点。

    二、开发难题

    1、手机操作系统很多: Android ,Windows phone 7, Windows phone 8, iOS,Symbian S60, UIQ, Windows Mobile, Linux, Brew、 Blackberry……,要想克服不同手机平台的差异,实现应用的统一覆盖异常困难;

    2、手机开发很难:开发人员稀缺,成本太高,进度太慢,无线网络太复杂,门槛障碍太多……;

    3、软件或互联网公司如果为了实现移动应用,而把精力投入到并非自己所长的领域,无疑将会得不偿失。

    4、行业需要专业的角色,来解决开发应用过程中的各种难题,将复杂难题封装简单,把各种异构封装透明,降低大家进入这个市场的门槛。


    三、移动开发工具

    PhoneGap
    一个HTML5应用程序平台,可以让你编写本机应用程序与Web技术,并获得API和应用程序商店。

      Sencha Touch
    这是一个高性能的HTML5移动应用框架,用于iPhone,Android和黑莓。

      iOS/Android
    用于创建iOS和Android应用程序,起源C#和NET。

      Appcelerator
    混合动力汽车和移动Web应用程序从一个单一的代码库开发一个软件开发工具包(SDK)。

      Adobe AIR
      建立一个框架,以苹果iOS,谷歌Android,黑莓Tablet OS平台上运行的应用程序。
    ComponentOne
    在移动开发中,需要控件的支持,比如表格控件,label控件,textbox控件等等. 可以创建两种类型的移动控件,即移动用户控件和自定义移动控件。用户控件是使用 .ascx 文件创建的,且继承自 MobileUserControl。自定义移动控件是从System.Web.UI.MobileControls.MobileControl 继承的独立对象。通过创建 ASP. NET 移动用户控件和自定义移动控件. ComponentOne第三方控件为移动开发提供各种UI控件,比如数据显示、文本编辑、布局控制、导航操作等.

    展开全文
  • HTML5移动开发的10大移动APP开发框架

    万次阅读 2017-12-13 16:30:11
    今天给大家介绍10款有关HTML5移动开发APP开发框架,这几款框架都是比较优秀的移动 Web 开发框架,能够帮助开发者更加高效的开发移动Web应用。. 十款移动APP开发框架: 1.jquery mobile框架 2.bootstrap框架 3.ionic...
  • 移动开发十年

    2019-07-05 10:04:31
    内容简介 2017,顶着刘海的 ...回首过去十年,从诺记的 Symbian、摩托罗拉的 Linux、苹果的 iOS、微软的 Windows Phone、三星的 Tizen 到 Google 的 Android 等,移动操作系统也曾百花齐放,但经过十年厮杀各自...
  • 十大移动开发平台

    千次阅读 2018-12-28 19:51:35
    基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发;高效、稳定和可扩展的特点,适合复杂企业级应用的运行;跨平台、数据库和浏览器的架构,适应复杂的服务器和客户端...
  • 如何为移动开发选择技术栈?

    万次阅读 2019-07-21 18:08:01
    选择合适的技术栈是移动开发领域最关键的决策之一。你选择的技术栈将为你开发的移动应用提供基本的功能、可拓展和维护性。选择技术栈时应该注意项目的类型、预期投入市场的时间和创意的可行性。 原则上来说,选择何...
  • 很难说,因为Java、object-C在原生开发界已大行其道这么多年,C#这么多年固步自封,很难说在移动开发领域能重新有所建树。   目前国内有一个基于VB/C#的APP开发平台,叫Smobiler,它主打的就是.Net移动开发,使用...
  • CSDN博客第二期最佳移动开发博主评选

    万次阅读 多人点赞 2013-05-30 14:39:56
    CSDN博客第一期移动开发排行榜圆满结束,恭喜所有上榜用户,为继续展示移动开发方向优秀博主,发掘潜力新星,为想了解移动开发方向的博客用户提供平台,CSDN博客第二期移动开发排行榜开始。我们将邀请CSDN博客频道...
  • Asp.net 移动开发

    千次阅读 2015-06-23 17:09:10
    Asp.net能进行移动开发移动开发是手机运用,而asp.net是网页开发,能合在一起吗?答案是能的,随着科技的发展,现在asp.net也能进行移动开发移动开发也称为手机开发,或叫做移动互联网开发。是指以手机、PDA...
  • 移动开发中一些bug及解决方案

    万次阅读 多人点赞 2015-02-15 12:36:54
    网页开发要面对各种各样的浏览器,让人很头疼,而移动开发中,你不但要面对浏览器,还要面对各种版本的手机,ios好一点,而安卓就五花八门了,你可能在开发中也被它们折磨过,或者正在被它们折磨,我在这里说几个我...
  • 今天给大家介绍10款有关HTML5移动开发APP开发框架,这几款框架都是比较优秀的移动 Web 开发框架,能够帮助开发者更加高效的开发移动Web应用。.  十款移动APP开发框架: 1.jquery mobile框架 2.bootstrap框架 3....
  • CSDN博客第一期移动开发排行榜

    万次阅读 热门讨论 2013-04-19 11:24:57
    为充分展示移动开发方向优秀博主,发掘潜力新星,为想更多了解移动开发方向的博客用户提供平台,CSDN博客频道推出“移动开发排行榜”活动,每月一期。我们将邀请CSDN博客频道活跃的资深专家参与评选。同时,获奖者有...
  • 移动开发 or web 前端?

    万次阅读 多人点赞 2016-09-28 13:37:09
    其实在微信小程序出来之前,就有不少同学问我关于 web 前端与移动开发的选择问题,只不过微信小程序出来了,微信的影响力不得不值得关注,这个问题就被放大了,所以,今天单独写篇文章来解答下你们的困惑。...
  • 一 摘要今天给大家介绍有关HTML5移动开发APP开发框架,这里主要给大家介绍10款移动APP开发框架,下一篇文章将给大家具体演示一下如何用这些框架来搭建一个移动APP应用. 十款移动APP开发框架:1.jquery mobile框架2....
  • HTML5来了,7个混合式移动开发框架

    万次阅读 2017-02-06 23:39:05
    在这个时间开始学习移动开发真是最好不过了,每个人应该都有一些移动应用的创意,而且你并不需要任何的原生应用编程经验,你只需要一些HTML的相关知识,懂一些CSS和JavaScript就够了。如果你总听别人说HTML5的移动...
  • 为继续活跃CSDN博客频道移动开发版块的技术氛围,CSDN博客频道携手图灵教育举办6月“移动开发之我见”主题征文活动。发博文谈谈你对移动开发的见解或畅想,即可参与活动,将有机会获赠最新IT类畅销图书!此次活动的...
  • 一、2019新版前端与移动开发学习路线图---每阶段可掌握的能力及各阶段覆盖的关键字 二、2019新版前端与移动开发学习路线图---学习大纲及各阶段知识点 三、2019新版前端与移动开发学习路线图--升级后新增...
  • 移动开发中“单位”的那些事儿

    千次阅读 2016-06-08 09:15:42
    关于移动开发中用到的各种单位以及移动web开发中viewport的相关介绍和应用~
1 2 3 4 5 ... 20
收藏数 756,174
精华内容 302,469
关键字:

移动开发