单机搭建Android开发条件(五)

  近日大热的HTML5到底美在哪个地方?HTML5到底能为实际的移位支付带来什么样改变?来自Ali云云手机服务运转部的前端开发工程师正邪 (廖健)分享了他眼中的HTML5之美,主要讲诉HTML5的广阔原理并从CSS、JavaScript和框架多少个地点做了细致讲解:

  前文介绍了Android系统开发环境的搭建,本文将不难介绍Android应用开发条件的搭建。

  说到HTML5一般都会提到它新增了某些新的价签,那么些标签可以减弱文档的尺寸,也可以节省一些CSS定义,不过这么些利益不足以证实HTML5在技能革命上带来的震慑,大家如故先要通晓HTML5的规律到底是怎么着的,它带来的革命为何会如此大?

  基于Android Studio搭建应用开发条件,相比较使用Eclipse简单得多。Android
Studio也是谷歌(Google)官方推荐使用的采纳开发条件,确实高大上,且版本更新尤其快!

  常见的原理

  HTML5的发出以及它的规划完全是依据了一些大面积的法则,这么些规律在李松峰先生的博客上有详细地阐释。

  首先第叁条规律是:发送时保守、接收时开放。

  作为工程师,发送给浏览器的文档应该尽量的严俊,可是浏览器作为接收方,应该享有一个怒放的态度,而不会因为有个别文档有毛病,到浏览器窗口里面就不显得了,只是留下一片空白给用户。既然HTML存在标签没有健康闭合的只怕,也设有属性丢失的情形,只要文档没有生出二义性,浏览器应该算计到最后的行为并做出正确处理,在技术层面浏览器有理由这么做。

  第①,幸免不要求的复杂。

  大家在编排的HTML的时候,恐怕会定义一个十分长相当短的文档类型讲明,这几个文档类型申明是给浏览器看的,假设能够简化它,在编写的时候就能省下一些年华,而且也不用浪费劲气去记那一个难记的字符。实际上,省略大部分字符,浏览器也能依据大家希望的那么去运作。

  还有script标签,我们恐怕会设置它的type为“text/javascript”,实际上也是不须要,如若type属性没有被声称,暗中同意就按JavaScript处理。类似的事物有层出不穷,在文档里面能省掉的大家就相应大胆地节约,那样不可是在编著这些文档的时候,可以给我们带来这一个有利,而且在一块儿维护的时候也能拉动一些好处。

  第②,网络价值同达到互连网用户数量的平方成正比。

  将来HTML5如此火,很多少人就拿它跟Flash去做相比较,说Flash多么多么烂,说HTML5多么多么好。实际上大家创作的始末最终是给用户去看的,倘若那个东西用户认为好,不管用怎么样技术本身以为都以扶助的。

  最终我们要的是将劳动推送到用户目前,而不是要说某种技术多么好,可以杀死另3个技巧。实际上在此间,它们的协同工作才是适合HTML5的统筹思想,在那一个范围上作者以为Flash也是HTML5中的一员。

  第陆,一大半人的理念和可运维的代码。

  没有HTML5正式的时候,浏览器厂商可以分级为阵,能够插足了温馨的标准,固然这几个规范不是W3C制定的,不过基本上人都有那些需求,它们能化解实际难题。所以也激发W3C参加到那么些规范的制定中去。

  首先安装JDK,安装进程,一路暗中同意即可。

  技术细节

  CSS

  有位测试工程师报了个bug给开发工程师。说页面上的单选框样式太掉价了,提出改一下,换个颜色。开发工程师当时就晕倒了,说这一个是浏览器暗中认同的,改不了。改不了怎么办?只能够把bug打回到。

  基于CSS3的表征,将来完全可以变动浏览器控件的暗中认同外观。

  然后是布局。改变样式是CSS的刚强,也是它的职分所在。大家可以利用百分比做弹性布局。以往设施相比多,有surface、Motorola、还有其种种显示屏尺寸的安卓,假设小编想用HTML5的技能做二个行使,适用于拥有平台,这一个时候百分之百早晚是不够的,而精准的弹性布局又呈现很要紧。

  CSS3有二个box-flex的属性,假如有个容器,里面有多个div,在设置了margin的还要将它们的box-flex设置成1,看到的效能就是三个要素均等分,作者还足以变动它的百分比,比如将第一个因素固定宽度,剩下的三个因素也得以均等分。除了从左往右布局,使用cloumn-count可以做到从上往下布局。

  box-flex可以化解一部分显示器适配的标题,尽管想做到更精准的布局,比如说在小显示屏下的布局是一个规范,大显示器下或然进入了越来越多的要素,恐怕更扑朔迷离了,甚至大小、颜色、地方都变了。这几个时候可以行使Media
Queries的技能。大家得以先定义有些样式,然后在某种屏幕方面覆盖暗中同意样式,或许完全选拔另一套样式。

  除了CSS3这么些新奇的性质,用它来设计有个别繁杂背景也是非凡适合的。那里有3个自作者同事开发的Chrome插件叫Coda
Cola,他还为那么些插件做了二个分享的网站。旁人依据那个插件,做出了部分相比酷的CSS效果,可以再享受出去。

  JavaScript

  说了CSS3,再说说JavaScript。大家说JavaScript美吧?好像大家对它的回想也不是很好。不仅前端,后端对JavaScript的影像也好不到哪去,甚至会更糟糕。

  首先它的实践功能比较慢。

  然后它的API接口对比烂,比如自个儿要摸索有些成分,可以用getElementById,getElementsByTagName,
这么一长串。除了很短,小编还要把第多个参数指定为false。今后做应用的话,我们一般都会采纳用框架来赞助协调举行支付,从那一个复杂的语法中抽身出来。

  再者,JavaScript调试比较劳碌,JavaScript边解释变执行,代码一多,方法之间的调用层级变深,借使出错,就很难定位到错误所在。特别是在没有firebug等调节工具从前,找错误有时候就跟做恐怖的梦一般。JavaScript即使有这般多弊病,不过它将来还在全速进步。于今,大家有很各类的框架可以挑选,那么些中肯定有我们热衷的框架。但在HTML5赶来的天天,大家有一些更好的挑三拣四。比如说做成分查找,以前或者用到框架,以后绝不框架,使用原生的API也足以很方便地做到。那是首先点,就是有些作用不再须求框架做支撑了。

  第叁,JavaScript中参加一些新的特色,比如说LocalStorage。没有LocalStorage的时候,大家得以拔取Cookie在客户端记录一些用户相关的多寡,不过Cookie记录的容积有限,而且HTTP请求会率领cookie数据。在须要保留大批量数量或许设计离线应用的时候,LocalStorage就至极有效了,LocalStorage的容积比较大,在活动平台上,至少有2M的囤积空间。

  框架

  即便说有了一些原生的API,也有了一些新的机能,然则在付出的时候,大家照旧要正视一些框架来加强工作成效。有三个叫Zepto的框架,是大家在品种中时时会用到的框架。它的API大约跟jQuery一样,跟jQuery相比,Zepto去除了部分移动平台上不要求的代码。除此之外,它还支持了tap、swipe等手势。
在活动平台上,大家也可以选取Canvas技术做一些游玩。

  在活动网络上,手机跟PC有一部分特征上的差异。用到手机特有的作用,大家得以做一些很有意思的事物。比如说笔者想取得地理定位,还有传感器、查询通信录、拍照,这个都以手持设备特有的作用,即便W3C有制定那个API的正规化,不过如今尚无浏览器已经全体兑现。假如应用PhoneGap的话,我们就能采纳到那几个API了。

  小编那里有三个录制,演示的是行使PhoneGap做的一个指南针应用。作者在Chrome上装了多少个叫Ripple的插件,它是二个PhoneGap模拟器插件。装好那么些插件之后,就可以在浏览器上开展中付出了,那一个插件模拟了配备的大小和外观,并且参与了device本性的调节环境。在界面上,左右都有很复杂的控件,操作它们可以效仿device本性。就这么三个拔取,只需求差不离20行代码。

  然后装进也很简短,PhoneGap官方有个在线的卷入工具,它架设在亚马逊(Amazon)云总计平台上,大家只必要把源代码的zip包传上去,然后就能下载打包好的应用程序安装文件。

  所以说,使用HTML5技术做2个安卓应用真的是分外容易,基于PhoneGap,可以连SDK也不用下,并且能不辱义务直接花费、打包,不过一台安卓手机照旧须求的,因为我们如故须求配置上来看望真正效果。

  从HTML4落地以来,整个网络环境、硬件条件都发出了天翻地覆的生成,开发者期望标准联合、用户渴望更好心得的呼声越来越高。20年磨一剑,HTML5用作下一代Web标准,它的新特色正在各种新式浏览器的版本中火速的取得扶助和反映。随着HTML5和CSS3的进步和宏观,Web应用程序正在逐步的突显出桌面应用的性质和效率,和桌面应用之间的区分将更为混淆。以往不大概用HTML5来贯彻的作用将越来越少,以后绘制、视频编辑、3D建模等也将从单机软件转到浏览器上经过Web应用程序来已毕。

  下文,小编将结合实例,谈谈动人心魄的HTML5之美。

  一 、语义之美

  语义化很美,在恰当的地点选用合适的价签,把人和机具相提并论。书写语义化的页面就好像建造符合工业标准的建筑,阅读语义化的页面像阅读一本你熟稔的小家碧玉作品。

  HTML5的语义化标签包罗:

  • <section> – 代表文档中的一段依旧一节;
  • <nav> – 用于创设导航;
  • <article> – 表示文档、页面、应用程序或网站中总体的内容;
  • <aside> – 代表与页面内容相关、有别于主要内容的有个别;
  • <hgroup> – 代表段仍旧节的标题;
  • <header> – 页面的页眉;
  • <footer> – 页面的页脚;
  • <time> – 表示日期和岁月;
  • <mark> – 文档中必要非凡的文字。

  和动用css+div举行页面布局的主意比较,那一个新标签分明的变现了页面成分的结构和含义。上面的代码显示了这么的一个示范:

<!DOCTYPE html>   
<html>   
<head>  
    <meta charset="utf8">  
    <title>HTML5</title>  
    <link rel="stylesheet" href="html5.css">  
</head>  
<header>  
    <h1>Title</h1>  
    <h2>Subtitle</h2>  
</header>  
<aside>  
    <nav>  
        <h2>Nav1</h2>  
        <ul>  
            <li>Link1</li>  
            <li>Link2</li>  
        </ul>  
    </nav>  
    <nav>  
        <h2>Nav2</h2>  
        <ul>  
            <li>Link3</li>  
            <li>Link4</li>  
        </ul>  
    </nav>  
</aside>  
<article>  
    <header>  
        <hgroup>  
            <h1>HTML5 is beautiful</h1>  
            <h2>Semantic, Natural, Simple and Useful</h2>  
        </hgroup>  
    </header>  
    <section>  
        <h2>Semantic</h2>  
        <p>HTML5 is Semantic.</p>  
    </section>  
    <section>  
        <h2>Natural</h2>  
        <p>HTML5 is Natural.</p>  
    </section>  
</atricle>  
<footer>  
    <a href="http://www.w3.org/TR" mce_href="http://www.w3.org/TR">W3C</a>  
</footer>  
</html>   

  相当容易和明晰,小编得以不添加其他注释,人和机械都精通它所要打造的布局和故事情节。

图片 1

  近期重中之重浏览器的新本子都帮忙HTML5语义化标签(下图从左到右依次为IE、Chrome、Firefox、Opera、Safari、QQ浏览器5)。

图片 2

  ② 、人性之美

  HTML5设计理念中的通用访问显示了人性化之美。通用访问包罗可访问性、媒体中立和国际化资助五个概念。可访问性考虑了对残障用户的协助,媒体中立为保有的平台和顶峰上(例如Android和中兴的阳台上)建立统一标准;而国际化的支撑浮以往不一样的语言和书写习惯上。

  就像是CSS3中对国际化的支撑浮今后padding-start,
padding-end(在Chrome新本子的装置基本中可以看到它的运用)等新属性一样,HTML5引入了Ruby标签。Ruby标签允许为3个可能五个文本添加附加注释(其取名来源于Ruby字符),例如下边的代码:

<p>Hello,  
    <ruby>  
              <rb>HTML5</rb>  
              <rp> (</rp>  
              <rt>Hyper Text Mark-up Language 5</rt>  
              <rp>) </rp>  
    </ruby>  
</p>  

  突显的文书如下:

图片 3

  Ruby标签在国语、立陶宛语和日文教科书和古文中国和亚洲常有用,读者们可以方便精晓文本的详实读音和含义。上面的杂谈很美,而HTML5更美。

图片 4

  有趣的是在IE、Firefox或Opera中复制粘贴下面的文书到编辑器中,会来得上面的文本,那是因为<rp>标签的特殊功效:允许在不协助Ruby标签的浏览器中优雅的降级,同时帮助非格式化的复制和粘贴。

  死生 契 (读音: qì ) 阔 (读音: kuò )
,与子成说。执子之手,与子偕老。

  近年来第二浏览器的新本子对于Ruby标签的支撑程度如下:除Fifrefox和Opera外均提供协助。

图片 5

  ③ 、简单之美

  大道至简,化繁为简是许多正式、规范、框架的终极目的。HTML5很好的诠释了这点,例如以浏览器原生能力资助和顶替复杂的Javascript代码、提供简单而有力的新API。

  HTML5自己即跨浏览器的JS库,使得开发者的干活更便于:例如新的表单标签和性质、内置拖拽事件使得完全不必要Javascript的支撑就能促成无数常用的听从。

  我们再来看HTML5表单,它完结了无数大约易用的原生属性和控件,可以轻松的营造强大的表单,帮大家节约多量的Javascript代码。上面是3个HTML5表单的示范:

<form>  
    <p>  
              <label for="email">电子邮箱:</label>  
              <input type="email" required autofocus name="email" id="email" placeholder="您的电子邮箱">  
    </p>  
    <p>  
              <label for="username">用户名:</label>  
              <input type="text" pattern="^/w{6,12}$" required name="username" placeholder="6到12位的英文字符">  
              <input type="search" placeholder="用户名搜索" autosave="www.yujie.com" results="5" name="username-search" id="username-search">  
    </p>  
    <p>  
              <label for="username-search">生日:</label>  
              <input type="date" min="1980-01-01" max="2011-3-16" name="birthday" id="birthday" value="1982-10-10">  
    </p>  
    <p>  
              <label for="blog">博客地址:</label>  
              <input type="url" name="blog" placeholder="您的博客地址" id="blog">  
    </p>  
    <p>  
              <label for="mobile">手机:</label>  
              <input type="number" name="mobile" pattern="^1[0-9]{10}$" id="mobile" placeholder="您的手机号">  
    </p>  
    <p>  
              <label id="label-working-year" for="working-year">工作年限:</label>  
              <input type="range" min="1" step="1" max="20" name="slider" name="working-year" id="working-year" placeholder="您的工作年限" value="3">  
    </p>  
    <p>  
              <label for="age">年龄:</label>  
              <input type="number" name="age" id="age" value="20" autocomplete="off" placeholder="您的年龄">  
    </p>  
    <p>  
              <label for="avatar">头像:</label>  
              <input type="image" src="user.png" mce_src="user.png" name="avatar" id="avatar" placeholder="点击选择头像">  
    </p>  
</form>  

  示例中包括了email、search、date、url、range、number、image类型的输入框和required、autofocus、placeholder、pattern、autosave、results、min、max、step、autocomplete等新属性,它们简单到依照名字就可以推论出用途。上边是功效图。

图片 6

  HTML5表单在各浏览器里的支撑程度和表现并不平等,例如Search输入框如今只被Webkit内核浏览器辅助,而日期弹出框和拖动条刻度仅被Opera扶助。以上的竹签类型和属性近来并未三个浏览器完美扶助。

图片 7

  四 、实用之美

  HTML5的Web Worker、Web Socket、Web
Storage等新API让很多后台的工作可以停放前端来处理,Web
Worker消除Javascript单线程和封堵的难点,约等于提供了分布式处理的框架;Web
Socket提供了全双工的长连接通讯,
利用它,大家可以已毕天涯论坛信息推送、新邮件推送、实时游戏和聊天,收缩了不须要的多少传输,提升了新闻的实时性;Web
Storage也等于前者的Memcached和数据库。

  而HTML5的Canvas是最强大的API之一,能够动态变化图形、图像和卡通,在HTML5嬉戏中应用的格外普遍。在下边的例子中,笔者将浮现HTML5
Canvas之美:达成图像颜色渐变效果。

  以前,大家在网站上显得灰度图像到彩色图像的渐变动画有三种达成形式:① 、基于IE滤镜的方案,缺点是无能为力落到实处浏览器包容;贰 、手动创立彩色图像的灰度版本。未来,利用HTML5的Canvas画布,我们可以很快简明的贯彻此动画效果。

图片 8

  将鼠标放在右边的图纸上,图片颜色将从灰度渐变到彩色,一切就在头里鲜活起来。

  着力的Javascript代码如下:

// 加载时就进行处理  
$(window).load(function(){  
    var img = $('#color-img');  
    // 复制图像  
    img.clone().addClass('gray-img').css({"position": "absolute", "z-index": "2", "opacity": "0"}).insertBefore(img);  

    img.attr('src', grayscale(img.attr('src')));  

    // 图像的淡入  
    $('#color-img').mouseover(function(){  
             $(this).stop().animate({opacity: 1}, 1000);  
    })  

    // 图像的淡出  
    $('.gray-img').mouseout(function(){  
             $(this).stop().animate({opacity: 0}, 1000);  
    });  
});  

// 创建灰度版的图像  
function grayscale(src) {  
    // 取得canvas元素及其绘图上下文  
    var canvas = document.createElement('canvas');  
    var ctx = canvas.getContext('2d');  

    var imgObj = new Image();  
    imgObj.src = src;  

    canvas.width = imgObj.width;  
    canvas.height = imgObj.height;  

    ctx.drawImage(imgObj, 0, 0); // 绘制一副图像  
    var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height); // 获取之前的数据  
    for(var x = 0; x < imgPixels.height; x++){  
             for(var y = 0; y < imgPixels.width; y++){  
                       var i = (x * 4) * imgPixels.width + y * 4;  
                       var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3; // 计算灰度值  
                       imgPixels.data[i] = avg; // rgb中的r  
                       imgPixels.data[i + 1] = avg; // rgb中的g  
                       imgPixels.data[i + 2] = avg; // rgb中的b  
                       // i + 3是alpha通道,我们现在不需要  
             }  
    }  
    ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);  
    return canvas.toDataURL();  
}   

  针对不帮助的旧浏览器,大家可以利用Modernizr
Javascript库大概原生Javascript检测当前浏览器是不是协理,并提供替代性的缓解方案:

if(!Modernizr.canvas) { // 或者使用!document.createElement('canvas').getContext

  $(document).ready(backupFunc);

} 

  近日重中之重浏览器的新本子都提供Canvas标签的支撑:

图片 9

  5、HTML5的不足

  当前HTML5还有哪些不足之处?

  壹 、安全:像从前Firefox 4的Web
Socket和透亮代理的落到实处存在严重安全难题,同时Web Storage、Web
Socket那样的成效很简单被黑客利用,来盗窃用户的新闻和材料,其余HTTP的编制导致了Web应用安全性有所欠缺,那将在相当长的年月内化为难点。

  ② 、质量:有些平台上的发动机难点造成HTML5脾性低下。同时在不进入GPU加快的状态下,HTML5甩卖千丝万缕音录制、动画的习性不顺手。

  ③ 、完善性:HTML5还在成熟和进化中,像此前早已扶助的Web SQL
Database,W3C已经控制不再维护。许多特征各浏览器的襄助程度也差距,而地理定位API在国内的前途还不清晰。

  肆 、技术门槛:HTML5简化开发者工作的还要表示了有不少新的属性和API需求开发者学习,像Web
Worker、Web Socket、Web
Storage等新特点须求对于后台的技巧要求有必然的垂询,甚至要求深刻明白其背后原理和逻辑,而Canvas需要视觉和图像算法的有个别知识。古板的前端开发者必要控制更加多算法、视觉、后台甚至浏览器原理的文化,机遇的还要也是英雄挑衅。

  6、总结

  下边的一大半供不应求是HTML5发展进程的中间状态导致的,从长时间来看,浏览器厂商的帮衬、移动网络的蓬勃发展使得HTML5的前景一片光明,开发者对此必须求要有精晓的认识和悠久的眼神,提前做好技术储备。

  对于HTML5,小编认为不但要了然技术细节,还要从根本上领悟HTML5的架构,从更高的范围上精通它的深层次意义,它的规划理念,你会意识它的架构之美,对于个体架构设计能力和程度提高有很大协理。

  Web应用程序和活动互连网是放任自流,IE6终将消失,Web和浏览器标准肯定统一,HTML5就是道之所藏、美之所在,让大家一同迎接和拥抱HTML5的赶来!

  JDK官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  JDK-8u73(x86,x64) for
Windows的CSDN下载地址:http://download.csdn.net/detail/sunrain_hjb/9463661

  JDK安装到位之后,再安装Android Studio。

  Android Studio 1.5.1正式版官网下载地址:

  https://dl.google.com/dl/android/studio/install/1.5.1.0/android-studio-bundle-141.2456560-windows.exe

  若访问不了,请找大师(蓝灯)帮衬,此乃Android开发必备工具之一!

  Android Studio
1.5.1正规版360云盘下载地址:https://yunpan.cn/OcYEwUigBR4WwD 访问密码
e29d

  Android
Studio的安装,也可以一并默许。但为了迁移方便,在装置的历程中,依然自定义一下设置的目录。将SDK和Android
Studio安装在相同目录下,如下图所示。

图片 10

  因国内不能符合规律访问谷歌网站,故在革新SDK时会出错,音信如下:

Fetching https://dl.google.com/android/repository/addons_list-2.xml

Failed to fetch URL https://dl.google.com/android/repository/addons_list-2.xml, reason: Unknown Host dl.google.com

Fetched Add-ons List successfully

Fetching URL: https://dl.google.com/android/repository/repository-11.xml

Failed to fetch URL https://dl.google.com/android/repository/repository-11.xml, reason: IO Unknown Host dl.google.com

Done loading packages.

Fetching URL: https://dl.google.com/android/repository/repository-11.xml

Failed to fetch URL https://dl.google.com/android/repository/repository-11.xml, reason: IO Unknown Host dl.google.com

Done loading packages.

  可以透过安装代理,化解该难题,代理设置如下图所示。

图片 11

  越多墙内可用代理,请移步http://www.androiddevtools.cn/

  有关Android Studio的使用格局和技术,请下载摄像教程仔细观摩。

  录像教程下载地址:https://yunpan.cn/OcY8jbuyXIfphH  访问密码 44f9

  Android应用开发还有壹个很首要的片段,NDK。就算合法友情提示,不要刻意用它,对于一大半APP,一没要求,二会让工作变得更复杂。不过,杀鸡可不要牛刀,杀牛则不得不用,先备着吗。小编在移植WinCE的远程桌面助手到安卓平台时也应用了NDK,socket通讯、Framebuffer的拍卖、jpeg压缩那个代码,原来在WinCE上都是C写的,采纳NDK间接拿过来稍加修改就可以编译,不仅仅进步了运营功效,开发作用也抓实不少。那应该也是NDK的三个敬爱用途吧,复用已有个别C代码。

  NDK官网下载地址如下,

  https://dl.google.com/android/repository/android-ndk-r11-windows-x86.zip

  http://dl.google.com/android/repository/android-ndk-r11-windows-x86_64.zip

  NDK r11 for Windows国内下载地址:

  http://mirrors.neusoft.edu.cn/android/repository/android-ndk-r11-windows-x86.zip

  http://mirrors.neusoft.edu.cn/android/repository/android-ndk-r11-windows-x86_64.zip

  同样,在设置NDK时,也将路径设置在和SDK、Android
Studio同一目录下,以便迁移。

  Android Studio中如何利用NDK请看摄像,How to create a c++ library
with NDK on Android Studio 1.5 (not experimental
way),摄像下载地址如下,https://yunpan.cn/OcYEuGwtVnx9mp 访问密码
e0db。老实说,NDK这一有的的配备有点复杂,方今有二种方法,此外一种就是experimental
way。笔者在移植Android远程桌面助手(Android Remote
Displayer)时,采纳的是gradle-experimental:0.4.0,为了选择jpeg压缩的库,大费周折,前边有空子再详说。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注