Обычно при первом запуске приложения startProcessLocked()
в ActivityManagerService создает новый ProcessRecord
(при необходимости) и затем вызывает Process.start()
, который, в свою очередь, создает аргументы для zygote и отправляет в сокет zygote, используя zygoteSendArgsAndGetResult()
.Конечно, в этом есть нечто большее, например, если приложение совместно использует uid, изолирован и т. Д. Но это дает вам базовый процесс.
Просмотр источника действительно хороший способ понять, что происходитна.Однако, если вы не планируете его модифицировать, не загружайте AOSP, просто используйте GrepCode .Легче просматривать, искать и все гиперссылки, так что легко перейти к классам, найти использования, производные методы и т. Д. Если вы загрузите AOSP, вы застряли с grep, ack-grep, если вам повезет, и текстредактор.Кроме того, у вас будет только одна версия, которую вы выбрали для оформления заказа.GrepCode содержит код практически для каждой версии начиная с 1.5.
Приведенный выше текст приведет вас к соответствующему источнику на GrepCode.Попробуйте!Единственным недостатком является то, что GrepCode не включает нативный слой C ++.