天道不变,技术在变----移动开发趋势

技术是浮云,转瞬即逝

说白了,native-activity应用程序就是偏向C++爱好者,基本应用程序更倾向于java开发人员。

关于Android模拟器

当你运行项目,你可以在模拟器启动它的App,或者直接将APK文件拖到模拟器上安装。和真实的设备一样,在你安装App到模拟器上后,App会一直存在知道你卸载它或替换它,如果需要,你可以测试多个App,自己的或系统的App

 

Web AppHybrid AppNative APP对比

 

Web App(网页应用)

Hybrid App(混合应用)

Native App(原生应用)

开发成本

维护更新

简单

简单

复杂

体验

Storemarket认可

不认可

认可

认可

安装

不需要

需要

需要

跨平台

 

 

 

为何WebAssembly方兴未艾,而JavaApplet/Flex/Silverlight走向消亡?

Javalet乙烷,Adobe Flex药丸,Silverlight未生先死,WebAssembly却沿着asm.js开辟的道路越走越快。
同样是编译过的中间代码,不同命运的根本原因是什么?

 

根本原因就是爸爸。

JavaApplet的爸爸:Sun,不做浏览器。

Flex的爸爸:亲爹Adobe,继父Apache,不做浏览器。

Flash的爸爸:亲爹FutureWave,继父MacroMedia和Adobe,都不做浏览器。虽然Flash如日中天了好多年,但是自己手里没浏览器,移动端一兴起就跪了。

Silverlight的爸爸:微软,这个爸爸比较强力,但是微软2009年才出Silverlight ,Flash早就坐稳山头了。而且Silverlight 是基于.net的,这就注定只能在Windows上发光发热(别提mono,鲍尔默差点给人家告上法庭),虽然windows垄断pc,但2011年移动互联网也成规模了,windows手机份额那么少,根本没人愿意开发silverlight 程序。

WebAssembly的爸爸:微软、谷歌、苹果、Mozilla,Trident+Blink+WebKit+Gecko差不多占了全球浏览器引擎份额的99.9%吧,谷歌手上还有v8控制整个nodejs社区,至于经费就更不愁了,都是大佬。虽然现在wasm还没到『兴』的程度,但是以后不兴真是没天理。


 

naive,墙内的PC市场上面,X酷,爱X艺之类的网站现在不也是要抱着flash进棺材的样子。。。等flash真死了,估计是PC市场死了,asm.js能火说不定是因为移动平台换机器够勤快

 

如果全世界电脑停用flash转用HTML5,可以节省多少能源?

 

这是个伪命题。HTML5和节能有毛关系啊,且不说PDF在网页中的比重有多少,单单用HTML5播放视频能比Flash省多少电都很难说。HTML5的好处在于跨平台,这能节省多少码农的时间啊

 

WebAssembly

 

WebAssembly, 简称WASM, 是一种以安全有效的方式运行可移植程序的新技术,主要针对Web平台。 与 ASM.js类似, WASM的目标是对高级程序中间表示的适当低级抽象,即,WebAssembly代码旨在由编译器生成而不是由人来写。 W3C 社区组 拥有来自于最大Web浏览器厂商的代表,比如Google, Microsoft, Apple 和 Mozilla ,非常令人期待。

如果你正在阅读本文,很可能你已经对WASM有一定的了解。如果你不了解,那么你可以好好看看 webassembly.org。就在本文发布的时候,WebAssembly 刚刚达成了 浏览器预览里程碑,这意味着WebAssembly版本1很可能和当前草案所描述的一致。本文的细节基于版本mvp-13。

已经有 很多现存 的编译器 可以生成WASM,但是本文创建WASM将不会有太多依赖,也不会用高级语言。

看来你的浏览器不支持WebAssembly,但没关系,在本文中,您不需要它。

让我们开始吧。

WebAssembly程序剖析

实际上,称之为“模块(module)”,是因为使用WebAssembly并没有“程序”和“库”之间的区别,只有“模块”,彼此之间可以搭配,亦可通信,每个“模块”都有“main”函数。

首先是模块中用于表示参与编码的WebAssembly版本。接下来是若干段(section),它们都包含了关于模块的信息。模块总是以包含了顺序的标准段开始,并且可选地结束于任何数量的可以包含任何类型数据的自定义段,所有数据都可以被标准的WASM虚拟机忽略。

在WASM版本1中的标准段如下,标记为星号(*)的段都是任何功能模块都必需的:

Type* — 函数签名声明

Import — 导入 声明

Function* — 函数声明

Table — 间接函数表和其他表

Memory — 存储器属性

Global — 全局声明

Export — 导出

Start — 开始函数声明

Element —元素段

Code* — 函数体

Data — 数据段

 

 

WebAssembly只有四种具体类型:32位整数,64位整数,32位浮点数和64位浮点数,其中整数类型是无符号的(后面会有更多说明)以及浮点数数字符合IEEE 754-2008标准。 任何复杂类型都可以由编译器构建在这些基本类型之上。 本文的其余部分以及 WebAssembly文档将分别使用简称i32,i64,f32和f64来引用这些基本类型。

猜你喜欢

转载自blog.csdn.net/bn2918/article/details/83578783