APP开发工具如何选?
随着技术的发展,在当前开发一款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,然后封装成一系列的简单接口,实现了移动端的大部分功能。我们只要利用大厂提供的开发工具就可以快速开发。
特点:接口完善,规则简单,开发迅速
讲到这里,我想大家应该都有自己的选择了吧!