當前位置:首頁 » 安卓系統 » UIDandroid

UIDandroid

發布時間: 2022-11-21 18:12:01

A. 安卓的UID是什麼意思

Android 里的 UID 是 跟隨著「軟體」(例如 Android 應用程序)。 由於每個應用程序都有個 UID,只有帶著此 UID,才能存取該 UID 所涵蓋的有關資料。就跟安裝軟體的附件一樣吧。

B. android中如何生成uid

一般android系統會自動為應用生成一個uid,並且每個應用會被分配不同的UID ,用於管理各個應用的許可權以及數據共享。。。其次我查了一些資料。在AndroidMenifest.xml中 在<manifest>標簽裡面增加 android:sharedUserId="xxxx",「xxxx」就是你自定義的uid了。。

C. android中如何生成uid

一般android系統會自動為應用生成一個uid,並且每個應用會被分配不同的UID
,用於管理各個應用的許可權以及
數據共享
。。。其次我查了一些資料。在AndroidMenifest.xml中

標簽裡面增加
android:sharedUserId="xxxx",「xxxx」就是你自定義的uid了。。

D. android系統的uid問題

不對,UID不是數字,PID才是,PID也沒有你說的那種情況。應用程序的UID是app_#,#代表數字。而系統進程的UID是root或者system
連上android設備或者模擬器,進入adb shell,top就可以看到當前所有進程。

E. android手機中PID和UID有什麼聯系

PID就是各進程的身份標識,獨一無二。

UID在linux中就是用戶的ID,表明時哪個用戶運行了這個程序,主要用於許可權的管理。
找了一個詳細講解的網頁,你看下。http://www.cnblogs.com/perseus/articles/2354173.html

F. android uid 和 pid 的理解獲取

1.理解

uid:uid 對於 應用來說其實就是指我們當前應用是在那個 group 組內
就是指這個shareuserid,一個組內的uid相同,,並且具有相同的uid的應用才能共享用戶內存

pid:是指每個進程在liunx下的 進程的id 是唯一的。

2.獲取

獲取uid:

PackageManager pm = getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo("com.speedsoftware.rootexplorer", PackageManager.GET_ACTIVITIES);
Log.d("!!", "!!" + ai.uid);

獲取pid:

ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);  List<ActivityManager.RunningAppProcessInfo> list = activityManager.getRunningAppProcesses();
for(ActivityManager.RunningAppProcessInfo runningAppProcessInfo : list){
if(runningAppProcessInfo.pid == pid){
processName = runningAppProcessInfo.processName;
            }
        }

G. Android中的uid

uid 是user 用戶id

Android 里的UID是基於應用程序,每一個程序都有一個UID,如果應用程序1和應用程序2的uid不同,則在default情況下,二者無法讀取對方的數據,這樣提升了應用的安全性。

當使用者安裝了某一應用程序時,android系統就會賦予一個uid,用戶可以在屏幕上的窗口裡可以檢視這個AndroidManifest.xml檔案的內容,用戶回了解這個應用程序的目的、許可權等,並選擇接受與不接受。

一些特殊情形下,兩個應用程序是可以持有一樣的UID。

例如,當需要推出新版本時,這兩種版本的程序可以持有一樣的UID, 才有許可權將舊版程序的數據轉移到新版軟體里。

Pid 是 process 進程ID,Uid 是 user 用戶ID,只是Android和計算機不一樣。

計算機每個用戶都具有一個Uid,而Android中每個程序都有一個Uid。

默認情況下,Android會給每個程序分配一個普通級別互不相同的 Uid,如果用互相調用,只能是Uid相同才行,這就使得共享數據具有了一定安全性。

每一個不同的 程序 都能有一個UId,但是一個應用裡面可以有多個PId。

一個用戶可以打開多個進程(Pid),並且這些進程的uid是一樣的;

一個pid對應一個進程,每次打開時系統都會賦予不同的pid,但是uid是當你安裝Apk時,系統賦予的,是不變的,除非你卸載了重裝,又會重新賦予一個Uid;

參考: 認識Android的UID(Unix user ID)與許可權

ANDROID 中UID與PID的作用與區別

H. Android uid

Process#uid 即 ApplicationInfo#appId 、UserHandle#appId 為從 Process#FIRST_APPLICATION_UID 開始增加的數字。其中約定 system 應用的 uid 為 Process#SYSTEM_UID,phone 進程為 Process#SYSTEM_UID 等。

這個 uid 在應用安裝時就由 PMS 分配:

I. 如何獲得所有android應用程序UID

一、修改Android Studio(以下簡稱AS)的內存配置
因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的機器修改studio.vmoptions)中-Xms和-Xmx的值。文檔中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK, 這樣可以確保使用源碼里的庫文件
並將其作為要使用的SDK的java SDK。
三、生成導入AS所需配置文件(*.ipr)
編譯源碼(為了確保生成了.java文件,如R.java;如果編譯過,則無需再次編譯)
②檢查out/host/linux-x86/framework/目錄下是否有idegen.jar
如果idegen.jar不存在,執行:
mmm development/tools/idegen/
在5.0.1的源碼中會生成res.java的文件夾,導致idegen.jar運行時拋FileNotFoundException,這是idegen的代碼不夠嚴謹造成的。
我的分享里有修改這個bug的patch,或者直接使用我分享的idegen.jar。
③執行
development/tools/idegen/idegen.sh
等待出現類似下面的結果:
Read excludes: 5ms
Traversed tree: 44078ms
這時會在源碼的根目錄下生成android.ipr和android.iml兩個IntelliJ IDEA(AS是基於IntelliJ IDEA社區版開發的)的配置文件
Tips:
AS在導入代碼時比較慢,建議先修改android.iml,將自己用不到的代碼exclude出去.可以仿照過濾.repo文件夾的語法,如:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
刪除掉所有不需要的mole-library項
這樣在導入時就會跳過abi和art文件夾.過濾的越多,AS的處理速度就會越快.
④在AS中打開源碼根目錄下新生成的android.ipr
如果在導入時AS出現
則建議按照其給定的解決方法來解決(網址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit)
四、解決源碼中跳轉錯誤問題
①為當前工程設置正確的SDK和JDK
②設置'Moles'的依賴
先將所有依賴刪掉(注意:這里刪除全部只是為了方便。如果確實用到了.jar,在將它們的路徑添加進來就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
點擊指向的'Jars or directories'選項,依次將frameworks和external文件夾添加進來.如:
註:推薦把frameworks和external這兩個移到最上面,這樣在代碼跳轉時會優先從這兩個文件夾下查找,而不是在Android.jar中查找。
其它版本的代碼在添加frameworks時可能會顯示成:
沒有關系,只是顯示問題,點擊OK還是會把frameworks路徑添加進去的.
如果還有代碼跳轉錯誤,請仿照上面的步驟將相應代碼的路徑或jar文件添加到其Dependencies標簽頁中即可.
五、DEBUG源碼
可以通過給剛導入的工程在'Moles'中添加'Android Framework'來讓AS將它作為一個Android工程,從而方便調試代碼.
可以來添加Android Framework支持.
在代碼中加斷點,然後選擇'Run'->'Attach debugger to Android process'
在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可.
六、其它
代碼中很多地方提示Call requires API Level x.... 出現這個問題是因為AS將工程當做安卓應用程序工程了,且源碼中沒有指定minSdkVersion.
只需在源碼根目錄加一個聲明minSdkVersion的AndroidManifest.xml文件即可(分享了一個AndroidManifest.xml)。
也可以考慮使用build.gradle來解決該問題。

J. Android 怎樣添加對應的許可權UID,使用 property

1.首先在源代碼根目錄(src下)下創建一個名為netconfig.properties的文件(也可以在其他目錄下)。

2.打開netconfig.properties文件,在該文件中添加下列代碼.

Java代碼:

#該處為注釋
IP=192.168.1.111
PORT=3535

MSG=這是一個很長的字元串,<br>我們可以使其換行 \
一行顯示不下時,<br>可以分行顯示。

#該處為注釋
IP=192.168.1.111
PORT=3535

MSG=這是一個很長的字元串,<br>我們可以使其換行 \
一行顯示不下時,<br>可以分行顯示。
說明:上面代碼中,#為配置文件中的注釋,而在配置文件中,可以使用<br>等進行格式處理,在配置文件中,如果某個屬性過長,一行不能輸入完全是,可以通過 \ 通知系統,下一行同樣為該屬性的值。
3.之後創建一個工具類Utils類,其代碼如下所列。
**
* @description: 工具類
* @version 1.0
* @created on 2010-12-3 下午02:39:52
*/
public class Utils {
/**
* 得到netconfig.properties配置文件中的所有配置屬性
*
* @return Properties對象
*/
public static Properties getNetConfigProperties() {
Properties props = new Properties();
InputStream in = Utils.class.getResourceAsStream("/netconfig.properties");
try {
props.load(in);
} catch (IOException e) {
e.printStackTrace();
}
return props;
}
}
4.在需要使用配置文件中配置的屬性值時,直接調用上述方法即可,如下所示。

String IP = Utils.getNetConfigProperties().getProperty("IP");

熱點內容
ac68u外網訪問 發布:2025-09-17 05:33:12 瀏覽:901
真我手機如何修改登錄密碼 發布:2025-09-17 05:20:26 瀏覽:314
電腦配置怎麼說 發布:2025-09-17 04:37:45 瀏覽:1002
三質數編程 發布:2025-09-17 04:04:41 瀏覽:560
ftp伺服器密碼如何修改 發布:2025-09-17 03:48:07 瀏覽:304
python爬蟲豆瓣 發布:2025-09-17 03:41:59 瀏覽:211
我的世界國際版加入伺服器電腦版 發布:2025-09-17 03:41:14 瀏覽:942
附件上傳相片 發布:2025-09-17 03:39:53 瀏覽:443
微信賬號密碼組合是什麼 發布:2025-09-17 03:30:05 瀏覽:401
windows如何查看ftp安裝環境 發布:2025-09-17 03:30:02 瀏覽:919