Android startActivity - что происходит - PullRequest
1 голос
/ 24 января 2012

Что происходит под капотом? каким-то образом это передается в ОС, и когда-нибудь ОС найдет правильное действие / действия и запустит его? Есть ли служба / lib, работающая в Android, обрабатывающая это? Я пытаюсь изменить ОС, чтобы переопределить логику startActivity по всем направлениям, это возможно?

Спасибо.

Ответы [ 3 ]

1 голос
/ 25 января 2012

Я бы взглянул на источник Android!Всякий раз, когда я развиваюсь и сталкиваюсь с проблемой, я читаю источник, чтобы узнать, что происходит под капотом;это довольно интересно!Это понимание того, что на самом деле происходит, а также очень хорошие рекомендации по документации и форматированию кода!

http://source.android.com/source/downloading.html

0 голосов
/ 28 июня 2014

Обычно при первом запуске приложения startProcessLocked() в ActivityManagerService создает новый ProcessRecord (при необходимости) и затем вызывает Process.start(), который, в свою очередь, создает аргументы для zygote и отправляет в сокет zygote, используя zygoteSendArgsAndGetResult().Конечно, в этом есть нечто большее, например, если приложение совместно использует uid, изолирован и т. Д. Но это дает вам базовый процесс.

Просмотр источника действительно хороший способ понять, что происходитна.Однако, если вы не планируете его модифицировать, не загружайте AOSP, просто используйте GrepCode .Легче просматривать, искать и все гиперссылки, так что легко перейти к классам, найти использования, производные методы и т. Д. Если вы загрузите AOSP, вы застряли с grep, ack-grep, если вам повезет, и текстредактор.Кроме того, у вас будет только одна версия, которую вы выбрали для оформления заказа.GrepCode содержит код практически для каждой версии начиная с 1.5.

Приведенный выше текст приведет вас к соответствующему источнику на GrepCode.Попробуйте!Единственным недостатком является то, что GrepCode не включает нативный слой C ++.

0 голосов
/ 25 января 2012

Хорошей отправной точкой может быть ActivityManagerService

...