- 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
Create the assembly listing of cpp file on Symbian Thursday, January 20, 2011
Posted by Unknown at 2:42 PM 0 comments
Status pane of S60 Wednesday, November 17, 2010
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
Posted by Unknown at 3:55 PM 0 comments
CTextResolver把错误码转换为错误描述 Wednesday, February 3, 2010
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就是嵌套了这个类!!
Posted by Unknown at 4:09 PM 0 comments
Labels: symbian
AdMob认为Apple, Nokia主导世界手机市场 Monday, January 25, 2010
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
Posted by Unknown at 3:15 PM 0 comments
how to create a global singleton object in exe Monday, January 11, 2010
// 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
//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;
}
Posted by Unknown at 5:07 PM 0 comments
Labels: symbian
使用Sqlitecc查看symbian sql 数据库 Tuesday, October 13, 2009
在symbian OS 9.5 上提供了sqlite api,用这些api 生成的数据库可以用sqlitecc打开。
sqlitecc是图形界面,可以在其中修改数据,很方便、直观
首先需要从sourceforge上下载sqlitecc,http://sqlitecc.sourceforge.net/
然后直接可以打开。打开后界面如下
Posted by Unknown at 10:03 AM 0 comments
WLAN研究起步 Monday, October 12, 2009
- wlan的物理特性
- wlan的好处
安装便捷:一般在网络建设当中,施工周期最长、对周边环境影响最大的就是网络布线的施工了。在施工过程时,往往需要破墙掘地、穿线架管。而WLAN最大的优势就是免去或减少了这部分繁杂的网络布线的工作量,一般只要在安放一个或多个接入点(Access Point)设备就可建立覆盖整个建筑或地区的局域网络。
使用灵活:在有线网络中,网络设备的安放位置受网络信息点位置的限制。而一旦WLAN建成后,在无线网的信号覆盖区域内任何一个位置都可以接入网络,进行通讯。
经济节约:由于有线网络中缺少灵活性,这就要求网络的规划者尽可能地考虑未来的发展的需要,这就往往导致需要预设大量利用率较低的信息点。而一旦网络的发展超出了设计规划时的预期,又要花费较多费用进行网络改造。而WLAN可以避免或减少以上情况的发生。
易于扩展:WLAN又多种配置方式,能够根据实际需要灵活选择。这样,WLAN能够胜任只有几个用户的小型局域网到上千用户的大型网络,并且能够提供像"漫游(Roaming)"等有线网络无法提供的特性。
- wlan的危害
- wlan的前景
Posted by Unknown at 12:59 PM 0 comments
[FW]Polymorphic DLL UID summary
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 |
Posted by Unknown at 11:06 AM 0 comments
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 |
有了这些类就可以写白盒测试程序。 其实这些类都属于一个叫tef的框架。这个框架的特点是:
- 脚本驱动
- 可以并行执行测试
- 支持客户/服务器模式
- log 强大,可以是html/xml格式,显示结果很直观,比如是错误提示是红色显示
- 在模拟器上以text模式运行,执行很快
Posted by Unknown at 11:02 AM 0 comments
Labels: symbian
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-f78119a2b4cb.html
Download the latest version of Carbide.c++
Compare and explore Forum Nokia’s Carbide.c++ resources
Posted by Unknown at 10:58 AM 0 comments
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 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:\yintest\yinutils.script Line = 31 Command = START_TEST_BLOCK 100 YinSymbianTestServer c:\yintest\yinexample.ini ***Result = PASS 09:36:56:790 INFO - 36 YinSymbianTestServer.cpp 55 CreateTestBlock>>>>>>>>> 09:36:56:790 INFO - 36 YinSymbianTestServer.cpp 65 CreateTestBlock<<<<<<<<<<< 09:36:56:796 INFO - 36 TestBlockController.cpp 134 Creating a local active scheduler. 09:36:56:796 INFO - 36 TestStepBase.Cpp 249 INI READ : c:\yintest\yinexample.ini heap name CheckMemoryLack 09:36:56:796 INFO - 36 YinExampleBlockController.cpp 30 CreateDataL>>>>>>>> 09:36:56:796 INFO - 36 YinExampleBlockController.cpp 34 Create hewp watcher 09:36:56:796 INFO - 36 TestStepBase.Cpp 249 INI READ : c:\yintest\yinexample.ini wrapper2 name TestWrapper2 09:36:56:796 INFO - 36 YinExampleBlockController.cpp 30 CreateDataL>>>>>>>> 09:36:56:796 INFO - 36 TestStepBase.Cpp 249 INI READ : c:\yintest\yinexample.ini heap name CheckMemoryLack 09:36:56:801 INFO - 36 TestStepBase.Cpp 249 INI READ : c:\yintest\yinexample.ini wrapper2 name TestWrapper2 09:36:56:801 INFO - 36 TestStepBase.Cpp 249 INI READ : c:\yintest\yinexample.ini wrapper2 name TestWrapper2 09:36:56:801 INFO - 36 TestStepBase.Cpp 249 INI READ : c:\yintest\yinexample.ini wrapper2 name TestWrapper2 09:36:56:801 INFO - 36 YinExampleWrapper2.cpp 176 [***Mark.Yin***]CTEFIntegrationTestWrapper::RunL 09:36:56:812 INFO - 36 TestStepBase.Cpp 249 INI READ : c:\yintest\yinexample.ini wrapper2 name TestWrapper2 09:36:56:812 INFO - 36 YinExampleWrapper2.cpp 94 [***Mark.Yin***] current value=1 09:36:56:812 INFO - 36 TestStepBase.Cpp 249 INI READ : c:\yintest\yinexample.ini wrapper2 name TestWrapper2 09:36:56:812 INFO - 36 TestStepBase.Cpp 249 INI READ : c:\yintest\yinexample.ini heap name CheckMemoryLack 09:36:56:812 CREATE_OBJECT HeapWatcherWrapper heap ***Result = PASS 09:36:56:812 CREATE_OBJECT YinExampleWrapper2 wrapper2 ***Result = PASS 09:36:56:812 COMMAND !Error=0 !AsyncError=0 heap mark ***Result = PASS 09:36:56:812 COMMAND !Error=0 !AsyncError=0 wrapper2 NewL ***Result = PASS 09:36:56:812 COMMAND !Error=0 !AsyncError=0 wrapper2 Initialize ***Result = PASS 09:36:56:812 COMMAND !Error=0 !AsyncError=0 wrapper2 ActivateActiveObject ***Result = PASS 09:36:56:812 OUTSTANDING 0 ***Result = PASS 09:36:56:812 COMMAND !Error=0 !AsyncError=0 wrapper2 PrintInfo ***Result = PASS 09:36:56:812 COMMAND !Error=0 !AsyncError=0 wrapper2 Clean ***Result = PASS 09:36:56:812 COMMAND !Error=0 !AsyncError=0 heap markend ***Result = PASS 09:36:56:817 c:\yintest\yinutils.script Line = 42 Command = END_TEST_BLOCK ***Result = PASS 09:36:56:822 c:\yintest\yinutils.script END_TESTCASE TC1308200809_ACTIVE 09:36:56:822 c:\yintest\yinutils.script Line = 43 Command = END_TESTCASE TC1308200809_ACTIVE ***TestCaseResult = PASS 09:36:56:827 TEST STEP SUMMARY: 09:36:56:827 INFO - 35 YinSymbianTestServer.cpp 44 ~CYinSymbianTestServer 09:36:56:827 PASS = 1 09:36:56:827 FAIL = 0 09:36:56:827 ABORT = 0 09:36:56:827 PANIC = 0 09:36:56:827 INCONCLUSIVE = 0 09:36:56:827 UNKNOWN = 0 09:36:56:827 UNEXECUTED = 0 09:36:56:827 COMMENTED OUT COMMAND'S = 8 09:36:56:827 TEST CASE SUMMARY: 09:36:56:827 PASS = 1 09:36:56:827 FAIL = 0 09:36:56:832 INCONCLUSIVE = 0 09:36:56:832
Posted by Unknown at 9:58 AM 0 comments
Labels: symbian
IPCv2实现机制
Posted by Unknown at 9:51 AM 0 comments
Labels: symbian
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
Posted by Unknown at 9:39 AM 0 comments
Labels: symbian
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
Posted by Unknown at 9:38 AM 0 comments
Labels: symbian