首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> 专家专栏 >> 剑走偏锋 >> 正文
高级设计
作者:剑走偏锋    文章来源:本站原创    更新时间:2005-8-9 15:41:12
    异步消息处理
    Symbian是一种抢占式多任务操作系统,线程就是时间片.系统内核将他们换入换出,以保证线程的运行.S60应用程序通常由一个独立的线程组成.这一点不同于其他的操作系统,多线程机制虽然可以共享资源,但是必须使用互斥,这样会浪费处理器时间,而且容易发生死锁.

    Symbian OS使用活动对象(类起源于CActive)和一个活动调度程序,循环等待,允许一个独立的线程处理异步请求.每一个活动对象应该实现两个纯虚函数:RunL()-完成请求的操作, DoCancel()-允许取消突出的请求.因为所有的用户操作都在同一个装置内进行操作,处理时间不能拖的太久,以导致UI反应时间过长是很重要的.一些太长时间的处理任务将在活动对象中被强行中断.
    
    Symbian OS里,多线程机制只是在特殊情况下才会被使用.因为他会浪费太多系统资源和电,异步事件处理通常使用活动对象来贯穿Symbian OS代码的始终,同时,这种方法要比多线程优先考虑.

    DLLS
    在S60开发平台上有两种形式的DLL,这使得开发人员可以重用代码,而且可以将应用程序做得比较小.DLL有益于在模块中压缩函数,而且随后可以被重用.他们可以创建较小可执行单元,而且允许应用结构被拆开,不同的开发小组之间的模块可以协作运行.通常情况下,引擎和通信被放在DLL中.

    静态DLLS
    这些也被认为是共享库DLLS,他们被用于在不同的应用程序之间共享通用代码.只有一份拷贝被载入内存中,在不同的应用程序间被共享.静态DLL上被放置了一个约束,那就是他们没有可写的静态数据.但是可以通过调用一种线程局部存储的方法来进行对于静态数据需要的写入操作.在应用程序中,使用一个外部静态DLL需要在mmp文件的LIBRARY处添加.lib文件声名.创建一个静态DLL需要在.mmp文件中开始声名.S60平台上的每一个DLL都有一个E32Dll()方法,来作为DLL的入口.
以下内容为程序代码:

GLDEF_C TInt E32Dll(TDllReason)
{
return 0;


    所有需要访问外部DLL的方法在读取时,要通过.h文件用EXPORT_C输出(.cpp),用IMPORT_C输入.

    多态DLLS
    这种DLLS有一个独立的入口点,返回一个对象,而且直接被框架管理.例如多态DLLS是一个应用程序,device drivers and CSYs(翻译不通 而且只提到了这么少).

    CS结构
    只字未提.
相关文章:
Symbian中所体现的软件编程艺术
Symbian OS编码诀窍之设计诀窍
Tilelander for S60
A small tool to get the members of the TKeyEvent class
使用Peroon实现移植
关于CommDb的一些注释
UIQ 模拟器的Internet
通过更改COM端口访问Internet
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号