Symbian中ECom的杂谈 Monday, October 12, 2009

   今天在newlc上看到《ECom plug-in – in the lights of Strategy Pattern 》勾起了我对ecom的兴趣。从单个plug-in执行角度看还真是符合strategy模式,不过要是从ECom framework角度看,也就是从整个结构的角度看,又符合fade模式。
    不过理论上的争论没有什么营养,对于ECom,这句话The main idea is that you can change/update the plugin implementation independently of the main application.才是根本。
    下面我说几个ecom非常小的issue,旦愿对大家有点营养。需要仔细看看

  1.  ECom是Echo component object model的缩写
  2. rss文件名字、rss文件中dll_uid必须和mmp文件中的uid3一致。要不就算是编译通过了,plug-in dll还是不能生成。
  3. plug-in dll运行在客户端的线程中。 这就使问题简单多了,不像windows上的com,弄出个套间(apartnment)。这里需要特别注意的是:客户端必须负责plug-in所用资源的释放。
  4. 在plug-in3是实现中不再需要开发者显式定义E32Dll函数,SDK会自己定义一个并把它导出来
  5. plug-in3开始支持扩展接口,概念和windows com中的一样。将在symbian os v5.0上可用。
  6. 从dll的角度看,plug-in dll只导出了两个函数。
  7. 定义proxy table的时候,尽量用IMPLEMENTATION_PROXY_ENTRY这样的宏,可读性和兼容性更好。
  8. plug-in可以本地化
  9. 当使用IMPORT_C static TAny* CreateImplementationL(
                                TUid aImplementationUid,
                                TInt32 aKeyOffset); 这样的函数的时候,需要注意编译器的版本。必须要os使用的编译器版本一致。

0 comments: