Posts

Showing posts with the label symbian

Create the assembly listing of cpp file on Symbian

go ot group folder where bld.inf file is stored.for example, cd \uiqsrc\qapps\sharedui\qcontactssharedui\group > abld reallyclean > abld makefile armv5  > abld listing armv5 urel QContacUI ContactsListBoxModel The final two arguments are the MMP and CPP names for the function you want to look at The final output is: Created [...]\contactslistboxmodel.ARMV5.lst. And the .lst file is one we're interested in

Status pane of S60

Image
The status pane consistes of five sub-panes. If changing the theme, the influence is following: Background bitmap for the entire pane can be changed Signal pane: Foreground color and the bitmap can be changed Battery pane: Foreground color and the bitmap can be changed Context pane: The bitmap (that is, application icon) can be changed Title pane: Foreground color can be changed Universal Indicator pane: Foreground color can be changed Navi pane: Foreground color can be changed

CTextResolver把错误码转换为错误描述

S60提供的CTextResolver类可以把错误码转换为错误描述,这样我们就不用输出那些不好懂的数字,不用一直开着帮助去查询错误码的意思了。 Here's a demo. FYI TInt err = xxx //error code iErrRe = CTextResolver::NewL(); TInt resourceID = 0; TUint flags = 0; TPtrC errstr = iErrRe ->ResolveErrorString(err,resourceID,flags,Context); if ( !(flags & ETextResolverBlankErrorFlag) ) { //handle error string } CErrorUi就是嵌套了这个类!!

AdMob认为Apple, Nokia主导世界手机市场

Image
1〉09年,智能手机只占到了手机总数的19% (发展空间巨大阿) 2〉Symbian OS在亚洲和非洲市场处于主导地位;在东欧和拉丁美洲占据较大的市场份额 3〉iPhone OS占据了北美、澳大利亚、西欧以及大西洋周边地区 4〉Android 在北美和西欧市场有显著增长 5〉2009年Q4全球智能手机os市场,iPhone 51%,Symbian 21%,Android 16%(注意:2008年Q4仅为1%) 6〉2009年Q4亚洲智能手机os市场,Symbian 69%, iPhone 27% AdMob公司向手机平台上的发布商出售文字和旗帜广告,同时AdMob还追踪并记录各品牌手机、移动设备在全球各地的使用情况。关于AdMob的详细信息参见: http://www.admob.com/home/about

how to create a global singleton object in exe

// how to create a global singleton object const TInt KMarkTlsHandle = 0xC0FFEE; class CYourClass: public CBase { public: CYourClass(){}; void ConstructL(){}; ~CYourClass(); }; CYourClass::~CYourClass() { //release TLS UserSvr::DllFreeTls(KMarkTlsHandle); } //how to create a global singleton object void CMarkEComWrapper::DoCommandCreateSingletonObject() { TInt err = KErrNone; //Get object from STL CYourClass* iSingletonObject = static_cast (UserSvr::DllTls(KMarkTlsHandle)); //if not, create one if (!iSingletonObject) { iSingletonObject = new (ELeave) CYourClass; CleanupStack::PushL(iSingletonObject); iSingletonObject->ConstructL(); err = UserSvr::DllSetTls( KMarkTlsHandle, iSingletonObject ); CleanupStack::Pop(iSingletonObject); } delete iSingletonObject ; iSingletonObject = 0; }

使用Sqlitecc查看symbian sql 数据库

Image
在symbian OS 9.5 上提供了sqlite api,用这些api 生成的数据库可以用sqlitecc打开。 sqlitecc是图形界面,可以在其中修改数据,很方便、直观 首先需要从sourceforge上下载sqlitecc, http://sqlitecc.sourceforge.net/ 然后直接可以打开。打开后界面如下

WLAN研究起步

wlan的物理特性   WLAN利用电磁波在空气中发送和接受数据,而无需线缆介质。WLAN的数据传输速率现在已经能够达到11Mbps,传输距离可远至20km以上。 wlan的好处   安装便捷:一般在网络建设当中,施工周期最长、对周边环境影响最大的就是网络布线的施工了。在施工过程时,往往需要破墙掘地、穿线架管。而WLAN最大的优势就是免去或减少了这部分繁杂的网络布线的工作量,一般只要在安放一个或多个接入点(Access Point)设备就可建立覆盖整个建筑或地区的局域网络。   使用灵活:在有线网络中,网络设备的安放位置受网络信息点位置的限制。而一旦WLAN建成后,在无线网的信号覆盖区域内任何一个位置都可以接入网络,进行通讯。   经济节约:由于有线网络中缺少灵活性,这就要求网络的规划者尽可能地考虑未来的发展的需要,这就往往导致需要预设大量利用率较低的信息点。而一旦网络的发展超出了设计规划时的预期,又要花费较多费用进行网络改造。而WLAN可以避免或减少以上情况的发生。   易于扩展:WLAN又多种配置方式,能够根据实际需要灵活选择。这样,WLAN能够胜任只有几个用户的小型局域网到上千用户的大型网络,并且能够提供像"漫游(Roaming)"等有线网络无法提供的特性。   由于WLAN具有多方面的优点,其发展十分迅速。在最近几年里,WLAN已经在医院、商店、工厂和学校等不适合网络布线的场合得到了广泛的应用。 wlan的危害   电磁波辐射    还有人说会给公司和社团保密带来不利因素,因为wlan可以随时随地连接。 wlan的前景     据权威调研机构Cahners In-Stat Group预计,全球无线局域网市场将在2000年至2004年保持快速增长趋势,每年平均增长率高达25%。无线局域网市场的网卡、接入点设备及其他相关设备的总销售额也将在2000年轻松突破10亿美元大关,在2004年达到21.97亿美元。  

[FW]Polymorphic DLL UID summary

The following table summarises the UID usage for the common system-defined polymorphic DLLs: Description Usual extension UID2 UID3 required? application app KUidApp in apadef.h yes animation ani KWservAnimDllUid in w32adll.h no control panel applet ctl KUidSystemControlDll in apgctl.h yes ECom plug-in ECOMIIC 0x10009D8D yes front-end processor fep 0x10005e32 yes MIME recognizer mdl 0x10003A19 yes serial protocol module csy KUidUnicodeCommServerModuleV02 in cs_port.h no socket server protocol module prt KUidProtocolModule in es_prot.h yes Server-side MTM dll KUidMtmServerComponent in msvruids.h yes Client-side MTM dll KUidMtmClientComponent in msvruids.h yes UI MTM dll KUidMtmUiComponent in msvruids.h yes UI Data MTM dll KUidMtmUiDataComponent in msvruids.h yes

symbian上如何快速debug你的代码

     今天在一个blog(Exported classes and global functions in C:\Symbian\9.1\S30\epoc32\RELEASE\winscw\UDEB)上无意中看到: CTestConfig TESTCONFIGFILEPARSER.LIB CTestConfigItem TESTCONFIGFILEPARSER.LIB CTestConfigSection TESTCONFIGFILEPARSER.LIB RTestExecuteLogServ TESTEXECUTELOGCLIENT.LIB CTestExecuteIniData TESTEXECUTEUTILS.LIB CTestExecuteLogger TESTEXECUTEUTILS.LIB RTestServ TESTEXECUTEUTILS.LIB CTestServer TESTEXECUTEUTILS.LIB CTestSession TESTEXECUTEUTILS.LIB RTestSession TESTEXECUTEUTILS.LIB CTestStep TESTEXECUTEUTILS.LIB 我以前一直想当然地认为这些类没有被导出来,只有symbian的白金用户可以用。看来是错了。 有了这些类就可以写白盒测试程序。 其实这些类都属于一个叫tef的框架。这个框架的特点是: 脚本驱动 可以并行执行测试 支持客户/服务器模式 log 强大,可以是html/xml格式,显示结果很直观,比如是错误提示是红色显示 在模拟器上以text模式运行,执行很快 大体是可以这样实现:先从CTestServer 配生一个自己的server,他的主要工作是创建CTestStep配生对象;然后从CTestStep配生自己的test step,这个对象主要工作是描述test case,其实脚本engine就是按照这个描述执行的。

Carbide.c++ 2.0 免费下载

 Application developers are encouraged to install the Developer or Professional Edition. The OEM Edition is recommended for device manufacturers.   Supported new features and improvements Support for S60 5th Edition (in particular Touch UI and Platform Services). Addition of several Touch design components to the UI Designer tool. Users can touch-enable basic user interface applications using this graphical tool. Support for Qt development tools for S60 (expect updated Qt SDK’s next year) Improved connection and reporting for On-Device Debugging. Knowledgebase Scanner is a new addition to the CodeScanner static analysis tool. Knowledgebase Scanner scans the user’s code and provides advice for adding touch capabilities to existing applications. Improved speed and accuracy of code completion aids. Improved rendering for the Performance Investigator tool (Available in PRO and OEM Editions). http://www.forum.nokia.com/info/sw.nokia.com/id/dbb8841d-832c-43a6-be13...

TEF例子代码

 先给出一个脚本例子: START_TESTCASE TC1308200809_ACTIVE START_TEST_BLOCK 100 YinSymbianTestServer yinexample.ini CREATE_OBJECT HeapWatcherWrapper heap CREATE_OBJECT YinExampleWrapper2 wrapper2 COMMAND heap mark COMMAND wrapper2 NewL COMMAND wrapper2 Initialize COMMAND wrapper2 ActivateActiveObject OUTSTANDING COMMAND wrapper2 PrintInfo COMMAND wrapper2 Clean COMMAND heap markend END_TEST_BLOCK END_TESTCASE TC1308200809_ACTIVE 这个脚本执行结果: 09:36:56:705 09:36:56:705 TEST SYNOPSIS: TEF Version : 3.0.1003 START_TESTCASE COUNT : 1 START_TEST_BLOCK COUNT : 1 *** TestExecute Started 02/04/2009 09:36:56:705 *** 09:36:56:710 c:\yintest\yinutils.script LOAD_SERVER YinSymbianTestServer 09:36:56:785 c:\yintest\yinutils.script START_TESTCASE TC1308200809_ACTIVE 09:36:56:790 c:\yintest\yinutils.script Line = 30 Command = START_TESTCASE TC1308200809_ACTIVE 09:36:56:790 c:\yintest\yinutils.script START_TEST_BLOCK 100 YinSymbianTestServer c:\yintest\yinexample.ini 09:36:56:790 c:\y...

IPCv2实现机制

Image
IPC 是 Inter-Process Communication 的缩写,说的就是 client-server 框架。它可是 symbian OS 上的元老之一。在 Psion Series 5 上就已经实现了,直到 symbian OS v9.5 都在不断的改进扩展新的功能。 client-server 在 OS 上随处可见,比如 F32 (文件服务)、 ESOCK ( socket 服务)、大名鼎鼎的 WSERV ( window 服务)以及 ETEL (电话服务)等等。由于我现在使用 9.5 版本的 symbian os ,所以在这里只讨论 IPCv2 。老一点 IPCv1 就不专门说了。        从使用 client-server 的角度来看, developer 只需要关注 4 个接口类: CServer2 、 CSession2 、 RSessionBase 和 RSubSessionBase ,其中前两个类的实例运行于 user 端的 server 端,后两个类实际上是提供给 client 使用的接口,运行于 user 端的 client 端。由此可见 client-server 框架非常便利,它的工作过程可以大体描述为: 1.         client 使用全局唯一的 server 名字与 server 建立起连接,创建一个 session 。 2.         如果 server 没有启动,就启动之。 3.         server 一启动就是发出一个 request 检查 kernel 端消息队列是不是有待处理的消息。 4.         client 发送消息给 server 。实际上将消息放入到 kernel 端的消息队列中。 5.         client 等待消息的处理结果。 6.  ...

Syamiban Q&A (1)

1> 如何判断文件是否存在 有3个函数可以使用 ConeUtils::FileExists BaflUtils::FileExists RFs::Entry 第一个比第二个要方便些 2> 创建随机数     Math::Rand 3> symbian应用程序如何获得命令行参数 TBuf<KCommandLen> command;  // You determine the value of KCommandLen User::GetCommand(command);  // got it 对于eka2来说,这个是非常简单的

Symbian入门的资料

Basics: http://developer.symbian.com/main/documentation/symbian_cpp/symbian_cpp/ Development tips: http://developer.symbian.com/main/documentation/symbian_cpp/development_tips/ C++ examples: http://developer.symbian.com/main/documentation/example_app_code/cpp/ Booklets: Essentials: http://developer.symbian.com/main/documentation/booklets/essential.jsp Essential UI (includes location aware apps booklet): http://developer.symbian.com/main/documentation/example_app_code/cpp/ Books: http://developer.symbian.com/main/documentation/books/developer/ Others http://developer.symbian.com/main/downloads/papers/RBuf/Introduction_to_RBuf_v1.0.pdf