`

symbian相关基础知识

 
阅读更多

1. Symbian是操作系统

Symbian是操作系统和windows是一样类型的玩意。而s40、s60等是基于Symbian OS之上的平台,提供各种接口,等于是一层API壳。

2. 项目目录结构

data(S60) 资源规格文件(.rss)

Gfx(S60) 应用程序资源文件,例如图片和声音文件

Group 工程文件,例如 .mmp和 bld.inf

Image(UIQ) 应用程序资源文件,例如图片

Inc 头文件

rsrc(UIQ) 资源规格文件(.rss .ra)

src .cpp

3. bld.inf文件

一个必须的文本文件,主要包括项目定义文件和其他任何编译工具所需要的文件。

PRJ_PLATFORMS //目标平台

WINSCW ARMV5 GCCE

PRJ_EXPORTS //项目的输出的文件

PRJ_MMPFILES //项目定义文件

gnumakefile icons_aif_scalable_dc.mk

myFirst.mmp

4. 项目描述文件 .mmp

TARGET myFirst.exe

UID 0x100039CE 0xE22DC27E

VENDORID 0

TARGETTYPE exe

EPOCSTACKSIZE 0x5000

SYSTEMINCLUDE /epoc32/include /epoc32/include/variant /epoc32/include/ecom

USERINCLUDE ../inc ../data

SOURCEPATH ../data

START RESOURCE myFirst.rss

HEADER

TARGETPATH resource/apps

END //RESOURCE

START RESOURCE myFirst_reg.rss

TARGETPATH /private/10003a3f/apps

END //RESOURCE

LIBRARY euser.lib apparc.lib cone.lib eikcore.lib avkon.lib

LIBRARY commonengine.lib efsrv.lib estor.lib eikcoctl.lib eikdlg.lib

LIBRARY eikctl.lib bafl.lib fbscli.lib aknnotify.lib aknicon.lib

LIBRARY etext.lib gdi.lib egul.lib insock.lib

LIBRARY ecom.lib InetProtUtil.lib http.lib esock.lib

LANG 01

START BITMAP myFirst.mbm

HEADER

TARGETPATH /resource/apps

SOURCEPATH ../gfx

SOURCE c12,1 list_icon.bmp list_icon_mask.bmp

END

SOURCEPATH ../src

#ifdef ENABLE_ABIV2_MODE

DEBUGGABLE_UDEBONLY

#endif

SOURCE myFirstContainer.cpp MyFirstContainerView.cpp myFirstDocument.cpp myFirstAppUi.cpp myFirstApplication.cpp

TARGET

该关键字指明了目标文件(exe或dll文件)的名称。

TARGETTYPE

该关键字指明了工程所产生的目标文件的类型,在上面的例子中,我们生成了一个可执行文件。在大多数情况下,目标文件的类型为dll,exe或是其他的插件(plugin)。

UID

目标(通常指可以执行的.exe或.dll文件)具有三个UID,这些UID用来标识组件,第一个UID是无须指定的。因为它是编译工具根据目标的 类型自动分配的。所以这里所指定的实际上是UID2,这个值进一步指明了目标的类型,上面例子中,值(0x100039CE)指明了目标文件是一个应用程 序,Symbian系统使用这个值来标识所有的应用程序。下一个指定的UID 对每个应用程序来说都是唯一的。它标识了这个应用程序的注册资源文件和该程序的安装包文件.pkg。所以为了保证这个值的唯一性, 您必须要向Symbian申请这个UID,由他们负责从数据库中为您的应用程序分配一个UID。可到Symbian的网站上了解更多的相关信息。有一些 UID的值是用来测试的,例如SDK中的例子:文件系统浏览应用程序(filesystem browser)所使用的UID为0xE80000A6, 您也可以在测试您的应用程序的时候使用这个值,但注意,不要在您的最终产品中使用它。

SECUREID

这是个可选的关键了,上面的例子中没有出现。该关键字为应用程序定义了安全标示符,用来指明这个程序可以访问哪个私有的目录。如果该关键字没有使用,用UID3来代替该关键字。

VENDORID

该关键字是在Symbian OS v9.1版本新增的。用来指定软件提供商的ID号。该关键字不是必须的,可省略。

CAPABILITY

这是 Symbian OS 9.1新增加的关键字。该关键字指明了应用程序的权限(或称作能力,如:查看系统目录)。

SOURCEPATH和SOURCE

SOURCE关键字指明了有哪些源文件和资源文件需要编译,而SOURCEPATH关键字指明了这些文件的位置。这个位置既可以是相对路径(相对于mmp文件),也可以是绝对路径。

SYSTEMINCLUDE

这个关键字指定了系统头文件的位置,系统头文件通常用#include<>语句包含。

USERINCLUDE

该关键字的作用类似于SYSTEMINCLUDE,它指明了在用户自定义头文件所在的位置。

START RESOURCE…END

START RESOURCE 关键字表明了一个信息块的开始,这些信息指明了如何编译资源文件。END 标示该信息块结束。

TARGETPATH

该关键字用来指定被编译后的资源文件的位置。注意: 由于安全方面的考虑,所有的可执行代码(exe或dll)都从手机上的/sys/bin/ 目录运行。可执行代码不需要用该关键字指定位置。TARGETPATH 关键字仅仅用来指定编译后的资源文件的位置。

HEADER

这是一个可选的关键字,当它被使用的时候,系统将会在/epoc32/include/路径下创建资源头文件(.rsg)。这个头文件包含了允许以C++代码引用特定资源的标识符。

LIBRARY

这个关键字列出了应用程序需要链接的库文件。

STATICLIBRARY

该关键字用来指定需要被静态链接的库文件 (库文件中的代码会被链接到您的程序中,而不是需要时才装载到内存)。

START BITMAP…END

这一节包含了应用程序图标所使用的位图(bitmap),以及如何将这些位图编译成.mbm(Symbian系统专有的图像格式)的方式。

EPOCSTACKSIZE

该关键字是可选的,我们上面的例子中并未用到。在以前的Symbian OS 版本中,缺省的栈大小为0X5000字节。在v9.1版本中,缺省值为0x2000。为了增加栈的大小,可以使用该关键字。例 如:EPOCSTACKSIZE 0x5000 。要注意的是, 对栈设置仅仅对真实设备有效,但对模拟器无效。

EPOCHEAPSIZE

该关键字也是可选的,我们上面的例子中并未用到。这个关键字指定了应用程序可以使用的最大、最小堆空间。缺省情况下,4K为最小的尺寸,1M为最大的尺寸。

5. GCCE版本和ARM版本:

在真实设备上运行的程序版本不同于我们在模拟器上运行的程序版本,在设备上运行的版本必须是GCCE版本或ARM版本。其中GCCE版本是用SDK 自带的编译器的,使用它不需要付费,而ARM版本是专门针对ARM 平台的,代码经过优化,性能优于GCCE版本的程序,但需要付费

6. .sis 和 .pkg

创建应用程序的GCCE 版本以后,需要创建一个Symbian 安装文件(.sis)。从本质上来讲,.sis文件只是一个压缩文件, 它包含了组成应用程序所需的exe,dll,rss文件,和一些手机接收应用程序时所必须的信息(例如:语言种类,应用程序的UID)。现在的问题是,我 们根据什么信息来创建这个sis文件呢?答案在于pkg文件, 在创建这个文件之前,先需要创建一个pkg文件,pkg文件中包含了一些有用的信息,包括将工程文件拷贝到手机的哪个目录下面,程序的版本号等

7. Sign

在开发s60 3rd版本的应用程序时,所有的 .sis 文件在安装到手机之前,必须被签名.如果您的程序没有用到capability或只用到了对所有的用户都开放的功能(utility),您可以使用自签名 认证(Self Signed certificate)。当在自己的手机上调试程序时,这种方法特别管用.

分享到:
评论

相关推荐

    Symbian OS基础知识

    介绍了Symbian OS编程的基础知识,包括: • 对象的创建和析构 • 命名约定 • 错误处理和清除 • 描述符 • 活动对象。

    Symbian基础知识教科书实验练习题

    Symbian基础知识教科书实验练习题Symbian基础知识教科书实验练习题Symbian基础知识教科书实验练习题

    Symbian c++基础知识 易于初学者

    Symbian C++程序员必备C++知识学习

    Symbian基础知识

    基本数据类型、错误处理、描述符、二段构造、命名规则

    Symbian 应用程序开发

    ·Symbian OS的基础知识。 ·运用Series 60框架架构进行程序设计。 ·用户界面控件、菜单、对话框、列表和编辑器。 ·基本的和高级的Series 60通信API。 ·多媒体开发:绘图、字体、位图、动画和音频。 ·调用...

    Symbian OS C++手机应用开发

    编写C++应用程序提供了完整的基础知识体系。它不会讲授关于开发Symbian 操作系统应用程序 的全部知识,没有任何一本书能够做到这一点。但是,它将引导你成为一名有效的Symbian 操作 系统的开发者,并且让你对Symbian...

    Developing Software for Symbian OS, 2nd Edition(附源码)

    该书从一般词汇 解释入手为您讲述所有基础知识,介绍创建工具和环境, 指导您创建第一个应用程序。该书涵盖如何编写 Symbian OS 程序的基本知识。 如果您已经拥有一些程序开发经验,那么我们向您推荐阅读 Richard ...

    基于Symbian OS的手机开发与应用 part1

    全书共分3部分17章,第1~6章为基础知识部分,主要介绍Symbian系统基础知识、Symbian编程语言、创建S60应用程序的过程以及$60的界面风格;第7~11章为基本图形界面开发部分,主要介绍如何在S60环境中创建基于控件、...

    基于Symbian OS的手机开发与应用 part2

    全书共分3部分17章,第1~6章为基础知识部分,主要介绍Symbian系统基础知识、Symbian编程语言、创建S60应用程序的过程以及$60的界面风格;第7~11章为基本图形界面开发部分,主要介绍如何在S60环境中创建基于控件、...

    基于Symbian OS的手机开发与应用 part3

    全书共分3部分17章,第1~6章为基础知识部分,主要介绍Symbian系统基础知识、Symbian编程语言、创建S60应用程序的过程以及$60的界面风格;第7~11章为基本图形界面开发部分,主要介绍如何在S60环境中创建基于控件、...

    symbian 新手入门 中文版

    symbian 新手入门 中文版,介绍了一些symbian入门的基础知识和如果获得symbian资源的好东东

    symbian OS介绍应用 入门资料

    symbian OS入门资料,可以让我们了解到symbian的一些基础知识,以及怎么学习,相关的学习资源。

    symbian开发所需

    关于symbian一些学习资料,学习经验 包括平台搭建,基础知识

    有关于塞班系统的搭建

    关于塞班系统搭建的基础知识~ 对于初学者来说应该有用~

    Smbian 基础知识

    很好的,很好的,symbian初学者最好的东东。

    智能手机操作系统编程Symbian及60系列.pdf

    开发环境,基础知识,应用程序设计,控件,多媒体 ,网络通信,消息等相关介绍

    美河提供.智能手机操作系统编程Symbian及60系列1

    第3章 基础知识  3.1 命名规则与数据类型  3.1.1 命名规则  3.1.2 基本数据类型  3.2 内存与资源管理  3.2.1 Symbian OS内存设置  3.2.2 异常的处理对策  3.3 活动对象  3.3.1 活动对象  3.3.2 构造活动...

    智能手机操作系统编程Symbian及60系列

    第3章 基础知识  3.1 命名规则与数据类型  3.1.1 命名规则  3.1.2 基本数据类型  3.2 内存与资源管理  3.2.1 Symbian OS内存设置  3.2.2 异常的处理对策  3.3 活动对象  3.3.1 活动对象  3.3.2 构造活动...

    Symbian开发经验

    介绍在开发当中的细节与作者开发的文档整理。包括架构,基础知识,内存管理等

    QT_Nokia内部培训资料

    • 样式(Styling)基础知识 课程内容 • 介绍 • 什么是Qt?什么是Qt for Symbian • Qt for Symbian 4.7 • Qt 本质 • Qt 模块 • 编译工具链 • Qt SDK介绍和安装 • 如何创建Qt程序 • Remote Compiler • Smart...

Global site tag (gtag.js) - Google Analytics