symbian备忘录

第二版:

 

1.symbain模拟器中的手机存储,可以在epoc32/wins/c/Nokia目录下使用。

 

2.在完成第二版调试后,安装了第三版的SDK,但发现原有的可以编译的第二版程序不能正常编译了。修改办法:通过将不小心修改了的文件夹名修改回以后,用vs2003能够正常编译运行原有第二版的程序了;但是,命令行下abld build wins udeb却报找不到link.exe,修改办法是配置系统变量path:C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin;这时候abld build wins udeb报找不到mspdb71.dll,修改办法是配置系统变量path:C:/Program Files/Microsoft Visual Studio .NET 2003/Common7/IDE,然后就行了。不过我在想是不是还有更好的办法。。。

更好的方法是使用VS2003自带的“Visual Studio .NET 2003 命令提示”,进行编译。

 

abld build wins udeb在/epoc32/release/wins/udeb/z/system/APPS生成了我想要的程序。

 

3.abld makefile vc7会在epoc32/BUILD/WORK/NOKIADECODER/GROUP/VIPLAYER/WINS下生成VS2003的项目文件.sln

 

4.第二版中的文件关联在PKG里面有一个MDL的声明和引用。MDL类似DLL,用代码编写,详见本人另外的BLOG.

 

 

第三版:

 

1.abld build wins udeb会提示不能生成wins。解决办法是:修改group目录下bld.inf文件,在其中添加PRJ_PLATFORMS

WINS

因为文件中没有prj_platforms参数则只会默认生成WINSCW、 GCCXML、ARMV5、CW_IDE平台的。

另外,通过这种方法也可以解决abld makefile vc7不能运行的问题,解决此问题办法是:BLDMAKE BLDFILES WINS

这样就可以生成WINS下的.MAKE文件,在Epoc32/BUILD/Work/Viplayer3rd/group目录中可以找到相应的.MAKE文件。找到vc6.MAKE文件后,可以运行abld makefile vc6。

 

但是,根据查证,第三版目前只支持生成winscw和gcce的项目,其他类型项目无法生成目标文件。

 

 2.9.2/S60_3rd_FP1/Epoc32/winscw/c/Data/Videos目录对应模拟器:功能表-事务管理-文件管理-视频片段。

手机上的C盘对应系统目录,E盘是存储卡的目录。

 

 3.每30天SDK需要输入序列号,根据提示在弹出的页面内输入NOKIA论坛登录信息,然后序列号就会出现。

 

4.得到一个项目发现是基于symbian 3rd MR SDK的,因此编译不过,解决办法:用mmp文件,从VS2003导入symbian程序,重新生成工程文件。

 

 5.在模拟器上安装SIS文件,提示文件已损坏,解决办法是:在Epoc32/release/winscw/udeb/z/resource目录中考入根证书。但是提示证书无效。

 

6.在生成GCCE版本时,提示S60_3rd_FP1/Epoc32/release/armv5/urel下找不到库xxx.lib的xxx.suo,解决办法是修改MMP文件,把xxx.lib的声明由“LIBRARY”改为“STATICLIBRARY”。

 

7.某些应用程序已设为系统自动隐藏,设置与修改办法是:在xxx_reg.rss中RESOURCE APP_REGISTRATION_INFO添加或取消这一行:hidden=KAppIsHidden;

 

 8.“使用char * xx = new char[xxx]来开辟一段内存,然后用数组下标来访问内存地址,修改内存中的内容”,在symbian中失败,替代方法是使用hBufC8:NewL来开辟内存,然后用->des().append()来添加内容,用delete()来删除内容。

 

9.使用第三版证书:signsis yoursis.sis myapp.sisx mycert.cer mykey.key yourpasswd,没有密码就不要yourpasswd

例如signsis ViZone.SIS ViZone.SISX Publisher.cer Publisher.key

这个证书是所有程序都可以用吗?
是的,所有第三版程序

这个证书可以安装到1000台手机上,使用证书可以保证程序顺利安装,以及使用symbian系统支持的大部分功能。

但可能会到期

 

10.使用文件关联功能时,生成了一个dll,一个rsc,应把这两个文件都部署到相应目录。

 

11.在一个安装包sis中包含两个项目的生成文件。可以把两个项目的pkg文件的打包文件目录合并。这样可以同时安装两个应用程序。

 

 

12.在搭建平台时,想要生成文件关联项目,包括生成一个recxxx.dll和一个recxxx.rsc,开始用VS2005环境时,只能生成DLL和R01文件,而且不能做到文件关联。在命令行下生成不能通过,报code warrier的错误。解决办法是:安装carbide c++ 2.0开发环境,然后在开始菜单中选择Configure environment for WINSCW command line。配置完成,然后运行命令行进行生成,这时编译通过,并且生成了RSC文件。注意,在命令行编译的时候,为了防止编译出错,编译时宜按照如下的顺序进行:

在工程目录group目录下键入:

 

bldmake bldfiles

abld makefile

abld resource

abld build winscw udeb

 

13.当在模拟器中用到配置文件时,配置文件需放在程序目录下面,可是找不到程序目录。最终发现该目录是在C盘下,需要自己手动建立一个程序目录,然后配置文件都可以放在这里。

 

 

附:

 

http://www.360doc.com/showWeb/0/0/131621.aspx

第一篇:SymbianOS 简介

1.1 SymbianOS的六大特性

看到这里,大家一定会有所思,这难道又是一篇垃圾文?请大家不
要急着唾弃我先,看看再说哦。

1、操作系统是运行在ROM上的
2、系统是运行在电池驱动的设备上的
3、完全是面向对象的
4、基于组件的设计
5、被设计成确保用户的数据不会丢失
6、简单的UI系统

Symbian 是真正的微核操作系统,所谓“微核”,就是说操作系统
只有很小的一部分是运行在最高优先级的,其他的功能都是以Client-
Server的方式提供。下面是Symbian系统的内部结构图:

应用层:Shell, OPL, 及其他应用程序
=================================================================
系统层:Dialogs, Menu, Toolbar, Icons, Resources, JavaVM,
Grid, Rich Text, Edit Control, List Control, Application Framework,
Jave Class Libraries.
=================================================================
服务层:Window Server, Process Server, Socket Server, Sound Server,
Wireless Server, Database Server, File Server, Alarm Server, Comms
Server, 以及无线协议
=================================================================
内核:euser.dll, ekern.exe, 服务控制(supervisor server),
HAL(设备抽象层)
=================================================================
驱动程序层:包括音频驱动,显示驱动,MMC驱动,键盘驱动,串并口驱动
,DSP驱动,时钟控制器驱动等等

1.2 Symbian UI系统命名

使用过Symbian UI系统的同志们一定都听说过一些奇怪的名字,比如:
Eikon, Cone, Apparc, Avkon等等,这么多kon字辈的东东到底有什么关系呢?

首先,大家要明白,在kon字辈的同志们中,Cone和Apparc是老大,其他kon们
都是从这两个kon继承来的。

先说说Cone。Cone就是Control Environment(控制环境)的缩写。Cone是Client
端的控制环境。这个东东定义了Graphic UI中一些基础的东西,没什么代码,
但是是一种Design pattern(俺也用用这洋词儿)。

Apparc是Application Architecture的缩写。Application architecture定义了
Symbian应用程序的框架。主要是定义了CApaApplication, 以及CApaDocument
这两个类,也就是d&v结构。然后还定义了程序启动以及数据控制流等等。

kon们其实就是控件组,关于控件的用法以后再说。Series60用的是Avkon,
Series90用的是Ckon,大家可以理解为不同的kon是专为不同屏幕大小的手机设
计的不同的控件库。

以Series60为例:

Avkon
=====
Eikon
=====
Uikon
============
Cone + Apparc
 
Symbian入门指南第二章:Symbian开发环境的建立以及目录结构的说明

第一篇:Symbian开发环境的建立

这里我不介绍《正确建立Symbian开发环境的方法Nokia版》这贴中的
部分,我想说说为什么我要强调大家都使用Nokia建立Symbian开发环
境的道理。

1.1 为什么要建立虚拟分区
我希望大家结合着《正确建立》一文读这篇文章。上文中强调大家一
定要写一个bat文件,其中包括这么几行:

@echo off
subst z: d:/SymbianDev/S90/v11
subst y: d:/SymbianDev/S90/v12
subst x: d:/SymbianDev/S60/v21

subst 是一个Windows命令,就是要把一个硬盘的目录映射成一个虚拟
分区。这样做的好处是可以方便的实现多个开发环境并存,并且是设
定变得与开发环境的物理存储无关。这里我又要提到另一个问题,有
的人,甚至书上说,EPOCROOT应该这样设定:

EPOCROOT =
d:/SymbianDev/S90/v11;d:/SymbianDev/S90/v12;d:/SymbianDev/S60/v21

大家这么做了,好像也没什么问题。也可以进行开发。其实错了,这样
的设定说明你根本不懂Symbian开发环境的基础知识,这样的书大家也
可以不必看了,烂!

正确的设法是:

EPOCROOT = /

大家知道 / 的含义是一个分区的根目录。具体那个分区呢?我们现在
不指定等到真正运行和编译的时候,系统会自动和你当前的SDK分区匹
配的。例如:如果你在S60的分区下编译,EPOCROOT就会被解释为x:/;
如果在S90的分区下编译,系统会把 / 解释成y:/或z:/

对了,大家是怎么指定调试时候的模拟器的?记得那个
Please specify the executable file for the debug session么?
你添的是什么?难道还是:

d:/SymbianDev/S60/v21/epoc32/release/wins/udeb/epoc.exe么?错!
所有的模拟器的位置只有一个,那就是直接填入:

/epoc32/release/wins/udeb/epoc.exe

同样的用法还可以用在很多方面,比如作package等等。

第二篇:Symbian SDK的目录结构和含义

最后简要介绍一下目录的结构。Symbian SDK的目录的特点就是一个字,
多!

大家首先要熟悉的是BUILD目录,这个目录是专门为存放各种不同平台的
工程文件的。大家执行了abld makefile vc6或者abld makefile cw_ide
之后就会相应的在这个目录下生成ms vc6或者cw的工程文件,注意,cw的
工程文件是一个xml。要在cw里面通过import...导入。

第二个目录是data目录。这个目录存储编译之后UI程序的资源文件rss。
Series 90 SDK一般把rss拷贝到/epoc32/data/z/system/apps/工程目录名
中。大家如果想使用MMC卡测试你开发好的程序,应该从上述目录中拷贝
*.rss与你的*.app一同放到MMC卡中的/system/apps/工程目录名 中。

第三个目录是gcc这个目录就不多说了。

第四个目录是include这个目录大家一定再熟悉不过了,不知道大家有没
有发现,系统在build UI程序的时候会把xxx.rsg文件放到这个目录下,
这个文件中的东东大家用UE看一下就知道了。还有一个子目录就是
include 下面的libc。这里面封装了标准C的兼容函数库。想使用qsort么?
想使用strcmp么?快到/include/libc来吧!!

第五个目录是release。这个目录如果你还不知道的话,那就。。。。。
这个目录主要存放各个平台相关的模拟器和库。Windows下模拟器的位置:
/epoc32/release/wins/udeb/epoc.exe
以及
/epoc32/release/wins/urel/epoc.exe
同时编译之后的可执行文件也会被存放在armi,thumb的目录下。

第六个目录是wins这个目录不知道大家有没有感觉,我是经常光顾的。 这个
目录下面一般只有c一个目录。这个目录表示手机的存储器。S90 的 MMC 卡
目录是d。可是你就算建了个d目录,你的S90 模拟器也认不出来,你还需要
改data目录下的一个epoc.ini文件。加入下面这行:

_epoc_drive_d /epoc32/wins/d

然后S90的模拟器就可以认出d盘,也就是MMC卡了。
 
Symbian入门指南第三章:深入介绍Helloworld例程

第一篇:Symbian UI 程序框架

Symbian UI 程序的框架基本上是统一的。大家只要学习
一种简单的框架就可以进行大部分的Symbian开发了。我
这里先介绍一个概念。

1.1 MVC 架构

Symbian 基本上使用MVC架构来搭建控件。Symbian UI程
序设计主要讲究的也是如何使用控件。而Nokia没有做好
的一个方面就是有关UI Control的帮助太少了。SDK提供
的帮助里面根本就没有资源文件的写法。这一张里面我会
介绍一些控件例如Dialog,Text Listbox等等资源文件的
写法。同时也会告诉大家应该到SDK的哪里才能找到这些
资源的描述。

但是首先,我先介绍一下MVC架构。MVC并不是个新东西。
他是Model - View - Control的缩写。在以前smalltalk
中就已经开始用了。其主要的想法是在构造类的时候把
显示,控制以及模型分开。Symbian对其作了小的改动。
在Nokia提供的Series 90控件组(就是CKON,以后我再提
CKON的时候大家要知道指得是S90的控件)中Model主要
用来存储数据,以及封装对数据的操作。也就是对于对象
实体的操作。View当然是负责显示。Control被抽象成一个
或多个纯虚类(Mixin)其它对象通过重写虚函数来得到
对象内部的状态以及控制对象。Series 90的Text Listbox
类CEikTextListBox很好的说明了这个构架。比如你可以
调用CEikTestListBox中的Model()函数得到一个Model的指针,
然后你就可以访问其中的CDesArrayFlat数组了。

1.2 Symbian的工程文件
1.2.1工程引导文件bld.inf
这个东东其实就是一个脚本,它告诉Build环境在做
Build之前需要准备或知道一些什么东西。最普通的
一种写法是:
PRJ_MMPFILES
project.mmp

这是告诉Build环境:你马上要处理的工程文件名字
叫project.mmp。大家如果做比较复杂的程序可能
需要同时Build所有的库,那么就在这里把你所有需要
Build的工程都列出来:
PRJ_MMPFILES
project.mmp
project_lib1.mmp
project_lib2.mmp

另外的一个常用的标记是PRJ_PLATFORMS这个东东
告诉编译环境,以下的这些平台(Targets)是需要
编译的。你可以在这个标记的下一行列出需要的平台
例如:
PRJ_PLATFORMS
WINS ARMI WINSCW
或者直接用
PRJ_PLATFORMS
DEFAULT
注意,如果你不作PRJ_PLATFORMS这个标记其效果
等于PRJ_PLATFORMS DEFAULT,所以这个不是必须
的。

第三个常用标记是PRJ_EXPORTS这个东西告诉编译环境
在编译之前需要把哪些文件先拷贝到指定位置。我举个
简单的例子大家就知道什么意思了。比如你的工程中
需要include一个第三方的*.inl的文件,那么如果编译之
前这个文件不存在就会编译不过。你可以这么写:
PRJ_EXPORTS
./nk_set.inl /epoc32/include
那么在你编译的时候,一个Perl脚本会先把你工程目录下
的nk_set.inl文件拷贝到/epoc32/include目录下,然后再
编译工程。

大多数工程只要用这三个标记就可以了。还有一点小技巧
这个bld.inf文件中是可以写#if #else 等等东西的。
比如:
#if defined(WINS)
..... 注意没有{}
#else
.....
#endif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值