移动云
文章平均质量分 74
cutesource
这个作者很懒,什么都没留下…
展开
-
浅谈阿里All in无线的看法
上周五老陆给我们讲了阿里All in的战略,让我有点情绪激动,有点看到曙光的感觉,也深感庆幸年初转向无线领域的正确性。之前读《浪潮之巅》感觉任何伟大的公司都有可能有衰落的一天,比如A&T、HP、Nokia和Moto,现在互联网时代更加加速了这个衰败过程,以至于阿里在这个看上去的盛世就开始感到危机重重,几位老大寝食难安,深感如果不在无线上站稳脚跟就等于步入死亡,并且死期不远。原创 2013-10-22 23:07:55 · 18712 阅读 · 5 评论 -
从Samples中入门IOS开发(四)------ 基于socket的网络编程
SimpleNetworkStreams展示了如何基于Socket网络编程,实现了一个很典型的局域网内网络数据传输的场景,一个是client向server端发送本地的图片文件,另一个是client向server端下载图片到本地文件。抽取出来的一般流程:server开启socket监听此处IOS的一般做法是三步走:第一步:创建系统级的socket,并绑定端口 port = 0;原创 2013-01-14 10:34:11 · 18577 阅读 · 0 评论 -
从Samples中入门IOS开发(三)------ 文档浏览
IOS提供了对各种文档(PDF, PPT, word, txt, jpg等)的浏览功能,这个非常使用,因为我们难免需要app里浏览各种文档。官方的Sample code DocInteraction展示了如何在IOS浏览各种格式的文档。本Sample非常简单,在tableview里列出了预定的和制定目录下的文档列表,点击某个文档时,能切换view并预览文档内容:从这个sample里能学到的关键点是原创 2013-01-12 17:32:40 · 12147 阅读 · 0 评论 -
从Samples中入门IOS开发(二)------ CURD
这段时间在想办法入门IOS native的开发,想找一个比较快速有效的办法,看书或者看文章都不太合适,主要是现在确实没有这么好的书能让你看完后就完成了从Java转到IOS的跨越,并且看完后就容易忘记,不深刻。后来发现一个非常不错的资源,就是IOS Library中的Sample code,基本掌握Xcode后直接从这些samples的code入手,debug->code->document,这样的原创 2013-01-11 14:44:22 · 11466 阅读 · 0 评论 -
从Samples中入门IOS开发(一)------ XCode上手
为了能更快速地阅读和调试IOS源码,上手XCode是第一步,总的来说XCode相比Eclipse要封闭许多,并且传承Apple的设计理念,看起来很简单的开发工具,复杂功能都藏得很深。试用了几天,谈不上完全上手,但感觉掌握以下几点后(基于Eclipse的使用经验),基本上能比较顺手地阅读和编写IOS代码:多tab页编辑模式初次使用xcode会被多种辅助编辑器给搞迷惑,不同的模块是需要不同的辅助编辑器原创 2013-01-10 09:59:17 · 9301 阅读 · 1 评论 -
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 · 8135 阅读 · 0 评论 -
跨平台移动开发实战(十)------与native集成
现在各大平台群雄逐鹿,推出各种让人炫目的feature,基于HTML5开发最大的弊病就是无法享受最新最炫的native feature和性能问题,而Phonegap的价值就在于此,它就是为了让你既能基于HTML5享受跨平台的便利,又能享受native的feature。因此,这里就通过对phonegap的分析,来看看如何能更好地让HTML5长在native上。分析完phonegap在三大平台上的原创 2012-07-25 19:55:27 · 5507 阅读 · 0 评论 -
phonegap源码分析(三)------ IOS
几个月前看过phonegap在Android和WP上的实现源码,当时苦于没mac环境,直到现在才抽出时间学习了一下phonegap是如何让JS与native串联起来的。phonegap在IOS上和在WP很类似,由于IOS App内置的WebBrowser提供了比较好的与JS的互通机制,所以整个代码读起来比较轻松,架构图如下所示:其中有这么几个点值得强调一下:Phonegap I原创 2012-07-25 16:13:57 · 14277 阅读 · 2 评论 -
跨平台移动开发实战(五)------基于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 · 16032 阅读 · 1 评论 -
从Samples中入门IOS开发(五)------ 基于HTTP的网络编程
上一篇讲的是如何通过socket进行网络传输,实际上对于互联网上的资源,我们更多的是基于http来开发,SimpleURLConnections展示了如何基于http来进行数据传输,这里主要是讲client如何向http服务器请求和传输数据,http服务器端的实现不在此例子范围之内,实际上就是普通的http服务器。从本例中主要能学到三点:基于Get下载文件基于Put上传文件基于Post上传文件基于原创 2013-01-14 13:56:59 · 12314 阅读 · 0 评论 -
从Samples中入门IOS开发(六)------ Photo和Album浏览
MyImagePicker展示了如何调用系统Photo和Album,并在自定义的UI中进行浏览,而这个也是很大众化的需求。先看看这个例子的使用流程:对于这个Sample,我主要关注两个关键点:调用系统Photo和AlbumUI组件的嵌套和组合调用系统Photo和AlbumIOS提供了类ALAssetsLibrary来取得Photo下面的资源(photo, album, video等),它的主要调用原创 2013-01-15 11:28:16 · 11655 阅读 · 1 评论 -
探索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 · 104942 阅读 · 20 评论 -
浅谈zygote服务中的设计思路
zygote服务是Android启动和服务APK的核心服务,每个APK都是通过zygote启动,今日阅读它的源码学习到一个不错的设计思路。首先看看一个APK通过zygote的启动流程:按照一般的设计思路,既然每个APK都是由单独的dalvik启动和运行,那么直接通过dalvikvm启动main不就完了吗?为啥还要搞得这么长一串流程。其实关键就在于这个Fork。我们看看对于linux启动一个进程的一原创 2013-09-30 13:30:28 · 7771 阅读 · 0 评论 -
云OS开发者平台重新上路
好久没写blog,越深入的做WebOS越对这个领域表示敬意,不敢乱写东西班门弄斧。最近一直潜心做云OS开发平台和工具,意在打造云OS的生态系统,路还很长,不过已迈出一小步,developer.yunos.com已上线,问题多多但总算迈出这一步,想做的事情太多,但只能一步一步来。后续打算把打造这个平台的点点滴滴和成长历程记录下来,给意在打造一个开发者平台的朋友一些参考。原创 2013-08-28 14:51:00 · 8750 阅读 · 5 评论 -
查看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 · 26455 阅读 · 4 评论 -
探索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 · 14174 阅读 · 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 · 18267 阅读 · 0 评论 -
探索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 · 17177 阅读 · 2 评论 -
基于libevent, libuv和android Looper不断演进socket编程
最近在做websocket porting的工作中,需要实现最底层socket读和写,基于同步读,libevent, libuv和android Looper都写了一套,从中体会不少。1)同步阻塞读写最开始采用同步阻塞读写,主要是为了快速实现来验证上层websocket协议的完备性。优点仅仅是实现起来简单,缺点就是效率不高,不能很好利用线程的资源,建立连接这一块方法都是类似的,主要的区别是在如何原创 2013-05-24 17:33:57 · 17001 阅读 · 4 评论 -
探索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 · 27118 阅读 · 10 评论 -
跨平台移动开发实战(九)------移动端本地存储方案
虽然数据都有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 · 7943 阅读 · 0 评论 -
跨平台移动开发实战(八)------移动客户端网络通信
服务器端搭建好后,移动客户端就需要基于HTTP和Websocket来和服务器端通信,HTTP就基于Ajax来实现,Websocket就得靠各个移动平台浏览器对Websocket的支持,基本的开发大家查查文档就比较容易掌握,这里我着重谈三点:Ajax安全策略移动平台对Websocket的支持文件传输1)Ajax安全策略大家都知道Ajax存在跨域的限制,而基于Phonegap的离线开发原创 2012-07-22 22:45:32 · 7211 阅读 · 1 评论 -
基于引擎开发HTML5游戏实战(五)---游戏部署
STEP6 部署web以web的方式就需要有个服务端来存放打包出来的html,可以考虑dropbox或者像amazon ec2,google appengine这样的云服务。1)construct2里export项目,export for: HTML5 web site2)把export的目录里的文件上传到dropbox或amazon ec2的web服务器里由于dropbo原创 2012-03-03 23:05:33 · 15187 阅读 · 5 评论 -
基于引擎开发HTML5游戏实战(四)---组织游戏逻辑
STEP5 添加行为和事件这个部分是导演游戏故事情节,也是最复杂的一部分,construct2通过behavior和event sheet来设计游戏逻辑。添加行为1)首先是添加英雄的行为:各个方向的移动屏幕随着英雄的移动而移动英雄不能越过屏幕背景的边境单击英雄-> 在properties面板上edit behavior->添加以上三个行为:2)然后添原创 2012-03-03 23:02:41 · 7690 阅读 · 2 评论 -
基于引擎开发HTML5游戏实战(三)---组织游戏元素
STEP3 设计游戏UI这也是游戏制作的重中之重,当然这也是很多草根团队最犯难的,大家大多都是程序员出生,没几个能徒手设计出游戏级别的素材。这一个只能去找专业的UED,再个得靠平时的收集。下面是本次实战要用到的素材:背景:英雄:怪兽:子弹:爆炸:下载这些图片用于后面制作STEP4 制作背景和添加游戏元素这个部分是招演员和布置场景1)新原创 2012-03-03 23:00:54 · 7699 阅读 · 2 评论 -
基于引擎开发HTML5游戏实战(一)---游戏引擎
最近从一个技术沙龙活动中了解到一个游戏引擎(construct2), 这款引擎彻底地改变了游戏开发在我心目中的印象。以前看过一些游戏开发的书籍,基本上都是从canvas,从坐标系讲起,再加上复杂地绘图编程,使得我不 敢对游戏开发有所奢望,更别提那些大制作。但基于这款引擎让我在2个小时之内根据官方tutorial就能搞出一个看上去还不错的web游戏,并且不需要 一行代码,有点当年第一次接触ruby原创 2012-03-03 22:58:27 · 20854 阅读 · 0 评论 -
基于引擎开发HTML5游戏实战(二)---游戏剧本
STEP2 设计游戏情节体验基于引擎开发游戏之后,让我深切感受到,游戏=情节+美工+引擎,编程技术在里面不是决定性因素。一个游戏成功与否很关键的一点是导演和编剧,这和电影电视很类似。当然,两个小时之内不可能做出很复杂的东西,就做一个游戏界的helloworld: 英雄打怪兽。英雄可以发子弹打怪兽每个怪兽有五滴血怪兽追着英雄跑赢:英雄打光怪兽输:英雄碰到怪兽下面是最后成品的截图:原创 2012-03-03 22:59:58 · 7844 阅读 · 0 评论 -
小探移动设备上的语音识别
最近移动平台上有关语音识别的应用非常火爆,国外有siri和google voice search,国内有像挖财和UC浏览器等推出的语音输入和控制功能。今天也小试了吧,感觉这类技术已到了大规模应用的阶段。以前的手机上也有类似语音控制的功能,记得最早使用的Nokia 6630就有一个专门语音指令输入的按钮,但这类应用非常简单,只能是有限的指令匹配。而现在,由于云的加入,使得语音识别非常的准确,有让原创 2012-02-28 17:10:20 · 4282 阅读 · 2 评论 -
Geolocation背后的基本原理
LBS在移动设备和浏览器里已应用地非常广泛,基于API能很轻松地实现一些和地址位置有关的应用,但一直对这些API背后是如何获取使用者的位置信息却不得而知,今天花了时间粗浅地研究了一下:得到位置信息主要通过两种途径:GPS和WIFI1. GPSGPS基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。要达到这一目的,卫星的位置可以 根原创 2012-02-27 18:47:17 · 5538 阅读 · 0 评论 -
phonegap源码分析(一)------ android
Phonegap已把源码提交到apache,成为一个非常受关注的开源框架cordova,它的跨平台的特性有点当年Java的味道和势头,成为移动平台上比较主流的解决方案。今日品味了一下它在android端的源码,看看它到底是如何结合native和web的。首先我们总体上看看phonegap给我们提供的主要特性:在本地存储和渲染HTML以Native App的方式来运行用JS调用Nat原创 2012-03-06 15:02:19 · 23597 阅读 · 21 评论 -
phonegap源码分析(二)------ Windows Phone
接着研究phonegap在其他平台上的实现,今日看看Windows Phone(WP)。在WP上做JS和OS的互通比较简单,因为内置的WebBrowser提供了比较好的与JS的互通机制,包括JS调进来和回调JS,下面先看看架构图,和android非常类似:下面重点谈谈JS与WP OS的互通1)JS端调用WP端WP提供了WebBrowser.ScriptNotify Even原创 2012-03-08 15:21:12 · 8642 阅读 · 4 评论 -
在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 · 40523 阅读 · 38 评论 -
跨平台移动开发实战(十二)------HTML5安全
把应用的端扩展到mobile自然而然会带来安全的隐患,特别是对于我们基于HTML5来做跨平台的开发更是如此。HTML5提供了很多特性,各个平台都在努力的实现这些特性,开发者也努力地在使用这些特性,以此求得不一样地体验。然而,事情都有两面性,大多数web应用的安全措施都是基于传统的HTML,没有覆盖到HTML5的新特性,下面来看看由于HTML5新特性而带来的安全隐患:XSSCORS & CS原创 2012-08-06 23:05:06 · 8688 阅读 · 1 评论 -
跨平台移动开发实战(七)------服务器端快速搭建
客户端与服务端基于HTTP和WebSocket网络协议来通讯,其中HTTP用于从客户端向服务端的请求,WebSocket用于从服务端向客户端的推送,因此服务器端需要支持HTTP和WebSocket两种协议。HTTP好说,所有Web服务器都支持,而支持WebSocket的倒不多。Java阵营:Tomcat 7和Netty.Net阵营:System.Net.WebSocketsNodejs阵营原创 2012-07-21 15:54:11 · 13321 阅读 · 1 评论 -
跨平台移动开发实战(六)------Jquery mobile的动态化
由于页面的控制和展现都放在了mobile客户端,所以UI的动态化就需要通过JS在客户端完成。针对JQM的动态化,主要用到以下两个技术:JQM组件动态修改界面模板化1)JQM组件动态修改常常需要动态修改JQM某些组件的显示,由于它有独立与JQuery的自制组件渲染机制,所以修改DOM后需要额外的措施才能refresh界面显示,JQM这块做得不太友好,每个组件的方式不一样:Te原创 2012-07-21 11:02:51 · 12859 阅读 · 2 评论 -
跨平台移动开发实战(十一)------各平台(chrome+android+ios+webos)上的项目结构
由于需要在把应用打包成各平台上的native app,所以需要按照各个平台的项目结构来组装应用,所以虽然主体程序都是基于HTML5开发,但依然需要在各个平台上都构建一套项目,下面介绍一下我开发的这么几个版本的项目结构:ChromeAndroidIOSWebos1)ChromeChrome非常简单,标准的HTML代码结构,只不过添加一个manifest.json描述文件,就能使其成为原创 2012-08-02 16:25:03 · 5872 阅读 · 0 评论 -
跨平台移动开发实战(四)------Android开发环境网络连通解决方案
Android的开发环境环境搭建比IOS简单得多,Eclipse+Android SDK+Eclipse插件即可满足需求,如果搭建环境我就不多提了,这里想着重提两点:Android源码关联device与server网络连通如何关联Android源码,以便更好的使用API,可以参考我之前很早的一篇blog:《在Eclipse里关联Android源码的简单办法》。这里就重点谈谈如何搭建原创 2012-07-18 10:28:58 · 8134 阅读 · 0 评论 -
跨平台移动开发实战(三)------HTML5开发环境搭建
跨平台移动开发实际上就是基于HTML5开发软件界面和主要的业务逻辑,因此一套完善的基于移动平台的HTML5开发环境是非常有必要的。这里我主要的关注点是以下四点:Javascript和Jquery mobile的编辑器HTML5的各个元素的InspectorJavascript远程断点debug移动平台Javascript开发模式1)Javascript和Jquery mobile的编辑原创 2012-07-17 14:47:39 · 27890 阅读 · 0 评论 -
跨平台移动开发实战(二)------IOS开发环境搭建
首先我想提一下既然是跨平台的方案,还为什么要搭建各个平台的开发环境。Phonegap+HTML5的方案不是搞出一个在任何平台都能无需编译就能运行的package,而是一种能让Javascript与native相整合的方案,因此基于它做出的软件包依然是具有各个平台特性的package,只不过里面大部分的业务逻辑都是基于Javascript来开发的,但不代表所有,所以需要在各个平台的开发环境上来编译调原创 2012-07-15 10:20:50 · 19472 阅读 · 0 评论 -
跨平台移动开发实战(一)------总体架构和技术路线
最近两个月以来工作之余一直在做一件事情,就是把现在的产品移植到各主流移动平台上。其实需求很简单,就是想让现有的产品能在各大移动平台上有个端,让客户能移动办公。这个需求大概也是个大众化普遍的需求,于是乎就饶有兴趣地把它当作一个主题比较深入地研究了一下。两个时间自己没事儿就倒腾一下,做了一个像模像样的产品,并覆盖到IOS、Andriod、WebOS、Chrome和Windows Phone(还在开发中原创 2012-07-14 18:18:37 · 18094 阅读 · 3 评论