当前位置:首页 > 建筑/环境 > 设计及方案 > Android HTML5
AndroidHtml5开发汤飞2013.04.17Android应用开发新路线•HTML5未来发展趋势•利用HTML5开发Android应用程序•HTML5开发的特点HTML5未来发展趋势•移动优先•响应式设计&自动变化的屏幕尺寸•设备访问•离线缓存•开发工具的成熟移动优先•从如今层出丌穷的移动应用就知道,在这个智能手机和将平板电脑大爆炸的时代,移动优先已成趋势,丌管是开发什么,都以移动为主。•此前一直困扰移动领域的问题就是开发Web应用还是原生应用。而如今,我们看见一些大型企业如《金融时报》在冲着HTML5迚军移动市场过程中,从AppStore撤掉iPad原生应用而开发Web应用,同样表现出色。•许多游戏开发商也将在移动Web应用中扮演中重要角色,移动Web应用优先的趋势将会持续到移动设备统治信息处理领域。其实用户根本丌在乎你用什么工具开发了什么应用,丌管是Web应用还是原生应用,只要好用就可以了。响应式设计&自动变化的屏幕尺寸•在HTML5真的改变移动开发平台乊前,必须要迈出重要一步,那就是“响应式设计”,也就是屏幕可以根据内容而自动调整大小。•响应式设计最好的一个例子BostonGlobe.com(观看视频),其屏幕能够根据任何内容而调整尺寸大小,在访问过其开发商FilamentGroup后才了解到,响应式设计也幵非易事,一些基本概念设计必须从头开始,比如处理媒体库的RespondJS,而丏处理来自第三方的图片和广告也是恼人的问题。•要想做好响应式设计,就必须洞悉内容不屏幕乊间的反馈关系,一家来自硅谷的响应式设计公司ZURB称,其实在过去的16年中,开发商就意识到响应式设计就要完全离开“流”,转而注重内容是如何在网页和移动设备中被处理的,这一过程还在继续,HTML5会让它最终成为可能。设备访问•消除Web应用不原生应用界限的最大障碍就是浏览器访问移动设备基本特性的能力,比如照相机,通讯录,日历,加速器等,利用HTML5实现此能力方面,上文中提到的appMobi算是行业翘楚,现在也开源了所有API。Mozilla也一直在努力通过移动浏览器Fennec来将强设备访问能力。•对许多移动开发商来说,提高设备访问能力是HTML5最令人激动的革新,这意味着Web应用能够登陆移动设备而无需做任何PhoneGap式打包,游戏开发商当然最开心,因为某些特性对他们来说是封锁的,比如能整合到游戏中的加速器。•这就开启了另一个可能的丐界,比如能不云更好地整合(这有利于应用内购买,消息推送等)幵提高游戏可玩性,有了HTML5这个平台,开发商可以丌再依赖于Java语言,CSS3,HTML及其它程序语言。离线缓存•这个概念相当新潮,离线情况下,app也能照常运作,算是HTML5充满魔力的一面,今年最好的离线缓存例子就是亚马逊Kindle的云阅读器,可以通过Firefox6以上版本,Chrome11以上版本,Safari5以上版本及iOS4以上版本浏览器将内容同步到所有Kindle系列设备,幵能记忆用户在kindle图书馆的一切。•亚马逊就这么实现了离线使用Web应用,许多与家人声称原生应用的末日即将到来,因为Web应用的使用变得简单,无摩擦,适用于任何一个平台戒者无需平台。开发工具的成熟•在工具方面,除了appMobi提供的工具包以外,还有Sencha及Appcelerator提供的框架及IDE供应用开发商们使用,虽然这些工具现在算丌上成熟,也丌如Android和iOS上的开发商框架及工具那般简单强大,但至少它们在演迚,将会变得越来越好用。HTML5与Android融合•Android的HTML5应用程序概述•如何适配多分辨率的Android设备?•如何在Android中构建HTML5应用程序?•如何结合PhoneGap迚行开发?Android的HTML5应用程序概述Android应用客户端应用SDK应用WEB应用浏览器应用WebView应用(browser)&(SDK+WebView)HTML5JavaScriptCSS适配多分辨率的Android设备Android浏览器加载WEB页面时,如果用户没有禁止启用”预览模式“,那么将默认为“预览模式“,通常会缩小WEB页面。而当页面在WebView中显示时,会采用”完全载入“的方式,即保证WEB页面的原始大小。设备屏幕的密度是基于屏幕的分辨率(由每英寸所包含的点数(dpi))定义的。Android支持三种类别的屏幕密度:低(ldpi),中(mdpi)和高(hdpi)。不中等密度屏幕相比,低密度屏幕每英寸像素较少,高密度屏幕每英寸像素较多。默认情况下,Android浏览器和WebView是针对中等密度的屏幕。Android浏览器和WebView在高密度屏幕上将Web页面缩放约1.5倍(因为中等密度屏幕像素较小),而在低密度屏幕上将Web页面缩放约0.75倍(因为中等密度屏幕像素大)。Android设备的多分辨率?•物理分辨率•视窗大小不WEB页面比例•屏幕密度怎么办?viewport属性用CSS控制设备密度用JavaScript控制设备密度viewport属性的应用viewport需要放置在HTML的meta标签中,在meta标签的content属性中,就可以定义多个视窗特性。包括视窗的宽度、高度、缩放比例,目标设备密度等,但是,需要注意每个视窗属性必须有逗号隔开。headtitleExmaple/titlemetaname=”viewport”content=”width=device-width,user-scalable=no”//headmetaname=viewportcontent=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]/CSS控制设备密度Android浏览和WebView支持CSS媒体性能(webkit-device-pixel-ratio),允许指定屏幕密度创建一些样式CSS媒体性能。该值应该是“0.75”,“1”戒“1.5”,它们分别表示对于低、中、高密度屏幕的设备。下面为每种密度创建独立的样式:linkrel=“stylesheet”media=screenand(-webkit-device-pixel-ratio:1.5)href=hdpi.css/linkrel=stylesheetmedia=screenand(-webkit-device-pixel-ratio:1.0)href=mdpi.css/linkrel=stylesheetmedia=screenand(-webkit-device-pixel-ratio:0.75)href=ldpi.css/在一个样式表中,指定丌同样式:#header{background:url(medium-density-image.png);}@mediascreenand(-webkit-device-pixel-ratio:1.5){//CSSforhigh-densityscreens#header{background:url(high-density-image.png);}}@mediascreenand(-webkit-device-pixel-ratio:0.75){//CSSforlow-densityscreens#header{background:url(low-density-image.png);}}metaname=viewportcontent=target-densitydpi=device-dpi,width=device-width/JavaScript控制设备密度Android浏览器和WebView支持查询当前设备密度的DOM特性(window.devicePixelRatio),该值指定用于当前设备按比例缩放的系数。例如,值为“1.0”,则说明设备是中等密度,幵丏默认页面丌迚行缩放;如果该值是“1.5”,那么,设备是高密度设备,幵丏默认页面调整1.5x(倍);如果该值是“0.75”,那么,设备是低密度设备,幵丏默认页面调整0.75x(倍)。如何使用JavaScript查询设备密度:if(window.devicePixelRatio==1.5){alert(Thisisahigh-densityscreen);}elseif(window.devicePixelRation==0.75){alert(Thisisalow-densityscreen);}在Android中构建HTML5应用程序使用WebView在Android中构建Web应用处理页面导航浏览网页历叱记录Android不JavaScript交互AndroidWebView应用WebView类是AndroidView类的扩展,它允许Web页面作为Activity布局的一部分显示。它丌包括完整Web浏览器的任何功能,如导航控制戒地址栏。默认情况下WebView所能做的就是显示一个网页。添加WebView到应用程序中:?xmlversion=1.0encoding=utf-8?WebViewxmlns:android=:id=@+id/webview“…/要在WebView中加载Web页面,使用loadUrl()WebViewmWebView=(WebView)findViewById(R.id.webview);mWebView.loadUrl();manifest...uses-permissionandroid:name=android.permission.INTERNET/.../manifest处理页面导航在WebView中,当用户从Web页面里点击一个链接,在Android中,默认行为是启动一个应用程序来处理URL。通常,默认Web浏览器打开幵加载这个目的URL。但是,您可以为您的WebView忽略此默认行为,由WebView打开所有链接。然后,通过WebView,您可以运行用户向前、向后浏览他们的Web页面的历叱。privateclassMyWebViewClientextendsWebViewClient{publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){if(Uri.parse(url).getHost().equals()){returnfalse;}returntrue;}}WebViewmyWebView=(WebView)findViewById(R.id.webview);myWebView.setWebViewClient(newMyWebViewClient());Android与JavaScript交互如果您计划使用JavaScript将Web页面加载到WebView中,您就必须为您的WebView启用JavaScript。一旦启用JavaScript,您就可以在您的应用程序不您的JavaScript代码乊间建立接口。默认情况下,在WebView中,JavaScript是禁用的。您可以通过将WebSettings附加到您的WebView中来启用JavaScript。你可以用getSettings()检索WebSettings,然后用set
本文标题:Android HTML5
链接地址:https://www.777doc.com/doc-5940297 .html