Martovskij, если кратко: ядра приложения нет. Вот нет и всё. Философия самой системы построена на том, что каждый отдельный отдельно взятый Activity является отдельным приложением, которое можно вызывать независимо от других. Единственное, что их связывает - общий объект
Application.
1. Здесь важно понимать весь
жизненный цикл Activity, объект
Bundle, который сохраняется даже есть Activity удалено и хранит необходимые данные, и события
onSaveInstanceState() и
onRestoreInstanceState(), в которых и происходит сохранение/загрузка данных.
2. Сокеты открываются в отдельных потоках, которые никак не зависят от Activity. С файлами - по ситуации, если записать/считать пару строк, то можно и в Activity, если писать/читать постоянно - лучше сервис, который запускает отдельный поток на каждую итерацию записи.. Главное - не забывайте закрывать файлы (в методах объектов
finalize и Activity
onDestroy).
3. В среднем по больнице - сервис такой же компонент приложения, как и Activity. И в большинстве своём, приложения не базируются на сервисе (пример исключения - аудио проигрыватель, основную работу делает сервис, через Activity пользователь меняет треки).
4. На андроиде подход иной. Работать может только одно Activity, несколько сервисов, которые могут общаться между собой посредством
Broadcast'ов или Intent'ов.
5. Не думаю, что Intent можно считать реализацией паттерна "Команда". Intent'ом вы фактически запускаете новое приложение с установленным набором данных, а не просто вызываете метод некого объекта.