原创  Symbian开发高级专题系列:应用程序文件路径 收藏

Author:PengChan (http://blog.csdn.net/feifei1018)

Date: 2008-07-15

 

Pre-Symbian OS v9.0:

Application program files must be located in directories with the form \system\apps\<program>\. Initialisation and configuration files should be in the same directory, or where the application is in ROM, in the equivalent directory on a writable drive.

Document files can be located in any directory except \system\, and may be given any name: the system will not alter the capitalisation of that name, and will not attempt to add or remove any extension.

The application architecture does not dictate the requirements for all files, or even all file stores. For instance, an e-mail application is not document based. An e-mail subsystem would store its messages in a directory structure using special e-mail policies to implement inbox, outbox and folders. Normally, this folder would be in a \system\ directory.

 

Symbian OS v9.0 and beyond:

The filesystem of the phone is mapped to the PC, with the internal writable drive (C:) usually mapped to \epoc32\winscw\c and the ROM mapped to \epoc32\release\winscw\udeb\z for the debug build. You can also add further virtual drives, and reconfigure the standard drives to map to alternative locations.

There is one exception to the filesystem mapping, which is the location of the executables. On the phone, all executables are stored in the \sys\bin directory, but on the emulator, the executables are loaded from where they are built, that is, the \epoc32\release\winscw\udeb or \epoc32\release\winscw\urel directory.

For example, a program called helloworld.exe, built into the phone's ROM, will be stored in z:\sys\bin or, if it is installed onto the phone's internal drive will be located at c:\sys\bin (other drives can map to the phone's removable memory card). For the same application on the emulator, helloworld.exe will always be stored in \epoc32\release\winscw\udeb or \epoc32\release\winscw\urel for debug or release builds respectively.

 

Location Example file types Description
  • On the emulator (default):

    • epoc32\release\winscw\udeb\

    • epoc32\release\winscw\urel\

    On the emulator, e.g. for text notifiers:

    • \sys\bin\tnotifiers

  • On the device:

    \sys\bin\

.exe, .app,

.dll, .ani,

.ctl, .fep,

.mdl, .csy,

.ldd, .pdd,

.prt,

.ECOMIIC, .PLUGIN

  • Location of all binaries

  • The OS will refuse to load any binary not in \sys\bin\

  • Code without AllFiles (or TCB) capability will never be able to read (or write) anything under \sys\

  • Note that for the emulator when PlatSecEnforceSysBin is enabled (in the epoc.ini file) executables found under \system will not be able to be loaded

\private\<process SID>\

.doc, .txt,

.xml, .dat,

.ini, .mbm,

.rsc

  • Location of all private data files (e.g. if the file is to be accessed only by the application itself)

  • The directory name under \private is determined by the SecureId (SID) of the process. If a SID is not specified, the UID3 provided in the mmp file is used

  • Under the \private directory, programs without the AllFiles capability will only ever be able to see their own directory

  • Applications on the emulator, or built into the ROM must provide registration files in:

    • \private\10003a3f\apps\

  • Applications installed via Software Install must provide registration files in:

    • \private\10003a3f\import\apps\

<appname>_reg.rsc

  • The private system directory for an application's registration file

  • The directory must always be on the same drive as the application

  • These paths are true for both the emulator and target device

\resource\apps\

.rsc, .mbm,.mif

  • Read access is allowed by all

  • Write access only by processes with AllFiles capability

\resource\plugins\

<dllname>.rsc

  • Specifically for ECom registration resource files for ECom plugins

  • Read access is allowed by all

Central Repository API

\private\<process sid>\

.txt

  • If the file is read/write-only, and access to it needs controlling through capabilities, then use the Central Repository API, not a file at all.

发表于 @ 2008年07月15日 05:16:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:几点感概 | 新一篇:推荐国内优秀的Symbian开发网站:http://www.devdiv.net/

  • 发表评论
  • 评论内容:
  •  
Copyright © feifei1018
Powered by CSDN Blog