1. Symbian is the operating system
Symbian is the same type of operating system as windows. S40 and s60 are based on the Symbian OS platform and provide various interfaces. They are equivalent to an API shell.
2. project directory structure
Data (s60) Resource specification file (. RSS)
GFX (s60) Application resource files, sample files and sound files
Group project files, such as. MMP and BLD. inf
Image (uiq) Application resource file, Example
INC header file
Rsrc (uiq) Resource specification file (. RSS. RA)
SRC. cpp
3. bld. inf file
A required text file mainly includes the project definition file and the files required by any other compilation tool.
Prj_platforms // target platform
Winscw armv5 gcce
Prj_exports // project output file
Prj_matrix files // project definition file
Gnumakefile icons_aif_scalable_dc.mk
Myfirst. MMP
4. Project description file. 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
This keyword specifies the name of the target file (exe or DLL file.
Targettype
This keyword specifies the type of the target file generated by the project. In the preceding example, an executable file is generated. In most cases, the target file type is DLL, EXE, or other plug-ins (plugin ).
UID
The target (usually the executable. EXE or. dll file) has three UIDs, which are used to identify components. The first uid does not need to be specified. Because it is automatically assigned by the compilation tool based on the target type. Therefore, what is specified here is actually uid2. This value further specifies the target type. In the above example, the value (0x100039ce) indicates that the target file is an application procedure, the Symbian system uses this value to identify all applications. The next specified uid is unique for each application. It identifies the registered resource file of the application and the installation package file. PKG of the program. Therefore, to ensure the uniqueness of this value, you must apply for this uid from Symbian and assign a UID to your application from the database. You can go to the Symbian website to learn more. Some uid values are used for testing. For example, in the SDK, the UID used by the filesystem browser is 0xe80000a6, you can also use this value when testing your application, but be careful not to use it in your final product.
SecureID
This is an optional key, which is not shown in the above example. This keyword defines a security identifier for the application to indicate which private directory the program can access. If this keyword is not used, use uid3 instead.
Vendorid
This keyword is added in Symbian OS v9.1. Specifies the ID of the software provider. This keyword is not required and can be omitted.
Capability
This is a newly added keyword for Symbian OS 9.1. This keyword indicates the application's permissions (or capabilities, such as Viewing System Directories ).
Sourcepath and Source
The source keyword specifies which source files and resource files need to be compiled, and the sourcepath keyword specifies the location of these files. This location can be either a relative path (relative to the MMP file) or an absolute path.
Systeminclude
This keyword specifies the location of the system header file. The system header file is usually included in the # include <> statement.
Userinclude
This keyword is similar to systeminclude, which specifies the location of the custom header file.
Start resource... End
The START resource keyword indicates the start of an information block, which indicates how to compile the resource file. End indicates the end of the information block.
Targetpath
This keyword is used to specify the location of the compiled resource file. Note: Due to security considerations, all executable code (exe or DLL) runs from the/sys/bin/directory on the mobile phone. You do not need to use this keyword to specify a location for executable code. The targetpath keyword is only used to specify the location of the compiled resource file.
Header
This is an optional keyword. When it is used, the system will create a resource header file (. RSG) in the/epoc32/include/path ). This header file contains identifiers that allow reference to a specific resource with C ++ code.
Library
This keyword lists the library files that the application needs to connect.
Staticlibrary
This keyword is used to specify the library file to be statically linked (the code in the library file will be linked to your program, rather than loaded into the memory only when necessary ).
Start bitmap... End
This section contains the bitmap used by the application icons, and how to compile these bitmaps into. MBM (Symbian system proprietary image format.
Epocstacksize
This keyword is optional and is not used in the above example. In earlier versions of Symbian OS, the default stack size is 0x5000 bytes. In v9.1, the default value is 0x2000. This keyword can be used to increase the stack size. For example, epocstacksize 0x5000. Note that stack settings are only valid for real devices, but not for simulators.
Epocheapsize
This keyword is optional and is not used in the above example. This keyword specifies the maximum and minimum heap space that an application can use. By default, 4 k is the minimum size, and 1 m is the maximum size.
5. gcce and arm versions:
The version of the program running on the real device is different from the version of the program running on the simulator. The version running on the device must be gcce or arm. The gcce version uses the compiler that comes with the SDK. You do not need to pay for it. The arm version is dedicated to the ARM platform. The Code has been optimized and the performance is better than that of the gcce version, but payment is required
6. Sis and. PKG
After creating the gcce version of the application, you need to create a Symbian installation file (. SIS ). In essence ,. the sisfile is just a compressed file, which contains the EXE, DLL, RSS files required to form the application, and information required when some mobile phones receive applications (such as: Language type, application UID ). The question is, what information should we use to create this sisfile? The answer is the PKG file. Before creating this file, you must first create a PKG file, which contains some useful information, including the directory under which the project file is copied to the mobile phone, program version
7. Sign
When developing s60 3rd applications. the SIS file must be signed before it is installed on the mobile phone. if your program does not use capability or only uses utility, you can use self signed certificate ). This method is especially useful when debugging programs on your mobile phone.