随着技术的发展,在当前开发一款APP已经非常的简单和快速。特别是近些年,利用HTML5技术将APP的开发门槛进一步降低。各种开发工具和框架层出不穷,令人眼花缭乱。这么多的工具摆在眼前应该如何进行选择呢?要回答这个问题,我们需要先理一下APP开发的基础知识。

硬件层

顾名思义手机的所有零部件都属于硬件层,中心是CPU处理器,连接和控制着所有的部件工作。当然这里都一套工艺和驱动标准,用来规范各个厂家生产符合要求的配件产品。大家可以和电脑进行对比,工作原理也是差不多的。这里记住一个重要的东西,驱动标准


手机操作系统层

目前最流行的操作系统就是:安卓和ios。普通用户不可能直接对硬件层发出指令,一个重要的原因就在于指令非常复杂不方便。操作系统实际上是一套软件系统,由一系列的驱动程序和逻辑调用程序组成。通过这套软件用户就可以用简单的图形界面完成指令的执行。同时操作系统层提供一套功能API接口


APP

APP调用操作系统提供的API接口就可以执行指定的操作。对于开发人员来讲,直接调用操作系统提供的API进行开发同样是一件非常复杂和艰巨的任务,因为操作系统提供的API非常多,功能非常细。这个时候就该虚拟机登场了。学习过java和c#的同学应该都知道这个概念。虚拟机简单讲,就是一个运行环境,它连接着我们的程序和操作系统。我们的代码执行的过程中被对应的映射成调用操作系统的各个API接口,从而执行了我们的指令。java作为一款跨平台的语言,拥有几乎所有操作系统的虚拟机sdk。所以针对于安卓和ios,java同样有对应于它们的虚拟机。讲到现在,就离今天要讲的重点越来越近了。


1、原生态开发

正是由于java拥有手机操作系统的虚拟机,所以对应的我们可以通过java开发APP。其它语言进行开发也是类似,都是通过这种原理进行开发的。所以通过这种方式进行APP开发应该是最接近原生态,功能最全面的开发方式。

特点:适用于专业的APP开发和底层APP的开发。

缺点:学习成本高

2、HTML5+

我们知道HTML5是网页开发,把APP中的页面当成一个个网页,做一个封装,我们可以把它当成一个APP,这个应该不难理解。+ 加号的引入可以理解成一种扩展,因为在手机端,有很多手机独特的功能,例如定位、陀螺仪、相机等。除了一般的页面数据展示外,这些才是我们经常用的。所以这里的 + 号就是用来引入这些功能的。那么是如何引入的呢?借助上面讲到的java虚拟机sdk,W3C组织把一些常用的功能,大概32个功能封装成了一个plus对象,记住我这里说的是常用,不是所有。做app开发的同学对plus对象肯定不陌生,这就是为什么普通PC浏览器无法使用plus对象的原因,因为本身它就是为app操作系统服务的。所以使用这种方式做app开发的工具,在生成app文件的时候,必须把java虚拟机sdk打包进去,当然这个是工具的底层在做的事情,我们不用去管。例如我们常用的开发工具hbuilder。

特点:适用于简单的快速开发,甚至都不需要了解java语言。

缺点:不常用的功能无法实现

3、Native.js

HTML5+只是封装了常用的功能,还有大量的功能我们无法使用,这个时候Native登场了,Native提供了使用java原生态开发的app中的所有接口功能。但是这里需要提一句的是,这里的native并不是直接执行功能,而是需要交由java的jar包来执行。native提供一个接口的作用,具体的操作和执行还需要手动去写java包的调用,所以你必须对java原生态开发熟练才行,否则只能去copy代码了。

严格来讲,我是不怎么推荐,因为它处于不上不下的地位

4、小程序

微信小程序或者淘宝小程序开发。各个大厂实际是单独做了一个类似java虚拟机的sdk,然后封装成一系列的简单接口,实现了移动端的大部分功能。我们只要利用大厂提供的开发工具就可以快速开发。

特点:接口完善,规则简单,开发迅速

讲到这里,我想大家应该都有自己的选择了吧!

APP开发工具如何选?的更多相关文章

  1. App架构师实践指南二之App开发工具

    App架构师实践指南二之App开发工具     1.Android Studio 2.编译调试---条件断点.右键单击断点,在弹出的窗口中输入Condition条件.---日志断点.右键单击断点,在弹 ...

  2. hybrid app开发工具

    hybrid app开发工具 1.AppCan AppCan是国内Hybrid App混合模式开发的倡导者,AppCan应用引擎支持Hybrid App的开发和运行.并且着重解决了基于HTML5的移动 ...

  3. 最常用App开发工具更新总结

    程序员都知道,App常用开发工具有Sublime Text 3.Webstorm.Eclipse和APICloud Studio等,那么这些开发工具在2016年又有什么重大更新呢? 1.APIClou ...

  4. HTML5来了:5个好用的混合式App开发工具

    在残酷的移动互联网竞争环境下, HTML5技术一直受到各方关注,“HTML5颠覆原生 App”的争论也从未停止过,不管怎样HTML5生态的构建方兴未艾.不过对于移动开发者来说更关心的问题是如何低成本. ...

  5. 10个最佳的网站和App开发工具

    这个世界充满了创新,开发的激情和决心是实现更高目标的关键因素.在网站开发中,毫无疑问,工具和可用的在线网页和 app 设计资源,发挥了重要的作用. 下面我们将带来一些网站和 app 的最佳工具.   ...

  6. Office 365 - SharePoint 2013 Online之添加App开发工具Napa

    1.新建一个网站集,模板选择开发人员模板,如下图: 2.确定以后,需要稍等一会儿; 3.点击网站内容,添加app,如下图: 4.进入SharePoint Store,选择Napa,如下图: 5.选择A ...

  7. App开发工具

    软件下载: 链接:https://pan.baidu.com/s/1yaAko1svHW3v3kdn6mSgxQ提取码:rrcd 参考文档地址: http://dev.dcloud.net.cn/mu ...

  8. Office 365 - SharePoint 2013 Online之加入App开发工具Napa

    1.新建一个站点集,模板选择开发者模板.例如以下图: 2.确定以后,须要稍等一会儿; 3.点击站点内容,加入app,例如以下图: 4.进入SharePoint Store.选择Napa.例如以下图: ...

  9. HTML5 Web app开发工具Kendo UI Web中如何绑定网格到远程数据

    在前面的文章中对于Kendo UI中的Grid控件的一些基础的配置和使用做了一些介绍,本文来看看如何将Kendo UI 中的Grid网格控件绑定到远程数据. 众所周知Grid网格控件是用户界面的一个重 ...

随机推荐

  1. 【spring boot】SpringBoot初学(2.2)– SpEL表达式读取properties属性到Java对象

    前言 github: https://github.com/vergilyn/SpringBootDemo 代码位置:(注意测试方法在,test下的SpelValueApplicationTest.c ...

  2. [CF662C Binary Table][状压+FWT]

    CF662C Binary Table 一道 FWT 的板子-比较难想就是了 有一个 \(n\) 行 \(m\) 列的表格,每个元素都是 \(0/1\),每次操作可以选择一行或一列,把 \(0/1\) ...

  3. 【35】单层卷积网络(simple convolution)

    今天我们要讲的是如何构建卷积神经网络的卷积层,下面来看个例子.   上节课,我们已经讲了如何通过两个过滤器卷积处理一个三维图像,并输出两个不同的4×4矩阵.假设使用第一个过滤器进行卷积,得到第一个4× ...

  4. Python安装1 —— Python3.8的安装

    本文内容皆为作者原创,如需转载,请注明出处:https://www.cnblogs.com/xuexianqi/p/12377746.html 一:什么是Python解释器 解释器(英语:Interp ...

  5. 简单记账本APP开发二

    今天主要是进行了适配器的编写,数据库的创建以及对完善了业务逻辑,简单的APP到此已经通过测试可以使用.

  6. Milestone

    为什么开博客?     事情要从一只蝙蝠说起...       准备用博客做什么?     记录自己在开发中遇到的issue以及解决的思路:记录一些读书笔记以便温故:练习如何制造仪式感,ect.   ...

  7. Canvas如何绘制精美的图?

    一.Canvas的基本使用 首先在使用Canvas一般先在<body>中添加: <canvas id="></canvas> 然后使用Js进行获取canv ...

  8. python3包、模块、类、方法的认识

    包>>模块>>类>> 函数 包:就是一个目录,import time from+import导入包中的部分模块 直接到类 from budaoguan.common ...

  9. MySQL数据库优化(一)

    1.1.1. 慢查询日志当查询超过一定的时间没有返回结果的时候,才会记录到慢查询日志中.默认不开启.采样的时候手工开启.可以帮助我们找出执行慢的 SQL 语句查看慢 SQL 日志是否启用(on 表示启 ...

  10. 0级搭建类007-Ubuntu Desktop Linux安装 (18.04.2) 公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...