自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Cloud Card能否干掉App

算下来有一年没写blogliao云OS 3.0已发布,总算向外界表达了我们想做个啥,很多人也开始质疑,Cloud Card到底是个啥?云OS 3.0算不算自主研发的OS?等等,今天想就Cloud Card能否干掉App这个主题聊聊这些事情。昨天三丰和我们开会讲到一个观点,IOS&Android以App为核心的OS过时了,用户使用各种移动设备,要的不是App,是服务,虽然Ap

2014-10-29 14:41:19 10570 21

原创 浅谈阿里All in无线的看法

上周五老陆给我们讲了阿里All in的战略,让我有点情绪激动,有点看到曙光的感觉,也深感庆幸年初转向无线领域的正确性。之前读《浪潮之巅》感觉任何伟大的公司都有可能有衰落的一天,比如A&T、HP、Nokia和Moto,现在互联网时代更加加速了这个衰败过程,以至于阿里在这个看上去的盛世就开始感到危机重重,几位老大寝食难安,深感如果不在无线上站稳脚跟就等于步入死亡,并且死期不远。

2013-10-22 23:07:55 16128 5

原创 浅谈zygote服务中的设计思路

zygote服务是Android启动和服务APK的核心服务,每个APK都是通过zygote启动,今日阅读它的源码学习到一个不错的设计思路。首先看看一个APK通过zygote的启动流程:按照一般的设计思路,既然每个APK都是由单独的dalvik启动和运行,那么直接通过dalvikvm启动main不就完了吗?为啥还要搞得这么长一串流程。其实关键就在于这个Fork。我们看看对于linux启动一个进程的一

2013-09-30 13:30:28 7463

原创 云OS开发者平台重新上路

好久没写blog,越深入的做WebOS越对这个领域表示敬意,不敢乱写东西班门弄斧。最近一直潜心做云OS开发平台和工具,意在打造云OS的生态系统,路还很长,不过已迈出一小步,developer.yunos.com已上线,问题多多但总算迈出这一步,想做的事情太多,但只能一步一步来。后续打算把打造这个平台的点点滴滴和成长历程记录下来,给意在打造一个开发者平台的朋友一些参考。

2013-08-28 14:51:00 8549 5

原创 探索WebKit内核(五)------ 智能指针解析:RefCounted, RefPtr, PassRefPtr, OwnPtr和PassOwnPtr

本文将从WebKit源码中解析WebKit智能指针的用法。进入正题之前,先还是要仔细看看官方文档:http://www.webkit.org/coding/RefPtr.html。不管能否看明白还是要先看看这篇文章,毕竟这是本文最主要的参考文档。文档里已提到2005之前,WebKit基于RefCounted来管理对象的销毁。RefCountedRefCounted原理很简单,就是最经典的引用计数的

2013-05-27 19:08:04 13421 1

原创 探索WebKit内核(四)------ Inspector

最近在做WebOS的远程调试功能,效果如同Chrome for android和Safari for ios一样,具体可见:chrome: https://developers.google.com/chrome-developer-tools/docs/remote-debuggingios: https://developer.apple.com/library/ios/#documentat

2013-05-26 15:37:46 17869

原创 基于libevent, libuv和android Looper不断演进socket编程

最近在做websocket  porting的工作中,需要实现最底层socket读和写,基于同步读,libevent, libuv和android Looper都写了一套,从中体会不少。1)同步阻塞读写最开始采用同步阻塞读写,主要是为了快速实现来验证上层websocket协议的完备性。优点仅仅是实现起来简单,缺点就是效率不高,不能很好利用线程的资源,建立连接这一块方法都是类似的,主要的区别是在如何

2013-05-24 17:33:57 16633 4

原创 查看android native crash后的堆栈信息

每次发生android runtime exception后都手足无措,因为拿到的都是如下信息:adb logcat:F/libc (21559): Fatal signal 11 (SIGSEGV) at 0x00030010 (code=1), thread 21578 (m.yunos.browser)I/DEBUG ( 160): *** *** *** *** *** *

2013-05-15 10:53:29 24162 4

原创 探索WebKit内核(三)------ WebSocket

WebSocket是HTML5的一个重要特性,能提供client和server的双向通信,是很多WebAPP做网络通信的首选,不过它在Android的WebKit中并不支持,也就造就了socket.io的流行。在我们云OS中当然不能漏掉这个特性,我这周的任务就是要在云OS的Webkit中支持websocket,以此让WebApp能直接调用websocket API。某些平台的webkit(比如An

2013-05-12 14:57:06 16736 2

原创 探索WebKit内核(二)------ IDL和Bindings

WebKit最神奇的一点是JS能调到内核部分(c/c++),这是WebOS向外提供扩展能力的关键(实现或扩展W3C API)。要搞清楚一个JS的方法是如何调到后面c/c++的实现颇费周折,其实就是要把IDL和Bindings弄懂,先解释一下这两个名词:IDL:接口定义语言,详细解释可见http://trac.webkit.org/wiki/WebKitIDLBindings:WebKit动态生成与

2013-04-28 11:33:26 26403 10

原创 在xcode中编译和调试webkit, V8和Nodejs

对于一个c/c++菜鸟如何想去研究一些优秀的框架是件很困难的事情,但如果能把这些框架导成xcode项目,并xode上编译和调试将会使学习这件事情相对容易许多,xcode确确实实是开发人员的利器。最近一直在搞webkit, V8和Nodejs,于是乎找到了把这三个框架导成xcode project的方法,总结如下:WebKitWebKit前文已说过,源码中已包含xcodeproj文件,直接用xcod

2013-04-27 09:20:48 20858 1

原创 架构师的楷模

一直把做一名资深的架构师作为自己毕生奋斗的目标,但一直苦于在身边没发现鲜活的例子,见过很优秀的产品经理,见过很优秀的管理者,但优秀的架构师一直没见过,有的架构师技术很专,有的把业务搞得很透,有的能把条条框框说得很有调理,但这些人都不是我心目中架构师的形象,这也是我在成长中很大的困扰,我不知道该如何要求自己,我需要的是一个鲜活的形象,以此来对照自己。现在这个问题解决了,自从加入潘爱民老师的团队后,我

2013-04-26 15:31:52 17929 8

原创 探索WebKit内核(一)------ 菜鸟起步

为什么搞WebKit现在研究WebKit的人越来越多,俺不能免俗,也加入其中。WebKit的火爆也是得益于浏览器和WebOS的混战,随着Palm WebOS, Chrome OS, Firefox OS和Ubuntu Mobile相继发布,WebOS逐渐成为Android和IOS之外的第三世界,而WebKit也随之从浏览器内核晋升为Mobile OS的内核,除了IE和Firefox之外,市面上叫得

2013-03-28 19:03:20 101998 20

原创 重新出发

几经曲折,重新出发。从确定再次寻求机会的那天起,就一直不太平,接触了很多,也得罪了很多,给很多朋友引来了很多麻烦,我只能说声抱歉,我的出发点很简单,仅仅只是想找到一个点能重新出发,重新走向架构师之路。有时感觉自己又回到了起点,有时也吐槽自己:既然如此何必当初。不过,这次的重新出发不至于是对当初的离开全盘否定,起码现在的自己和以前感觉最明显不同是,做技术更加纯粹,没有了后顾之忧后,不会那么势利地去看

2013-03-06 18:53:55 9620 3

原创 在xcode上开发基于V8的C++

最近开始nodejs,为了搞清楚内部机制,尝试写写基于V8的C++ code。我用的是mac,自然而然想到了用xcode作为IDE。成功编译并运行v8 hello world的步骤如下:1)在mac上编译nodejs参考https://github.com/joyent/node/wiki/Installation 的mac osx那一块。当然也可以直接编译V82)新建xcode项目新建一个Com

2013-03-01 12:37:28 9735

原创 从Samples中入门IOS开发(六)------ Photo和Album浏览

MyImagePicker展示了如何调用系统Photo和Album,并在自定义的UI中进行浏览,而这个也是很大众化的需求。先看看这个例子的使用流程:对于这个Sample,我主要关注两个关键点:调用系统Photo和AlbumUI组件的嵌套和组合调用系统Photo和AlbumIOS提供了类ALAssetsLibrary来取得Photo下面的资源(photo, album, video等),它的主要调用

2013-01-15 11:28:16 11454 1

原创 从Samples中入门IOS开发(五)------ 基于HTTP的网络编程

上一篇讲的是如何通过socket进行网络传输,实际上对于互联网上的资源,我们更多的是基于http来开发,SimpleURLConnections展示了如何基于http来进行数据传输,这里主要是讲client如何向http服务器请求和传输数据,http服务器端的实现不在此例子范围之内,实际上就是普通的http服务器。从本例中主要能学到三点:基于Get下载文件基于Put上传文件基于Post上传文件基于

2013-01-14 13:56:59 12112

原创 从Samples中入门IOS开发(四)------ 基于socket的网络编程

SimpleNetworkStreams展示了如何基于Socket网络编程,实现了一个很典型的局域网内网络数据传输的场景,一个是client向server端发送本地的图片文件,另一个是client向server端下载图片到本地文件。抽取出来的一般流程:server开启socket监听此处IOS的一般做法是三步走:第一步:创建系统级的socket,并绑定端口 port = 0;

2013-01-14 10:34:11 18237

原创 从Samples中入门IOS开发(三)------ 文档浏览

IOS提供了对各种文档(PDF, PPT, word, txt, jpg等)的浏览功能,这个非常使用,因为我们难免需要app里浏览各种文档。官方的Sample code DocInteraction展示了如何在IOS浏览各种格式的文档。本Sample非常简单,在tableview里列出了预定的和制定目录下的文档列表,点击某个文档时,能切换view并预览文档内容:从这个sample里能学到的关键点是

2013-01-12 17:32:40 11992

原创 从Samples中入门IOS开发(二)------ CURD

这段时间在想办法入门IOS native的开发,想找一个比较快速有效的办法,看书或者看文章都不太合适,主要是现在确实没有这么好的书能让你看完后就完成了从Java转到IOS的跨越,并且看完后就容易忘记,不深刻。后来发现一个非常不错的资源,就是IOS Library中的Sample code,基本掌握Xcode后直接从这些samples的code入手,debug->code->document,这样的

2013-01-11 14:44:22 11299

原创 从Samples中入门IOS开发(一)------ XCode上手

为了能更快速地阅读和调试IOS源码,上手XCode是第一步,总的来说XCode相比Eclipse要封闭许多,并且传承Apple的设计理念,看起来很简单的开发工具,复杂功能都藏得很深。试用了几天,谈不上完全上手,但感觉掌握以下几点后(基于Eclipse的使用经验),基本上能比较顺手地阅读和编写IOS代码:多tab页编辑模式初次使用xcode会被多种辅助编辑器给搞迷惑,不同的模块是需要不同的辅助编辑器

2013-01-10 09:59:17 9117 1

原创 心胸有多大事就能做多大

歇了一两年,最近又开始躁动。以前公司的兄弟和领导得知我想动的时候,都向我抛来了橄榄枝,这真有点让我受宠若惊。不过,从这一点上我让深有感悟的是,做一个伟大的公司,或领导一个伟大的团队,一定要有这种心胸,容得下之前出走的弟兄再回来,也得让出去了的弟兄们若干年之后还惦记着你的好,这才是成功之道。这次和老板谈离职,也让我感受到了这一点,老板得知是为了更好的发展而动时,只是帮我分析这个机会的利与弊,而没有带

2013-01-09 15:05:38 10119 6

原创 从几个sample来学习Java堆,方法区,Java栈和本地方法栈

最近在看《深入理解Java虚拟机》,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构:感觉有必要通过几个实在的例子来加深对这几个区域的了解1)Java堆所有对象的实例分配都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节,sample如下所示:public class HeapOOM { s

2012-12-12 09:29:36 43483 7

原创 Chrome extension的manifest_version升级过程几个棘手问题的解决方法

之前基于Jquery mobile做了一个Chrome app,就在要给客户做showcase的时候,chrome强制升级manifest_version到2(http://developer.chrome.com/extensions/manifestVersion.html),而这个version基于安全考虑做了一些限制,导致我的chrome app无法运行,具体限制可见:http://dev

2012-11-27 11:39:17 5297

原创 推荐近年来印象最深的几本书

1. 浪潮之巅推荐理由:帮助我们从程序员这样的小角色跳出来,以更宽视角重新认识我们从事的这个行当,只有吴军这样的大师才能写出这样的巨著2. 数学之美推荐理由:吴军又一本让我痴迷的书,要是当年读了这本书,不至于枉费4年数学系的生涯3. JAVA并发编程实践推荐理由:唯一的一本把并发编程这个比较晦涩的领域讲得这么透彻的书,让我在java的功力提升一个档

2012-11-08 14:57:12 10428 5

原创 Prezi实战 ------ 一款颠覆性的做presentation的软件

前天遇到一款软件叫prezi,让我兴奋地晚上睡不着觉,用它可以很轻松地做出具有颠覆性的presentation简报,废话不多说,来看看我花了一天的功夫做的成品(正好明天有个分享需要做):http://prezi.com/rkjumcjeeo4w/teamforge-vs-alm-ali/官方网站还有更多更炫的samples: http://prezi.com/explore/如果和我一

2012-09-24 15:55:04 30792 1

原创 跨平台移动开发实战(十二)------HTML5安全

把应用的端扩展到mobile自然而然会带来安全的隐患,特别是对于我们基于HTML5来做跨平台的开发更是如此。HTML5提供了很多特性,各个平台都在努力的实现这些特性,开发者也努力地在使用这些特性,以此求得不一样地体验。然而,事情都有两面性,大多数web应用的安全措施都是基于传统的HTML,没有覆盖到HTML5的新特性,下面来看看由于HTML5新特性而带来的安全隐患:XSSCORS & CS

2012-08-06 23:05:06 8450 1

原创 跨平台移动开发实战(十一)------各平台(chrome+android+ios+webos)上的项目结构

由于需要在把应用打包成各平台上的native app,所以需要按照各个平台的项目结构来组装应用,所以虽然主体程序都是基于HTML5开发,但依然需要在各个平台上都构建一套项目,下面介绍一下我开发的这么几个版本的项目结构:ChromeAndroidIOSWebos1)ChromeChrome非常简单,标准的HTML代码结构,只不过添加一个manifest.json描述文件,就能使其成为

2012-08-02 16:25:03 5721

原创 跨平台移动开发实战(十)------与native集成

现在各大平台群雄逐鹿,推出各种让人炫目的feature,基于HTML5开发最大的弊病就是无法享受最新最炫的native feature和性能问题,而Phonegap的价值就在于此,它就是为了让你既能基于HTML5享受跨平台的便利,又能享受native的feature。因此,这里就通过对phonegap的分析,来看看如何能更好地让HTML5长在native上。分析完phonegap在三大平台上的

2012-07-25 19:55:27 5310

原创 phonegap源码分析(三)------ IOS

几个月前看过phonegap在Android和WP上的实现源码,当时苦于没mac环境,直到现在才抽出时间学习了一下phonegap是如何让JS与native串联起来的。phonegap在IOS上和在WP很类似,由于IOS App内置的WebBrowser提供了比较好的与JS的互通机制,所以整个代码读起来比较轻松,架构图如下所示:其中有这么几个点值得强调一下:Phonegap I

2012-07-25 16:13:57 14141 2

原创 跨平台移动开发实战(九)------移动端本地存储方案

虽然数据都有Server端提供,但移动程序开发一般都需要支持offline使用模式,因此需要移动客户端本地存储数据,我按数据类型不同分为三种实现方案:简单数据(key-value):HTML5 Web Storage复杂数据(SQL):HTML5 Web SQL Database二进制文件(File):File API & Phonegap plugin1)简单数据(key-val

2012-07-23 17:32:51 7578

原创 跨平台移动开发实战(八)------移动客户端网络通信

服务器端搭建好后,移动客户端就需要基于HTTP和Websocket来和服务器端通信,HTTP就基于Ajax来实现,Websocket就得靠各个移动平台浏览器对Websocket的支持,基本的开发大家查查文档就比较容易掌握,这里我着重谈三点:Ajax安全策略移动平台对Websocket的支持文件传输1)Ajax安全策略大家都知道Ajax存在跨域的限制,而基于Phonegap的离线开发

2012-07-22 22:45:32 7010

原创 跨平台移动开发实战(七)------服务器端快速搭建

客户端与服务端基于HTTP和WebSocket网络协议来通讯,其中HTTP用于从客户端向服务端的请求,WebSocket用于从服务端向客户端的推送,因此服务器端需要支持HTTP和WebSocket两种协议。HTTP好说,所有Web服务器都支持,而支持WebSocket的倒不多。Java阵营:Tomcat 7和Netty.Net阵营:System.Net.WebSocketsNodejs阵营

2012-07-21 15:54:11 12930 1

原创 跨平台移动开发实战(五)------基于Jquery mobile开发UI的核心要素

Phonegap不管UI这块,并且既然选择HTML5作为技术路线,那么就不能基于各个平台的UI库来开发界面,因此选择一个基于mobile的HTML5 UI框架就显得非常重要了。Phonegap官方网站提供了一个选择列表,基本上涵盖了能够和Phonegap集成并且非常主流的开源框架:http://phonegap.pbworks.com/w/page/36767911/UI%20Developmen

2012-07-21 11:40:10 15718 1

原创 跨平台移动开发实战(六)------Jquery mobile的动态化

由于页面的控制和展现都放在了mobile客户端,所以UI的动态化就需要通过JS在客户端完成。针对JQM的动态化,主要用到以下两个技术:JQM组件动态修改界面模板化1)JQM组件动态修改常常需要动态修改JQM某些组件的显示,由于它有独立与JQuery的自制组件渲染机制,所以修改DOM后需要额外的措施才能refresh界面显示,JQM这块做得不太友好,每个组件的方式不一样:Te

2012-07-21 11:02:51 12707 2

原创 跨平台移动开发实战(四)------Android开发环境网络连通解决方案

Android的开发环境环境搭建比IOS简单得多,Eclipse+Android SDK+Eclipse插件即可满足需求,如果搭建环境我就不多提了,这里想着重提两点:Android源码关联device与server网络连通如何关联Android源码,以便更好的使用API,可以参考我之前很早的一篇blog:《在Eclipse里关联Android源码的简单办法》。这里就重点谈谈如何搭建

2012-07-18 10:28:58 7987

原创 跨平台移动开发实战(三)------HTML5开发环境搭建

跨平台移动开发实际上就是基于HTML5开发软件界面和主要的业务逻辑,因此一套完善的基于移动平台的HTML5开发环境是非常有必要的。这里我主要的关注点是以下四点:Javascript和Jquery mobile的编辑器HTML5的各个元素的InspectorJavascript远程断点debug移动平台Javascript开发模式1)Javascript和Jquery mobile的编辑

2012-07-17 14:47:39 27398

原创 跨平台移动开发实战(二)------IOS开发环境搭建

首先我想提一下既然是跨平台的方案,还为什么要搭建各个平台的开发环境。Phonegap+HTML5的方案不是搞出一个在任何平台都能无需编译就能运行的package,而是一种能让Javascript与native相整合的方案,因此基于它做出的软件包依然是具有各个平台特性的package,只不过里面大部分的业务逻辑都是基于Javascript来开发的,但不代表所有,所以需要在各个平台的开发环境上来编译调

2012-07-15 10:20:50 19145

原创 跨平台移动开发实战(一)------总体架构和技术路线

最近两个月以来工作之余一直在做一件事情,就是把现在的产品移植到各主流移动平台上。其实需求很简单,就是想让现有的产品能在各大移动平台上有个端,让客户能移动办公。这个需求大概也是个大众化普遍的需求,于是乎就饶有兴趣地把它当作一个主题比较深入地研究了一下。两个时间自己没事儿就倒腾一下,做了一个像模像样的产品,并覆盖到IOS、Andriod、WebOS、Chrome和Windows Phone(还在开发中

2012-07-14 18:18:37 16384 3

原创 在AMD的WIN7上搭建IOS开发环境(mac 10.6.8 + xcode 4.2)

最近需要开发一个Mobile应用的IOS版本,需要搭建IOS开发环境,可在LP那里申请预算买Mac本失败,只好采用虚拟化的方式先搭Mac操作系统,然后再装xcode+IOS SDK,在这里也深深的抱怨一下Apple的封闭,把IOS的开发环境和Mac强绑定,更可恶的是版本也是严格匹配,要不是任务在身鬼他妈的想碰Apple这一套,不说废话,这里把整个搭建过程记录下来,免得以后忘记,也方便其他兄弟少走弯

2012-07-04 16:56:32 40146 38

提示
确定要删除当前文章?
取消 删除