Я работаю над службой Android, которая отслеживает изменения состояния окна на устройстве. Каждое событие регистрируется, включая сообщаемое имя пакета и имя класса, которые вызвали событие. Я заметил, что некоторые события имеют className
, который не находится внутри соответствующего packageName
.
Например, когда пользователь открывает приложение Chrome, я получаю событие, в котором имя пакета равно 'com.android.chrome
', а имя класса равно 'org.chromium.chrome.browser.ChromeTabbedActivity
».
У меня сложилось впечатление, что имена классов обычно являются подмножеством имени пакета (то есть, если класс ChromeTabbedActivity
находится в пакете com.android.chrome
, если будет иметь что-то вроде com.android.chrome.browser.ChromeTabbedActivity
).
Кто-нибудь знает, почему я вижу это явление, и мог бы объяснить, где мое понимание взаимосвязи между именами пакетов и именами классов неверно?