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,然后封装成一系列的简单接口,实现了移动端的大部分功能。我们只要利用大厂提供的开发工具就可以快速开发。
特点:接口完善,规则简单,开发迅速
讲到这里,我想大家应该都有自己的选择了吧!
APP开发工具如何选?的更多相关文章
- App架构师实践指南二之App开发工具
App架构师实践指南二之App开发工具 1.Android Studio 2.编译调试---条件断点.右键单击断点,在弹出的窗口中输入Condition条件.---日志断点.右键单击断点,在弹 ...
- hybrid app开发工具
hybrid app开发工具 1.AppCan AppCan是国内Hybrid App混合模式开发的倡导者,AppCan应用引擎支持Hybrid App的开发和运行.并且着重解决了基于HTML5的移动 ...
- 最常用App开发工具更新总结
程序员都知道,App常用开发工具有Sublime Text 3.Webstorm.Eclipse和APICloud Studio等,那么这些开发工具在2016年又有什么重大更新呢? 1.APIClou ...
- HTML5来了:5个好用的混合式App开发工具
在残酷的移动互联网竞争环境下, HTML5技术一直受到各方关注,“HTML5颠覆原生 App”的争论也从未停止过,不管怎样HTML5生态的构建方兴未艾.不过对于移动开发者来说更关心的问题是如何低成本. ...
- 10个最佳的网站和App开发工具
这个世界充满了创新,开发的激情和决心是实现更高目标的关键因素.在网站开发中,毫无疑问,工具和可用的在线网页和 app 设计资源,发挥了重要的作用. 下面我们将带来一些网站和 app 的最佳工具. ...
- Office 365 - SharePoint 2013 Online之添加App开发工具Napa
1.新建一个网站集,模板选择开发人员模板,如下图: 2.确定以后,需要稍等一会儿; 3.点击网站内容,添加app,如下图: 4.进入SharePoint Store,选择Napa,如下图: 5.选择A ...
- App开发工具
软件下载: 链接:https://pan.baidu.com/s/1yaAko1svHW3v3kdn6mSgxQ提取码:rrcd 参考文档地址: http://dev.dcloud.net.cn/mu ...
- Office 365 - SharePoint 2013 Online之加入App开发工具Napa
1.新建一个站点集,模板选择开发者模板.例如以下图: 2.确定以后,须要稍等一会儿; 3.点击站点内容,加入app,例如以下图: 4.进入SharePoint Store.选择Napa.例如以下图: ...
- HTML5 Web app开发工具Kendo UI Web中如何绑定网格到远程数据
在前面的文章中对于Kendo UI中的Grid控件的一些基础的配置和使用做了一些介绍,本文来看看如何将Kendo UI 中的Grid网格控件绑定到远程数据. 众所周知Grid网格控件是用户界面的一个重 ...
随机推荐
- Just a Hook HDU - 1698Just a Hook HDU - 1698 线段树区间替换
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> us ...
- [CF1311E] Construct the Binary Tree - 构造
Solution 预处理出 \(i\) 个点组成的二叉树的最大答案和最小答案 递归做,由于只需要构造一种方案,我们让左子树大小能小就小,因此每次从小到大枚举左子树的点数并检验,如果检验通过就选定之 现 ...
- CMake 复制文件方法
我们经常会遇到将第三方库文件复制到项目运行时文件夹,或者将子项目生成的库文件复制到项目运行时文件夹的情况,本文介绍FILE-COPY.add_custom_command.ADD_CUSTOM_TAR ...
- linux 多并发 连接限制修改
1. 修改 ulimit -a 查看 open files 表示单个用户能打开的最大句柄 如果开发的高并发当个进程打开的句柄需要很大. 修改/etc/security/limits.conf 里面有 ...
- Pikachu-Sql Inject(SQL注入)
在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞.一个严重的SQL注入漏洞,可能会直接导致一家公司破产!SQL注入漏洞主要形成的原因 ...
- 构造并判断二叉搜索树-js
class Node { constructor (val) { this.val = val this.left = this.right = undefined } } class Tree { ...
- JAVA8List排序,(升序,倒序)
List<Integer> integerList = Arrays.asList(4, 5, 2, 3, 7, 9); List<Integer> collect = int ...
- Codeforces Round #612 (Div. 2) (A-D)
直 接看所有A后面连续P的个数最大值 #include<cstring> #include<cstdio> #include<set> #include<io ...
- PAT (Basic Level) Practice (中文)1037 在霍格沃茨找零钱 (20 分)
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.”现在,给定 ...
- C#使用OracleBulkCopy
首先使用PL/SQL 通过语句:select * from v$version; 查询出使用的oracle版本,弄到对应版本的Oracle.DataAccess.DLL 我本地使用版本为:11.2. ...