安卓开发与html5开发,安卓 html5 开发

HTML5 移动开发未来可否取代 iOS 和安卓

大量新生移动设备的兴起,改变了互联网的未来。在技术的发展上,HTML5会取代App应用吗?或者说能够在多大程度上取代呢?在HTML5规范中,已经加入了相机、磁力罗盘、GPS信息的支持。很多新兴浏览器也已经开始支持这些新特性。能否用一个统一的HTML5来替代android和ios并行开发的双重成本呢?以下译自Michael Mahemoff的一篇文章,详细分析了HTML5能否取代Android和iOS应用程序。

成都创新互联公司是一家专业提供安阳企业网站建设,专注与成都做网站、成都网站建设、H5页面制作、小程序制作等业务。10年已为安阳众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

介绍

移动应用程序(App)和HTML5都是目前最火的技术,二者之间也有不少重叠之处。在移动设备浏览器里运行的html5的web页面,也可以重新打包成不同平台上运行的app。目前很多浏览器都有很好的跨平台支持,(译注:firefox居然可以在android中使用和windows下同样的浏览器内核),HTML5的web方案,对开发者来说更为方便。完成一次,即可多平台使用。但这确实可行吗?仍然有许多必要原因,使得开发者选择了app开发。很明显,很多人已经在这么做了。本文将详细分析两种方案的优劣。

功能丰富

正方:App里可以开发出更丰富的功能

我们把移动功能分成两类。程序本身和程序与系统的结合。比如android里,加入widget图标或者通知提醒之类的。App对这两者都没问题。不用多说,这是肯定的。

反方:APP是挺强,但Web也正在迎头跟进

确实很多原生app实现的功能是HTML5望尘莫及的。不管你的web做的再牛,如果停留在一个没有摄像头支持的沙盒中,很多场合还是玩不转。幸运的是,现在没有这样的沙盒限制了。如果你需要你的web照相片,可以做一个负责照像的app,再把你的web打包进这个应用里面。开源的PhoneGap框架是这么干的。这样widget,手机提醒也都没问题了。

但这种混合开发的问题在于,增加了复杂性,而且不象传统web那样可以直接在浏览器里运行。这个问题短时间内恐怕没辙。好在现在网络标准在不断的高速扩充,先进的浏览器也在一直跟进。Android 3.1已经支持camera了。iOS浏览器也支持WebSocket和设备方向检测了。

总得来说,移动设备在发展,而web也同样在快速变化。桌面浏览器本身,有5家主要浏览器开发商在改进现有标准,丰富新的功能。所以原生App在快速前进,同时,web也在缩小差距。

运行效率

正方:原生APP速度更快

原生APP没有瓶颈,而且可以直接调用GPU加速、使用多线程。

反方:现如今Web已经快多了,而且多数应用也用不着那么快。

这说法有点落伍了。Chrome发布之时带来的Javascript V8,给Web速度带来的飞跃。而现在,计算速度变得更快了:

图片处理引擎已经使用web加速。现在硬件加速也已经开始应用了。看看用上硬件加速的canvas(图表来源)

要开发3D游戏的就不用抬杠了,但对于平而来说,新闻、邮件、时间管理、社交网络,这些用Web都够用了。试试Steve Souders的手机性能测试工具。 另外,越来越多的框架结合WebGL,可以发挥OpenGL的优势了。比如ImpactJS,帮助开发JS游戏。

开发感受

正方:原生APP好写

原生APP使用强壮的程序语言(Java, Objective C, C++)。适合写复杂程序,经过历史验证,API丰富。在桌面环境可以方便的用模拟器测试。而Web程序的runtimes和乱七八糟的各路浏览器让人头大。

反方:一般都是Web更简单,特别是需要兼容不同设备的时候。

Web最初的功能只限于文档展示,而不是程序应用,貌似最近俩星期才有了JS。但有了JS后,web的世界马上就不一样了。更何况web不只是静止的,HTML5,CSS3,EcmaScript Harmony(谁知道这是什么?)都给开发者极大帮助。你是喜欢C++,java, JavaScript,那你的个人爱好,也是基于你已经攒下的代码。但是现在没人能否认JavaScript也和前者站在同一擂台上。

浏览器/runtime的互不兼容(碎片),反过来看做APP也是一样。用Java写了Android app,然后又要面对iOS的Objective C。如果能写一个程序,马上能在Android和iOS上运行,多省事啊。这咱还没提WebOS, BlackBerry,Windows Mobile呢。当然,这是理论上的。要是想让程序在每个平台都跑得很漂亮,得做不少调试和妥协。这对很多原生APP也是一样的。不同OS版本,不同的设备。。。

所谓的Web碎片化,一直都是如此。但好消息是现在已经有很多不错的解决办法。Modernizr库,用得好的话,可以帮你兼容一大批主流设备,不管是啥系统,哪个牌子的。看看我们2011年的Google IO演示。

用户体验

正方:原生APP更切合原有平台

操作感受的定义之一,就是用户希望在你的程序里,用与系统连贯统一的方式来操作。不同的平台,都有一些约定俗成的习惯。比如长按按钮会有啥反应。你不能指望用一套统一的HTML5 App去满足所有用户。

此外,整个平台的操作感受都由用平台自有的软件库协调。直接调用平台工具包就能直接免费获得完整支持。

反方:我们Web有自己的传统,你要特想做原有平台那种感觉的web,也一样能做出来

前面说了,Web开发的方式,是先做一个大体适合所有平台的版本,然后再针对不同平台不断改进。当这些改进主要是针对功能时,你可以选择几个你最关心的平台做优化。类似于浏览器检测。技术论坛里的悲催技术员们,经常抱怨这事。太多不同的浏览器版本了。不过如果你优先关注两三种主流平台,是值得为他们多花点时间做做优化。

web本来就有自己的操作感受。我们也可以说,不同的默认浏览器以及运行环境造就了独特的"Web感受"。从更广的角度看,这本身就是一种用户公认的方式。此外,还有很多成功的案例并不遵循移动设备的原生操作习惯,人家也成功了。想想你最喜欢的手机游戏的界面?很多更传统的app也是一样,比如Twitter客户端。

html5会取代原生的安卓开发吗

据我所知目前各大应用里面,纯 HTML5 开发整个界面的基本没有,大部分都是说,基本是原生界面,部分内容用 H5 的方式来展现,这个才是主流。

未来会是朝哪个方向发展呢?答案肯定还是朝原生的方向发展,因为现在用户对手机的交互越来越挑剔了,而 H5 的方式你很难做到非常流畅。即使是当前流行的混合开发技术,像 facebook 出现的 react native,它用 H5 写代码,但渲染出来的是原生界面,所以大家都是在追求流畅的交互和体验,如果将这个作为目标的话,作为iOS开发者以及原生系统的开发者,应该是需求越来越多的,纯 H5 开发的项目基本上已经没有了。

当然,我还是希望各位 iOS 开发者能够多接触一些 H5 的知识,在工作中多多少少还是会涉及一些混合开发的界面,如果你懂这些知识,会很大程度上帮助你。

如何利用html5开发android界面

H5开发安卓界面需要注意以下三点:

(上)包括Android设备多分辨率的问题,Android中构建HTML5应用程序基础

(中)包括Android与JS之间的互动,Android处理JS的警告对话框等,Android中的调试

(下)包括本地储存在Android中的应用,地理位置的应用,离线应用的构建

进入正题

● Android设备多分辨率的问题

Android浏览器默认预览模式浏览 会缩小页面 WebView中则会以原始大小显示

Android浏览器和WebView默认为mdpi。hdpi相当于mdpi的1.5倍 ldpi相当于0.75倍

三种解决方式:1 viewport属性 2 CSS控制 3 JS控制

1 viewport属性放在HTML的meta中

html代码:

span style="font-size: x-small;" head

titleExmaple/title

meta name=”viewport” content=”width=device-width,user-scalable=no”/

/head/span

meta中viewport的属性如下:

span style="font-size: x-small;" meta name="viewport"

content="

height = [pixel_value | device-height] ,

width = [pixel_value | device-width ] ,

initial-scale = float_value ,

minimum-scale = float_value ,

maximum-scale = float_value ,

user-scalable = [yes | no] ,

target-densitydpi = [dpi_value | device-dpi |

high-dpi | medium-dpi | low-dpi]

"

/

/span

2 CSS控制设备密度

为每种密度创建独立的样式表(注意其中的webkit-device-pixel-ratio 3个数值对应3种分辨率)

html代码:

link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.5)" href="hdpi.css" /

link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.0)" href="mdpi.css" /

link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 0.75)" href="ldpi.css" /

3 JS控制

Android浏览器和WebView支持查询当前设别密度的DOM特性

window.devicePixelRatio 同样值有3个(0.75,1,1.5对应3种分辨率)

JS中查询设备密度的方法

js代码:

if (window.devicePixelRatio == 1.5) {

alert("This is a high-density screen");

} else if (window.devicePixelRation == 0.75) {

alert("This is a low-density screen");

}

Android中构建HTML5应用

使用WebView控件 与其他控件的使用方法相同 在layout中使用一个WebView标签

WebView不包括导航栏,地址栏等完整浏览器功能,只用于显示一个网页。

安卓开发和html5都是开发的,我所了解到的是安卓主要用代码攻于后台,而h5负责网页页面的交互,也

有中间件类似于phonegap,可以完成你要的功能,操作数据库,本地文件,访问摄像头,访问各种传感器都没问题。

类似的中间件还有AppCan等等。

甚至你自己弄一个WebView,然后用java给这个webview中的js提供本地操作的接口,也可以实现的,这也就是中间件完成的功能。

另外,脚本语言怎么了,安卓的那一套XML布局,就是借鉴了HTML和CSS,微软的XAML也是HTML的变种。html+css+js是最完美的MVC思想的体现,CSS是创建UI最强大的语言。

最近炒得很火的hibrid混合开发,就是用的这种思想。很多UI特别复杂的功能,用NativeCode可能几千行代码,用webview+html,寥寥几百行就可以搞定。淘宝的很多手机应用就是webview搭载html实现的,只不过用户根本感觉不出来而已。

html5能代替IOS和安卓上的原生程序吗?

不可以;

1、html5是一种移动版网络网页编程的简称,iOS和安卓都是一种系统的代名词,它们的本质不相同;

2、html5展示是多元化的网页形式展现,iOS和安卓系统是单独的防护系统和安装系统的承载体,html5在移动端的安装需要iOS和安卓的支持;

3、html5的开发是一种建议办的网站页面,iOS和安卓开发是基于移动端系统引用的强大功能的支持软件;

4、html5的作用在于程序简便性,iOS和安卓系统代表的事系统运行的快慢和打开速度后占用空间大小的一种待命次。

h5开发和原生app开发以及web开发有什么区别呢?

一、开发方面

原生App

⊙ 每一种移动操作系统都需要独立的开发项目【点击查看APP开发的真正报价】

⊙ 每种平台都需要独立的开发语言。Java(Android), Objective-C(iOS)以及Visual C++(Windows Mobile)等等

⊙ 需要使用各自的软件开发包,开发工具以及各自的控件

移动Web App

⊙ 因为运行在移动设备的浏览器上,所以只需要一个开发项目

⊙ 这种应用可以使用HTML5,CSS3以及JavaScript以及服务器端语言来完成(PHP,Ruby on Rails,Python)

⊙ 这里可没有标准的SDK,基本任意选择别忘了有一些跨平台的开发工具,比如PhoneGap, Sencha Touch 2,APPcan以及Appcelerator Titanium等等。

二、能力方面

原生App

⊙ 能够与移动硬件设备的底层功能,比如个人信息,摄像头以及重力加速器等等

移动Web App

⊙ 只能使用有限的移动硬件设备功能。

三、获取方法

原生App

⊙ 直接下载到设备

⊙ 以独立的应用程序运行(并不需要浏览器)

⊙ 用户必须手动去下载并安装这些原生App

⊙ 有一些商店与卖场来帮助用户寻找你的App,目前app市场不计其数

移动Web App

⊙ 从移动设备上的浏览器访问

⊙ 不需要安装额外的软件

⊙ 软件更新只需要服务器就够了

⊙ 因为现在没有什么商品或卖场提供这种App,所以如何搜索这些移动Web App相当不简单。

四、版本控制

原生App

⊙ 用户可以自由地选择是否更新软件版本,所以会出现不同用户同时使用不同版本的情况

移动Web App

⊙ 所有的用户都是用同样的版本

五、优势

原生App

⊙ 比移动Web App运行快

⊙ 一些商店与卖场会帮助用户寻找原生App

⊙ 官方卖场的应用审核流程会保证让用户得到高质量以及安全的App

⊙ 官方会发布很多开发工具或者人工支持来帮助你的开发

移动Web App

⊙ 跨平台开发

⊙ 用户不需要去卖场来下载安装App

⊙ 任何时候都可以发布App,因为根本不需要官方卖场的审核

⊙ 如果你已经有了一个Web App,你可以使用 responsive web design来辅助改进

六、缺陷

原生App

⊙ 开发成本高,尤其是当需要多种移动设备来测试时

⊙ 因为是不同的开发语言,所以开发,维护成本也高

⊙ 因为用户使用的App版本不同,所以你维护起来很困难

⊙ 官方卖场审核流程复杂且慢,会严重影响你的发布进程

移动Web App

⊙ 无法使用很多移动硬件设备的独特功能

⊙ 要同时支持多种移动设备的浏览器让开发维护的成本也不低

⊙ 如果用户使用更多的新型浏览器,那问题就更不好处理了

⊙ 对于用户来说,这种App很难被用户发现。

想要了解更多有关APP开发的相关信息,推荐咨询猪八戒网。猪八戒网有千万服务商为企业、公共机构和个人提供定制化的解决方案,将创意、智慧、技能转化为商业价值和社会价值。2011年猪八戒网获得IDG投资并被评选为中国2011年度“最佳商业模式十强”企业;专业性值的信赖。


网站标题:安卓开发与html5开发,安卓 html5 开发
链接分享:http://csdahua.cn/article/dscoeps.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流