Как вы ориентируетесь в чужом коде?
Сначала поверхностно пробегаешься по тому, что можно назвать lifecycle чтобы понять что за чем идет. Это дает базовое понимание внутреннего устройства. Дальше читаешь код и комментарии (если они есть), документацию (если она есть). Переходишь между методами/функциями/классами, запускаешь через отладчик c остановкой в нужных точках, чтобы увидеть состояние приложения на нужный момент. Степень болезненности и геморройности данного процесса сильно зависит от качества архитектуры и качества кода в целом.
Смотрю код, что и как реализовано
Если есть возможность - запускаю, потом сморю что для чего нужно, помогает