Der folgende Link gibt eine kurze Beschreibung des Paketinstallationsprozesses in Android.Wie UID einer App bei der Installation in Android ermittelt?
http://java.dzone.com/articles/depth-android-package-manager
Ich bin neugierig, wie die UID einer App bei der Installation basierend auf legen Sie die Berechtigungen in seiner Manifest-Datei bestimmt wird.
Auch dort ist die platform.xml (in/frameworks/base/data/etc Verzeichnis für 4.0 ICS Source Code) Datei, die Liste der Berechtigungen mit GID mit ihnen verbunden enthält. Die Beschreibung sagt
Die folgenden Tags verknüpfen Low-Level-Gruppen-IDs mit Berechtigungsnamen. Wenn Sie ein solches Mapping angeben, sagen Sie , dass jeder Anwendungsprozess, der die angegebene Berechtigung erteilt hat, auch mit der angegebenen Gruppen-ID ausgeführt wird, so dass alle Dateisysteme (Lesen, Schreiben, Ausführen) zulässig sind für diese Gruppe.
In ähnlicher Weise gibt es auch eine Liste von Berechtigungen auf hoher Ebene, die bestimmten UIDs zugewiesen sind.
Meine Frage ist, wenn eine App mit Berechtigungen X, Y, Z wie funktioniert der Zugriff angegeben ist es aus der Abbildung aus diesem platform.xml
auch jedes Mal der App ausgeführt wird, die Zuordnung stattfinden wird installiert wird, Jeder Augenblick (das scheint nicht von Anfang an Design von Android, wo die App-Berechtigungen nicht geändert werden können, es sei denn, es gibt ein Update). Also, wenn das der Fall ist, wo es speichert, sagt, dass diese App mit solchem und solchem Zugang oder solcher und solcher uid laufen sollte.
Ich hoffe, ich habe meine Frage klar gemacht, lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Ich versuche nur mehr darüber zu erfahren, wie die Interna des Android OS funktionieren.
Dank
Vielen Dank macht mehr Sinn. Sobald GIDs einer Anwendung zugewiesen sind, werden sie irgendwo gespeichert, damit sie schneller abgerufen werden können, wenn die Anwendung aufgerufen wird. Oder würden sie auf der Grundlage der Berechtigungen, die die Anwendung in ihrer Manifest-Datei hat, erneut berechnet? Ich versuche nur herauszufinden, wo die Gids zugeordnet werden, wenn eine Anwendung aufgerufen wird. Vielen Dank im Voraus nochmal Yury. –
Soweit ich mich erinnere, gibt es im PackageManager einen Cache, der die Informationen über die Gids speichert. Wenn also ein Aufruf erfolgt, werden diese Informationen aus diesem Cache abgerufen und für das Setzen auf einen Zygote-Prozess verwendet. – Yury