-
-5 2
-
你可以把每个应用程序想象成一个机器人,这些机器人共同生长在同一个系统中,每个机器人都有两个名字:一个是乳名,一个是学名。比如我自定义一个应用程序,这个应用程序的包是cn.spridu,这个应用程序的名称是
测试,那么这个程序的乳名是cn.spridu也就是所谓的包名(对系统而言的名称),这个程序的学名是测试也就是所谓的应用程序名称(对使用手机的人而言的名称)。应用程序有了自己的包名后,就应该有自己的ID,这个ID不一定是整形的,开发人员可以自定义这个ID,当然如果你不自定义系统会默认的分配一条id给你,这个默认的是整形的。这个id就是userid,相对系统而言,每个应用程序就是系统的用户,所以是userid.签名是什么?是一种安全的标志,防止别的应用程序恶意替换。至于进程的ID则是该应用程序生存的一个表示,只有在运行的程序才有进程。或者是可以这样理解,每个应用程序都有一个应用程序名和用户名和用户的ID,这个用户名是该程序在系统中的名称,用户的ID是唯一表示。ID不可以重复,用户名可以重复。如果两个应用程序共享一个userid那么这两个应用程序属于同一个应用程序,这样这两个应用程序可以互相的访问各自的资源,主要是通过Context ct=this.createPackageContext("com.stone.a", Context.CONTEXT_IGNORE_SECURITY);下面的xml数据说明了一个app在系统中的表示。
<package name="com.android.alarmclock" codePath="/system/app/AlarmClock.apk" system="true" ts="1273162593000" version="7" userId="10017">
<sigs count="1">
<cert index="0" />
</sigs>
</package>
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
- 评论(0)
发表评论 TrackBack