差沙的密码 -- SSHWSFC's code
阅读本Blog请自备塑料袋一只
posts - 14,  comments - 59,  trackbacks - 0
前些天去参加了Google的开发日活动,由于之后直接就去郊区所以一直没有时间写blog来谈谈感想。首先是google的OpenSocial,进入大厅签到之后转角过去就是个大网站的展台,每个柱子的一面是一个网站,都是OpenSocial的合作网站,有聚友,天际,天涯等。有幸跟聚友的CTO谭晓生先生和天际网的CTO郭应寿先生聊了聊OpenSocial使用中的益处和遇到的问题,感觉OpenSocial目前还是不太成熟,对比FB来说还有一定的差距,比如没有照片处理等等问题。而且我始终有一种感觉,OpenSocial是一个google的标准,但是各大网站在使用OpenSocial的时候几乎都会加上自己的扩展,这样下去,最终OpenSocial统一平台的目标很难实现,因为两个网站的Gidget几乎不能通用,这些问题OpenSocial的合作网站跟Google也在讨论中。另外得到的消息是,OpenSocial可能也会考虑出一套XXml,规范化OpenSocial的使用,并借此加强安全性。
稍后的OpenSocial专题topic中了解到了更多有关OpenSocial的信息,主要是Shindig了, 前一天还在跟白衣提议用ss做一个类似Shindig的东西,主要是做一个OpenSocial的实现,当时就想这玩意估计有了,但是没想到是host到apache了,在apache的孵化器中大家可以自己找找。会议的时候逮住了一个google的人问了一堆问题,过后才知道原来是google中国sns的负责人。
最大的收获实在是太意外了,在中午休息的时候,走过过道到楼下吃饭,突然发现一个熟悉的身影坐在角落里一个人在玩电脑,我晕是Andy Rubin,Android的老大。居然就坐在那里,而且旁边的人没有人在意他,要知道听android topic的人可不少呀,居然每一个人认出他来的。我叫了朋友确认一下,准备上前打招呼。刚上去打了个招呼,握了个手,又来了一个人,他一下认出Andy,并且跟Andy简短的交谈了一下。我提议先照个相,照相后简短聊下那个人就走了。过后Andy说那个人就是Google中国负责android的老大邸烁博士,我狂晕呀两位老大都让我给碰上了。稍候跟Andy聊了一下Android的发展,随后他掏出一个android的原型机,就是google IO大会上的那种机器。这里要说明的是,不管在模拟器上android的表现如何,在真机上你的体验绝对绝对是不一样的,太COOL了。尤其是第二屏的widget效果,还有那个street view效果,真机拿在手上体验就是不一样呀~~~~ 随后又了解到了一些android目前的发展情况,这里可以告诉大家的是,android是绝对值得期待的~!!!

posted @ 2008-06-15 13:03 差沙 阅读(2766) | 评论 (4)编辑 收藏

经过两天的努力,终于在Android上面跑起来MSN了。现在实现了基本的聊天功能,打算陆续的把其他功能完善,万事开头难,相信以后的工作会很顺利。


Gtalk的功能由于有官方支持,早就弄了跟这个差不多的版本。


另外,这个软件目前是以插件的形式开发,多一个协议就是多一个apk,实现一些intent即可。官方的IM包里面有很多支持,可惜文档没有提及。

 

Android中文论坛原帖

posted @ 2008-03-21 01:59 差沙 阅读(4167) | 评论 (2)编辑 收藏

今天看到Air1.0和Ext2.0.2的发布消息,很是兴奋,要知道Ext的每个版本升级都是很实惠的。

Ext2.0.2的这次升级主要是针对Air的支持,看来他们的关系是越来越近了,我也借机小试了一下Air。

简单说说Air的开发过程:

1.先要下载jre 和 airSDK

2.jre就不说了,airSDK也是简单的解压一下便可。

可以看看SDK下面的bin目录,一共俩文件,一个adl一个adt,adl是用来测试的,adt使用编辑发布的(ADT怎么让我想起来android了)

3.创建一个普通的目录作为项目目录。OK,可以写页面了。就是写html js flash什么的,都可。

4.编写一个xml文件,名字不限。内容嘛~~~~

看看这个文件,airSDK\templates\descriptor-template.xml 里面有详细的解释,拿过来改改即可,给一个例子:


<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/1.0.M6">
    <id>examples.html.HelloWorld</id>
    <version>0.1</version>
    <filename>HelloWorld</filename>
    <initialWindow>
        <content>HelloWorld.html</content>
        <visible>true</visible>
        <width>400</width>
        <height>200</height>
    </initialWindow>
</application>


5.运行airSDK\bin\adl.exe (那个创建的xml文件名),运行即可。

PS:我一般用eclipse来编辑,用外部命令的工具来运行adl,很方便。

简单的说了一下Air的开发方法后,我们来简单的看一下Ext都对Air提供了什么支持。

1.Ext.air.FileProvider

Ext提供状态保存的功能,在对AIr的支持中Ext实现了一个Provider,这个Provider把状态保存在本地目录的一个文件里。使用方法如下:


// Initialize the state provider
Ext.state.Manager.setProvider(new Ext.air.FileProvider({
	file: 'ext.state',
	// if first time running
	defaultState : {
		mainWindow : {
			width:400,
			height:200,
			x:10,
			y:10
		}
	}
}));


制定Provider为Ext.air.FileProvider即可,这个操作一般在onReady里面执行。当然需要你先创建一个ext.state文本文件,在程序根目录下即可。这样ext的应用运行时,窗口等大小的调整,位置之类的调整都能保存下来了。很方便。

这里包装的Air代码主要是:

air.File.applicationStorageDirectory.resolvePath

air.FileStream

2.Ext.air.NativeWindow

Ext可以调用Air实现Native的窗口。使用方法如下:


	var win = new Ext.air.NativeWindow({
		id: 'mainWindow',
		instance: window.nativeWindow,
		minimizeToTray: true,
		trayIcon: 'ext-air/resources/icons/extlogo16.png',
		trayTip: 'Simple Tasks',
		trayMenu : [{
			text: 'Open Simple Tasks',
			handler: function(){
				win.activate();
			}
		}, '-', {
			text: 'Exit',
			handler: function(){
				air.NativeApplication.nativeApplication.exit();
			}
		}]
	});


我们可以看到,其中最吸引人的是系统托盘的功能,可以方便的指定系统托盘的各种属性。

这里包装的主要是:

window.runtime.flash.html.HTMLLoader.createRootWindow

air.Screen.mainScreen.visibleBounds

3.Ext.sql.Connection

这个是重头戏,对db的支持,我们知道Air的DB是采用sqlite3来实现的。Ext封装了Air的db操作,简化统一了一些,而且提供了Store的支持,非常强大:

让我们简单看一下用法:

首先取得connection

var conn = Ext.sql.Connection.getInstance();

而后打开db

conn.open('ext.db');//这里的文件如果不存在会自动创建

创建Table


        conn.createTable({
            name: 'user',
            key: 'userId',
            fields: [
			    {name: 'userId', type:'string'},
			    {name: 'name', type:'string'},
			    {name: 'pwd', type:'string'},
			    {name: 'email', type:'string'}
			]
    	});

取得一个Table

var userDao = conn.getTable('user','userId');

查询

var users = userDao.select();//这里可以写条件式

添加


var newuser = {
    userId : 'sshw',
    name : 'sshwsfc',
    pwd : 'test',
    email : 'sshwsfc@gmail.com'
} 

userDao.insert(newuser);


感觉使用上还是蛮不错的,大家可以一点点试试看。

值得一提的是,在源码中发现Connection这里设计成了工厂的模式,Connection是一个伪接口,实现除了Air的还有GoogleGear的,会根据所处环境选择,灰常的好。

功能还在研究中,有心得了一点点给大家分享,

PS:打算搞一个iphone的信息管理软件练练手。反正都是sqlite的

posted @ 2008-02-26 13:49 差沙 阅读(4769) | 评论 (4)编辑 收藏
这家伙很懒,但起码还是写了一句话。

<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

常用链接

留言簿(8)

随笔分类

随笔档案

文章分类

搜索

  •  

最新评论

阅读排行榜

评论排行榜