uid gid pid等的区别

uid gid pid等的区别,第1张

概述1.uidandroid中uid用于标识一个应用程序。uid在应用安装时被分配,并且在应用存在于手机上期间,都不会改变。一个应用程序只能有一个uid,多个用户可以使用sharedUserId方式共享同一个uid,前提是这些应用的签名要相同。Uid是在apk安装的时候确认的,具体代码可以参考:frameworks\b

1.uID
androID中uID用于标识一个应用程序。uID在应用安装时被分配,并且在应用存在于手机上期间,都不会改变。
一个应用程序只能有一个uID,多个用户可以使用sharedUserID 方式共享同一个uID,前提是这些应用的签名要相同。
UID是在apk安装的时候确认的,具体代码可以参考:
frameworks\base\services\core\java\com\androID\server\pm\Settings.java

    /**     * Registers a user ID with the system. Potentially allocates a new user ID.     * @throws PackageManagerException If a user ID Could not be allocated.     */    voID addUserToSettingLPw(PackageSetting p) throws PackageManagerException {        if (p.appID == 0) {            // Assign new user ID            p.appID = newUserIDLPw(p);        } else {            // Add new setting to List of user IDs            addUserIDLPw(p.appID, p, p.name);        }        if (p.appID < 0) {            PackageManagerService.reportSettingsProblem(Log.WARN,                    "Package " + p.name + " Could not be assigned a valID UID");            throw new PackageManagerException(INSTALL_Failed_INSUFFICIENT_STORAGE,                    "Package " + p.name + " Could not be assigned a valID UID");        }    }    // Returns -1 if we Could not find an available UserID to assign    private int newUserIDLPw(Object obj) {        // Let's be stupIDly inefficIEnt for Now...        final int N = mUserIDs.size();        for (int i = mFirstAvailableuID; i < N; i++) {            if (mUserIDs.get(i) == null) {                mUserIDs.set(i, obj);                return Process.FirsT_APPliCATION_UID + i;            }        }        // None left?        if (N > (Process.LAST_APPliCATION_UID-Process.FirsT_APPliCATION_UID)) {            return -1;        }        mUserIDs.add(obj);        return Process.FirsT_APPliCATION_UID + N;    }

2.pID
进程ID,可变的。是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。
进程中止后pID被系统回收,可能会被继续分配给新运行的程序,但是在androID系统中一般不会把已经kill掉的进程ID重新分配给新的进程。
新产生进程的进程号,一般比产生之前所有的进程号都要大。

3.gID
对应于linux中用户组的概念,androID 中 gID 等于uID。

4.UserID
在AndroID中,多用户情况下,userList.xml中会定义一个user ID,表示当前是哪个user,此时的user ID是从0开始递增。
userList.xml中的内容:

<?xml version='1.0' enCoding='utf-8' standalone='yes' ?><users nextSerialNumber="10" version="7">    <guestRestrictions>        <restrictions no_sms="true" no_install_unkNown_sources="true" no_config_wifi="true" no_outgoing_calls="true" />    </guestRestrictions>    <deviceOwnerUserID ID="-10000" />    <user ID="0" /></users>

 

总结

以上是内存溢出为你收集整理的uid gid pid等的区别全部内容,希望文章能够帮你解决uid gid pid等的区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1104028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存