转到正文

iT人 – theiter

关注IT技术,研究移动开发技术,记录IT人的生活

存档

标签: Symbian

导读 今天,苹果App Store模式在全世界被广泛学习,移动应用带动硬件销售已经被越来越多的人接受和认可;而谷歌推出的Android系统,以及与苹果截然相反的开放策略,给沉寂已久的手机市场带来了活力;苹果和谷歌并不是以手机终端起步也不是以之为主业的公司,但毫无疑问,在这个年末,智能手机市场已经达到了前所未有的火热地步,全新的移动互联网正扑面而来。

在这番移动开发的浪潮里,移动行业链条上的各个角色都已不只是承担其原有的职责,不管是终端硬件厂商还是移动运营商甚至原来PC端的软件开发商,都争先恐后的加入到移动应用开发的队列里,希望抓住这个机会,以得到更多的利益,提升自身的价值。

这份由VisionMobile网站发布的名为《开发者经济学2010及未来》报告追踪了移动开发的整个过程,通过它,我们能在一定程度上对目前移动应用开发的现状,包括从应用设计,平台选择到市场推广,商业化运营盈利,这几个环节有一个较为全面的认识和理解。

继续阅读

今天看到一则新闻关于微软手机葬礼:微软Windows Phone团队周五为自家的Kin、苹果的iPhone和RIM的黑莓举办了一次别开生面的葬礼,向世人宣示他们告别了自己的过去和对手的现在。

不管微软怎么做也罢,老实说在移动智能终端平台微软真的是落后了,当然之前的WindowsMobile就没有领先过。WPhone即将面世,但是我感觉WPhone真是有点落后啦,至少在时间表上已经落后了,别人已经做出来的东西已经玩了一年,甚至两年了,你现在才出来,除非在别人的基础上能有更多的创新之处,否则…

其实在我个人的理解中给手机分了几代,目前的iphone和Android在我看来应该是第三代手机。往前应该是曾经风光无限的Symbian和WindowsMobile,再往前就应该是非智能的普通手机。我这样划分的依据主要是从用户使用体验出发。在非智能手机时代,手机的主要功能还是以电话和短信为主,捎带着有一些小游戏和简单的娱乐功能(如拍个照,看个图片等),如果还要继续往前追溯到模拟移动电话时代(大哥大应该记得吧),那就纯粹的只有电话功能了。

进入智能手机时代,Symbian应该是鼻祖。这时的手机除了普通的电话应用之外有更为丰富的娱乐和办公功能。可能真正是在这个时候开始,大家才知道我们的手机也可以像PC一样拥有这么多丰富的应用。

如今可以说我们的手机已经进入了第三代。她们在用户体验上完全颠覆了以前的概念,个人觉得有如下几个特点比较鲜明:

  • 操作使用更为方便,炫酷
  • 输出信息更为丰富
  • 联网便捷网络资源应用丰富
  • 除了电话功能还能替代很大一部分PC所完成的工作
  • 一种系统支持更多样的终端(XPhone,xPad)

苹果是这个时代的开拓者,他们的创新为所有的厂商带来了一条全新的道路,因为苹果的创新精神;android应该是这个时代的王者,因为Google的开放和苹果的封闭。记得有句话现在很流行:苹果总是被模仿,但从来没有被超越。正是因为苹果的个性和创新,但是苹果总是走个性路线,只能为他的粉丝们所接受;而google也是在不断创新,但他是为芸芸众生服务,大多的普通老百姓都可以享受到。

今晚在整理文档的时候发现N久之前写的一个创建symbian工程的脚本,分享出来吧!希望能对大家的开发有点帮助。这组脚本主要是通过windows cmd创建支持2nd和3rd版本的各种工程文件。

可以直接调用Create*.bat生成对应的项目工程

目录结构:
    BuildTools            —-生成工程文件后编译工程的脚本
        build*.bat
    res                            —-生成工程的默认资源文件
        *.bmp
        *.svg                   
    Create*.bat            —-直接调用生工程的脚本
    v*.bat                    —-供Create*.bat调用的脚本

 

点击这里下载CreateS60Prj (199)

详细的使用请参考readme.txt!

Symbian Foundation表示,从2010年2月4号起,Symbian将开源其绝大部分软件,用户将可免费下载。

Symbian Foundation基金会创建于2008年,是最大的Symbian系列软件制造者,现已被手机制造商诺基亚收购。

虽然目前Symbian软件全球有超过3.3亿的用户,但在技术和市场份额上面临来自苹果iPhone和谷歌Android的强力竞争,因此诺基亚决定开源并免费提供Symbian OS,此举明显是为提高其智能手机市场占有率、影响力和使用率。

这种通过免费来推广使用的做法在IT科技行业并不少见。谷歌的Android就是免费的。

Symbian Foundation执行董事Lee Williams表示,目前Symbian操作系统仍占统治地位,而从现在开始,大部分开发人员将因此可以做的更多。

iPhone火了;GPhone来了;WM计划WM7了;Symbian也慢慢开源了……

移动平台越来越热闹,竞争也越来越激烈。但是这些对于消费者来说总是好的,我们将会用到更多元化的产品。对开发者来说也是好事,可选择的平台也越来越多。期待在移动开发领域有更广阔的空间!!

另外,有兴趣的朋友可以到Symbian开发者网站(http://developer.symbian.org)下载相关的源码,那里也有很多其他代码,或许你感兴趣。

如果程序中需要配置文件(如保存进度,声音等)那可以使用ini文件来处理,同MFC一样也有专门处理配置文件的API,这就是OpenIniFileLC(RFs& aFs)。

首要的一条,你的程度要支持ini文件,那就要重载这个CEikApplication的成员函数,否则程序执行起来会报错,而重载时只要如下语句即可:

CDictionaryStore* CMyApp::OpenIniFileLC(RFs& aFs) const
{
 return CEikApplication::OpenIniFileLC(aFs);
}

这样的话,程序可以在你启动时自动的创建一个ini——如果检测到没有的情况下。而这个ini一般是创建在C:\System\App\MyApp目录下的,注意即使用户选择安装在E盘,那还是会把ini安装在系统盘上,SDK说明这个默认盘符是放在KIniFileDrive里,但我还没有找到办法如何去修改它,如果你知道了告诉我一声哦:)

一般配制文件要供全局使用,可能要跨越多个view,因此我们把它的操作及数据定义在UI级别,在MyAppUi的ConstructL()函数中有如下语句:

//处理基本的数据

delete iMyConfig;
iMyConfig = CMyConfigData::NewL();   CDictionaryStore* store = Application()->OpenIniFileLC(iCoeEnv->FsSession());
if (store->IsPresentL(KUidKey))
{
 LoadIniFile(store);
}
else
{
 iMyConfig->SetDefault();
 SaveIniFile(store);
}
CleanupStack::PopAndDestroy();
//--结束处理   void CMyAppUi::SaveIniFile(CDictionaryStore* aStore)
{
 RDictionaryWriteStream out;
 out.AssignLC(*aStore, KUidKey);
 out << *iMyConfig;
 out.CommitL();
 CleanupStack::PopAndDestroy();
 aStore->CommitL();
}   void CAknExSettingListAppUi::LoadIniFile(CDictionaryStore* aStore)
{
 RDictionaryReadStream in;
 in.OpenLC(*aStore, KUidKey);
 in >> *iMyConfig;
 CleanupStack::PopAndDestroy();
}

当然具体的CMyConfigData里还要有一些相应的导入导出处理,这样才完美:)

有时候我们还需要在程序中处理一下配置的保存,那我们可以使用如下代码(在view中):

CDictionaryStore *IniFile = AppUi()->Application()->OpenIniFileLC(CCoeEnv::Static()->FsSession());   RDictionaryWriteStream WriteStream;
WriteStream.AssignLC( *IniFile, KUidKey );
WriteStream << *iData;
WriteStream.CommitL();
CleanupStack::PopAndDestroy();   IniFile->CommitL();
CleanupStack::PopAndDestroy();

把它放在一个函数中即可:)

最后要说明的是,如果不在pkg里有明确说明,那保存在系统盘上的ini在程序被删除后是不会丢失的,这就造成了垃圾文件,我们只需要在pkg中加入下面一句就可以彻底删除这些:

Remove INI file when uninstalling the app.

"" – "C:\system\apps\MyApp\MyApp.ini", FN

FN表明这个文件在程序运行时才生成,现在为空。前面用的是""。

Retrieved from "http://wiki.forum.nokia.com/index.php/%E5%85%B3%E4%BA%8Eini%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8"