技术是浮云,转瞬即逝
说白了,native-activity应用程序就是偏向C++爱好者,基本应用程序更倾向于java开发人员。
关于Android模拟器
当你运行项目,你可以在模拟器启动它的App,或者直接将APK文件拖到模拟器上安装。和真实的设备一样,在你安装App到模拟器上后,App会一直存在知道你卸载它或替换它,如果需要,你可以测试多个App,自己的或系统的App。
Web App、Hybrid App、Native APP对比
|
Web App(网页应用) |
Hybrid App(混合应用) |
Native App(原生应用) |
开发成本 |
低 |
中 |
高 |
维护更新 |
简单 |
简单 |
复杂 |
体验 |
差 |
优 |
优 |
Store或market认可 |
不认可 |
认可 |
认可 |
安装 |
不需要 |
需要 |
需要 |
跨平台 |
优 |
优 |
差 |
为何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来引用这些基本类型。