2015-02-24 3 views
1

У меня есть некоторые очень простые вопросы, отлично подходит для ответа.Прикладной процесс для Android

Вопрос 1. Когда кто-либо создает приложение для Android, которое генерирует файл * .apk и устанавливает этот apk на устройстве, можем ли мы сказать, что андроид создал новый процесс для этого apk?

Q 2. Если файл манифеста приложений Android имеет тег для приложения и внутри него есть только служба. и если он установлен на устройстве как apk.

Теперь этот сервис удаленно будет доступен другим приложением android с помощью helpl, в котором есть тег приложения и внутри которого есть Activity. которые получают доступ к удаленному сервису.

можно ли сказать, что сервис, получающий доступ к приложению и удаленному сервису, - это разные процессы? Я думаю да.

Мое предположение

  1. Любое приложение, которое имеет тег внутри файла манифеста и который генерирует APK и получить установленного на устройстве Android, то при запуске любого другого приложения или удаленно запускает свой собственный на каком-то событии намерения, то андроид рамочном начнет новый процесс, чтобы начать для этого apk. Пожалуйста исправьте ?

  2. android: процесс может быть установлен, если любые компоненты одного и того же приложения хотят запускаться в другом процессе или в другом компоненте приложения, который должен работать в том же процессе.

Пожалуйста, внимательно прочитайте, а затем ответьте только, дайте мне знать, если вам нужно больше объяснений.

+0

Это лучшее место для поиска ответов на ваши вопросы: http://developer.android.com/guide/topics/processes/process-lifecycle.html – middlehut

ответ

2

R1. Apk - это всего лишь пакет. Когда вы запускаете свое приложение на низком уровне, Linux-машина, на которой базируется Android, разветвит процесс под названием Zygote. Затем копия Zygote (которая уже имеет либо экземпляр машины Dalvik, отображаемой в его адресном пространстве, либо библиотеки ART и Ahead Time Time, скомпилированный код приложения), загрузит все классы java для конкретного приложения и все основные зависимости (native библиотеки), а также весь собственный код приложения.

Таким образом, он создает новый процесс только при запуске приложения. И предположительно вы можете создать любое количество процессов для одного и того же apk, который представляет собой только контейнер.

R2. Если в AndroidManifest у вас есть служба, объявленная как «экспортированная», она будет работать в отдельном процессе. Затем ваше приложение будет связываться с этим процессом с использованием механизма IPC под названием Binder, который представляет собой конкретную реализацию разделяемой памяти на уровне ядра. AIDL - это метаязык, который интерпретируется во время сборки и используется для автоматического создания Java-заглушек, которые будут работать вглубь с помощью собственного кода связующего.

+0

означает ли это, что каждый apk - это просто сервис, а не деятельности или деятельности. это отдельный процесс, созданный внутри страны. – Sachin

+0

Я не понимаю этот вопрос. Вы можете упаковать в apk либо службу, либо приложение. И сервис может также поставляться с BroadcastReceivers и ContentProviders. И приложение может поставляться с несколькими действиями, а также с BroadcastReceivers и ContentProviders. Все это компоненты платформы Android, а процесс - это работающая задача. Деятельность - это компоненты, которые отображаются на экране, и обычно услуга не нужна. –

+0

Независимо от того, содержит ли apk какую-либо деятельность или какую-либо услугу, которая может быть с BroadcastReceivers и ContentProviders. После запуска apk это правильный процесс. – Sachin

2

Всякий раз, когда кто-либо создает приложение для Android, которое генерирует файл * .apk и устанавливает этот apk на устройстве, можем ли мы сказать, что андроид создал новый процесс для этого apk?

Нет. Установка приложения не разрешает процесс для этого приложения.

можно ли сказать, что сервис, получающий доступ к приложению и удаленному сервису, - это разные процессы? Я думаю да.

По умолчанию они будут в отдельных процессах.

Смежные вопросы