Every single application that is installed on your phone, gets a UID.
It is a number that Android uses to identify the apps so it can check from what app commands are executed and check the permissions of the app to see if that app is allowed to execute the command. Privileges of applications are pretty restricted in Android. They can't see data folders of other apps, they can't modify the system and they can't do anything if user doesn't give them permission.
For example, when X app gets installed, it gets the UID 10000.
Android creates a data and a cache folder for this app. Whenever an app wants to access these folders, Android checks the UID of the app. If it is not UID 10000, then Android denies permission.
This is a good defense mechanism that restricts the abilities of possibly malicious apps that got installed. All apps have restricted access to almost anything that they themselves didn't bring to the device in the first place.
Even more, the user himself has limited access to the phone. So a user that doesn't know what he/she is doing can't do harm.
This is where all the root concept comes from. root is a special user with UID 0 and its abilities is not restricted by the OS, making it able to modify system and other apps.