Symbian 应用程序中的UID

转自Liqun's BLOG

 

Symbian UID Classification

symbian 应用程序主要由UID来标识,在V9.0以后,UID可以分为两类:受保护(protected)和未受保护(unprotected)

UID

类型

范围

目的

 

 

 

Protected

 

range

0

0x00000000 – 0x0FFFFFFF

内部开发使用

1

0x10000000 – 0x1FFFFFFF

遗留的UID分配(legacy UID Allocation)

2

0x20000000 – 0x2FFFFFFF

V9受保护UID分配(V9 protected UID allocation)

3

0x30000000 – 0x3FFFFFFF

预留(reserved)

4

0x40000000 – 0x4FFFFFFF

预留(reserved)

5

0x50000000 – 0x5FFFFFFF

预留(reserved)

6

0x60000000 – 0x6FFFFFFF

预留

7

0x70000000 – 0x7FFFFFFF

发售商ID(vendor ID)

 

 

Unprotected

 

range

8

0x80000000 – 0x8FFFFFFF

预留

9

0x90000000 – 0x9FFFFFFF

预留

A

0xA0000000 – 0xAFFFFFFF

V9未受保护UID分配(V9 unprotected UID allocation)

B

0xB0000000 – 0xBFFFFFFF

预留

C

0xC0000000 – 0xCFFFFFFF

预留

D

0xD0000000 – 0xDFFFFFFF

预留

E

0xE0000000 – 0xEFFFFFFF

开发使用(development use only)

F

0xF0000000 – 0xFFFFFFFF

遗留UID兼容(legacy UID compatibility range)

 

 

我们在电脑上开发Symbian 应用程序时就可以使用unprotected uid, 这样应用程序就可以运行在模拟器上,进行测试和教学,但是如果要运行在真机上就必须在symbian网站上申请一个受保护的UID(protected UID)

 

每个symbian应用程序有3uID:

UID1-第一个UID(类型):

       UID1用来设定该应用程序是一个执行程序(executable file)还是一个数据文件(data file).

UID1-Indicates whether this is an executable file or data file.

UID value

Numeric value (Hex)

Meaning

KExecutableImageUid

0x1000007A

Indicates this an .exe executable file

KDaynamicLibraryUid

0x10000079

Indicates this a DLL(executable) There are various types, with different extension(.dll, .app, .ldd, .pdd)

KDirectFileStoreLayoutUid

0x10000037

Indicates this is a direct file store (data, not executable)Bracketed values from header files

KPermanentFileStoreLayoutUid

0x10000050

Indicates this is a permanent file store(data, not executable)

 

UID2-第二个UID(子类型):

       UID2-具体含义取决于UID1的值:

1.       如果UID1KExecutableImageUid, UID2不使用,所以UID2的值可以随意取。

2.       如果UID1KDynamicLibraryUid, UID2将会是:

UID value

Numeric value (Hex)

Meaning

KSharedLibraryUid

0x1000008D

Indicates this is a static interface DLL (.dll)

KUidApp

0x100039CE

Indicates an application conforming to APPARC(includes all Qikon apps, .app)

KLogicalDeviceDriverUid

0x100000AF

Indicates his is a logical decive driver (.ldd)

KPhysicalDeviceDriverUid

0x100039D0

Indicates this is a physical device driver(.pdd)

3.       如果UID1KDirectFileStoreLayoutUid或者KPermanentFileStoreLayoutUid,那么UID2将是:

    UID value

Numeric value (Hex)

Meaning

KUidAppDllDoc

0x10003A12

Indicates this is a file store created by an .app to store user data (i.e, a document)

KUidAppInfoFile

0x10003A38

Indicates this is an AIF file (a type of file store)

 UID3-第三个UID(子子类型)

       每个独立的应用程序有一个唯一的UID3值,它也被用作安全ID(secure ID),对于UIKON应用程序而言,用于关联数据文件和程序:

1.       对于dllexe文件,它辩识特定的二进制(it identified the particular binary)

2.       对于.appUIKON应用程序),它辩识特定的应用程序(it identified the particular application program).

3.       对于由.apps创建的文件存储(file stores),它辩识和该文件相关的应用程序(it identifies the application program associated with this file).

4.       对于其他文件存储(file stores), 它没有典型的用途(但是你可以自定义它的用途)。

 

SID(Security ID):

       二进制的安全标志符(SecureID)并没有明确地指定,如果你没有为它设定值的话,它默认是和UID3相同的,如果UID3也没有设定的话,它就会被视为是KNullUID, 如果应用程序的SecureIDKNullUId的话,就意味着未定义,并可能导致几个后果,如对应用程序使用的数据缺少保密性(privacy)

 

如果你创建一个dll,通过在.mmp文件中指定TARGETTYPE dll,你会得到.lib.dll文件对。你可以通过两种方式来动态链接该dll(dynamic load) 通过在.mmp文件中导入它的.lib文件,这种情况下,你没有必要指定UID;通过使用RLibary类型实时(runtime)导入dll文件,这种情况必须指定UID.

 

如果你通过在MMP文件中设定TARGETTYPE lib来创建.lib文件,链接该.lib文件时(static link你获得的是一个包含所有代码的.lib文件,这时候无需指定一个UID.

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值