Вопросы E-legion


Вопросы E-legion на тесте курса Android. + отмечены те ответы которые я считал правильными, но это не значит что так оно и есть. Вопросы собраны с нескольких тестов, как память о потраченном на него времени !
Сылка на таблицу со всеми правильными ответами!

1. Какое основное отличие между apply() и commit() у SharedPreferences.Editor при добавлении данных в Preferences?
    - apply() вносит изменения только в память, но для сохранения их на диск нужно вызывать commit()
    - commit() вносит изменения только в память, но для сохранения их на диск нужно вызывать apply
    + commit() вызывается синхронно, а apply() асинхронно при сохранении данных на диск. Но при этом данные в памяти обновляются моментально.
    + apply() и commit() отличаются только тем, что commit() возвращает boolean значение об успехе операции изменения данных.
2. Какое основное предназначение метода onLayout() у View?
    - Метод вызывается для определения местоположения текущего View в его Parent
    - Метод предназначен для вычисления размеров текущего View
    + Метод вызывается для определения местоположения детей относительно текущего View
    - Метод предназначен для вычисления размеров детей текущего View
3. Какой тип данных можно положить в Bundle? *
    - Любой Object можно передать в bundle (и все варианты что ниже)
    + Можно передавать Map - связка ключ, значение
    - Bundle не предназначен для передачи данны
    - Можно передавать Bundle в Bundle
4. Можно ли отправлять и читать SMS сообщения? *
    - Можно читать, если есть нужный permission, но отправлять нельзя
    + Можно читать и отправлять, если на это есть специальные permissions.
    - Можно отправлять если есть нужный permission, но читать нельзя
    - Нельзя ни отправлять, ни читать. Никаких похожих Permissions нет.
5. О каких событиях нельзя получить уведомление через BroadcastReceiver в приложении?
    - Телефон загрузился
    - Состояние сети изменилось
    + Текущее приложение было удалено
    - Входящий звонок
6. Что произойдет, если несколько раз вызывать startService?
    - Создастся столько инстансов сервисов, сколько раз вызывался startService
    - Произойдет ошибка при повторном вызове. Приожение автоматически остановится. Необходимо делать проверку перед запуском сервиса, что сервис не запущен
    - При каждом запуске startService будет создан новый инстанс, но запуск сервиса произойдет только после завершения предыдущего сервиса
    + Будет создан один истанс, все последующие startService() уведомляют ранее созданный экземпляр через специальный метод
7. Что характерно для IntentService?
    - IntentService выполняется в отдельном потоке. При нескольких вызовах будет создано столько IntentService, сколько раз сколько вызывался запрос. Все выполняется параллельно
    + IntentService выполняется в отдельном потоке. При нескольких вызовах будет создан один IntentService, все запросы выполняются последовательно
    - IntentService выполняется в UI потоке. При нескольких вызовах будет создано столько IntentService, сколько раз сколько вызывался запрос. Все выполняется параллельно
    - IntentService выполняется в UI потоке. При нескольких вызовах будет создан один IntentService, все запросы выполняются последовательно
8. Какой метод не доступен для рисования на Canvas?
    - drawLine
    - drawPaint
    - drawRect
    + Все методы доступны
9. От какого класса наследуются все UI элементы, способные содержать другие UI элементы?
    - View
    + ViewGroup
    - LayoutView
    - RootView
10. Какого из Layout не существует в стандартном SDK?
    - LinearLayout
    + FragmentLayout
    - RelativeLayout
    - TableLayout
11. Сколько раз вызывается Service.onStartCommand?
    - Один раз, при запуске сервиса
    + Каждый раз, когда вызывается Context.startService с соответствующим Intent-ом
    - Каждый раз, когда приложение «уходит» в фоновый режим работы
    - Каждый раз, когда происходит binding к сервису
12. В каком потоке выполняется вызов метода OnClickListener.onClick у View?
    - В потоке, который указан программистом при создании View
    - В отдельном потоке, который создает Android при регистрации события
    - В потоке, в котором было создано View
    + В главном потоке приложения
13. Если вернуть false из View.onTouchEvent, в ответ на MotionEvent с действием ACTION_DOWN, то:
    + Ни один MotionEvent текущего жеста больше не попадет в onTouchEvent данного View
    - Если данное View не является ViewGroup, то Android никак не интерпретирует возвращаемое значение
    - Все MotionEvent-ы текущего жеста будут попадать в это View
    - Если данное View является ViewGroup, то Android никак не интерпретирует возвращаемое значение
14. Если печатать логи в каждом из перечисленных методов activity: onCreate, onStart, onResume, onPause, onRestart, onDestroy, какие цепочки логов невозможны?
    - onPause - onDestroy - onCreate — onStart
    - onPause - onCreate — onStart
    + onPause - onRestart - onResume — onPause
    - onPause - onResume - onPause — onRestart
15. Какие ограничения имеют экземпляры класса Service?
    + Выполняться в том же процессе, что и само приложение
    - Выполняться в отдельном от основного приложения процессе
    - Запускать activity
    - Все варианты неправильные
16. При каких значениях параметра “android:launchMode” activity будет существовать в системе максимум в одном экземпляре?
    - standard и singleTop
    - singleTop и singleTask
    + singleTask и singleInstance
    - singleInstance и standard
17. Как внутри метода activity onCreate() определить, что activity была пересоздана, а не запущена в первый раз?
    - Только так: getIntent() == null;
    + Только так: savedInstanceState != null;
    - Только так: isChangingConfigurations();
    - Можно использовать любой из вышеперечисленных способов
18. Чем могут быть вызваны утечки памяти?
    + Сохранение ссылки на Activity или View в статической переменной
    - Вызов FragmentManager.replace() не на GUI-потоке
    - Циклические ссылки
    - Отсутствие вызова setContentView(null) в методе Activity.onDestroy()
19. Что из нижеперечисленного появилось в Android Lollipop?
    + Material design
    - Поддержка нескольких пользователей
    - Поддержка NFC
    - Всё перечисленное
20. Как приложение может получить доступ к внутренним файлам другого приложения?
    + У обоих приложений в AndroidManifest.xml должен быть указан одинаковый sharedUserId
    - Приложения должны иметь одну подпись
    - Варианты 1 и 2 вместе
    - Никак
21. Возможно ли изменять компоненты пользовательского интерфейса из background thread?
    + Невозможно. UI может быть изменен только из UI thread. При попытке изменения системой будет выброшен Exception
    - Невозможно. UI может быть изменен только из UI thread. При попытке изменения ничего не произойдет
    - Возможно с использованием Handler или runOnUIThread()
    - Возможно из любого потока
    - Правильные вариант 1 и 2
    - Правильные вариант 1 и 3
22. Какие из методов (onPause, onStop, onDestroy) будут вызваны у activity, если в результате нажатия пользователем кнопки внутри этой activity будет показан диалог (наследник DialogFragment)?
    - onPause -> onStop -> onDestroy
    - Только onPause -> onStop
    + Только onPause
    - Ни один из методов
23. В каких случаях пересоздается activity, созданная с параметрами по умолчанию?*
    - После перезагрузки устройства
    - При выходе приложения из background
    + При повороте экрана
24. ContentProvider-ы можно использовать, как слой абстракции для следующих источников данных:
    - только база данных SQLite
    - только текстовые файлы
    - только Shared Preferences
    + Для любых источников данных, включая описанные выше
25. Верно ли, что ContenProvider, реализованный в одном приложении, доступен другим приложениям?
- Верно
- Верно, но при первом использовании пользователю будет задан вопрос о разрешении доступа
+ Верно, если есть соответствующая настройка в манифесте
- Не верно
26. Что будет если в манифесте не указать "главную" Activity?*
- Возникает ошибка сборки приложения
+ Возникает ошибка при установки приложения
- Возникает ошибка при установки приложения при API >= 11
- Приложение соберется и установиться, но не появиться в списке приложении на устройстве
27. Какой метод класса ViewGroup (или его потомков) при первой отрисовке вызовется первым? *
- onDraw
- onSizeChanged
+ onMeasure
+ onLayout
28. Каким способом нельзя сохранить ссылку на AsyncTask при пересоздании activity
- С помощью методов onRetainNonConfigurationInstance() / getLastNonConfigurationInstance()
+ С помощью методов onSaveInstanceState() / onRestoreInstanceState()
- Сохранить ссылку в объекте Application
- Сохранить ссылку в объекте Fragment
29. Какой из ниже перечисленных механизмов или компонентов, привязывается к жизненному циклу Activity или Fragment? *
+ Поток, созданный в активити
- Компонент Services
- LoaderManager + Loaders
- AsynkTask с методами onPostExecute и onPreExecute
30. Что произойдёт, если вернуть null из Fragment.onCreateView?
- Возникнет исключительная ситуация NullPointerException в конструкторе фрагмента
- Возникнет исключительная ситуация NullPointerException во время транзакции если не указан тег
- Возникнет исключительная ситуация NullPointerException во время транзакции
+ Допустимо возвращать null
31. Что произойдет при попытке выполнить сетевой запрос с помощью URLConnection из основных методов компонента Services на Android OS 4+?
- Выполнится запрос, UI тормозить не будет
- Выполнится запрос, но UI системы будет тормозить, пока выполняется запрос
- Запрос не выполнится, так как Services не предназначены для этого
+ Запрос не выполнится, так как Services запускается в UI потоке и приложение упадет с ошибкой
32. Какой максимальный размер APK файла можно загрузить в Google Play?
+ 50мб
- 64мб
- 128мб
- Нет ограничений на размер APK файла
33. Какой порядок жизненного цикла правильный во Fragment?*
+ onAttach(), onCreateView(), onAcitivtyCreated(), onDetach()
- onAttach(), onAcitivtyCreated(), onCreateView(), onDetach()
- onAcitivtyCreated(), onAttach(), onCreateView(), onDetach()
- onCreateView(), onAttach(), onAcitivtyCreated(), onDetach()
34. Как называется набор утилит для подключения нативных библиотек?
- ADB
- SDK
+ NDK
- ADT
35. В каком порядке закончит свою работу два AsyncTask-а, запущенные последовательно? *
- Зависит от того, как долго они выполняются, так как AsyncTask-и работают параллельно
+ Если API >= 11, то закончат в порядке запуска
- Если API < 11, то закончат в порядке запуска
- Если API < 11, то зависит от того, как долго они выполняются, так как AsyncTask-и работают параллельно
36. Какие компоненты никогда не прописываются в манифесте?
- Activity
- Service
- Receiver
+ Loader
37. Что нельзя сделать с помощью Intent?
- Запустить Activity
- Запустить Service
- Отправить широковещательное сообщение
+ Прочитать данные из ContentProvider
38. Какой способ сохранения ссылки на runtime-объект (например AsyncTask) при пересоздании activity рекомендуется в официальной документации android?
- С помощью методов onRetainNonConfigurationInstance() / getLastNonConfigurationInstance()
- С помощью методов onSaveInstanceState() / onRestoreInstanceState()
- Сохранить ссылку в объекте Application
+ Сохранить ссылку в объекте Fragment
39. При запуске Activity из Service нужно:
- Вызывать startActivity() на главном потоке Service
+ Добавить в Intent флаг FLAG_ACTIVITY_NEW_TASK
- Добавить в Intent флаг FLAG_ACTIVITY_NEW_INSTANCE
- Использовать метод Context.startActivityFromBackground()
40. В каких случаях в приложении может быть несколько файлов AndroidManifest.xml?
- В случае поддержки разных локализаций и конфигураций
- В случае, если в Google Play устанавливается разная цена в зависимости от региона
- В случае наличия нескольких стартовых Activity
+ Ни в каких, AndroidManifest.xml всегда один
41. Какой компонент не может быть запущен при помощи Intent?
+ Content provider
- Broadcast receiver
- Activity
- Service
42. Чему равен 1 dp., если плотность пикселей экрана устройства соответсвует hdpi?*
- 1 px
+ 1,5 px
- 2 px
- 3 px
43. При нехватке ресурсов в системе какой из перечисленных процессов android убьет в последнюю очередь, при условии, что ни один из процессов в данный момент не отображает видимого пользователю UI-интерфеса?
- Процесс, в котором запущены три activity
+ Процесс, в котором запущен сервис и одна activity
- Процесс, который не содержит ни одного запущенного компонента
- Процесс, который занимает меньше всего памяти
44. Какие проблемы могут возникнуть, при добавлении ListView в ScrollView?
- Проблем не будет, все будет корректно работать
- Возникнет ошибка отрисовки элементов на экране, элементы не отрисуются
- Возникнет проблема скролинга, один из элементов скролиться не будет
+ Скролл не будет работать ни в одном из элементов
45. Как обойти проблему 65к методов?
- Проблема не обходится, нужно писать меньше методов.
- После компиляции APK необходимо сжать с помощью архиватора
+ Использовать Multidex
- Задать в настройках сборки специальные параметры
46. Какое расширение имеет файл со скомпилированным байткодом в APK файле?
- jar
+ dex
- class
- apk
47. Что такое Toast?
- UI элемент, добавляемый в Layout
- Alert диалог
+ Всплывающее сообщение, скрываемое через Х миллисекунд
- Системное сообщение в шторке устройства
48. Чей onCreate может быть вызван до Application.onCreate?
+ ContentProvider.onCreate
- Ничей, Application.onCreate всегда вызывается до создания каких-либо сущностей приложения
- Receiver.onCreate
- Activity.onCreate
49. Какие ограничения имеют экземпляры класса Activity?
- Занимать не весь экран
- Быть запущена из другого приложения
- Возвращать результат
+ Все варианты неправильные
50. Какой(ие) метод(ы) обязательны для переопределения при создании AsynсTask?
+ doInBackground()
- doInBackground() и onProgressUpdate()а
- doInBackground(), onProgressUpdate(), onPostExecute(), onPreExecute()
- doInBackground() и onCancelled()
51. Какой permission необходимо указать в AndroidManifest.xml при использовании HttpURLConnection?
- android.permission.INTERNET и android.permission.WRITE_EXTERNAL_STORAGE
- android.permission.INTERNET и android.permission.ACCESS_NETWORK_STATE
+ только android.permission.INTERNET
- для использования HttpURLConnection не требуется никакой permission
52. В каком потоке выполняется вызов методов Service-ов?
- В потоке, который указан программистом при создании сервиса
+ В главном потоке приложения
- В потоке, который создаётся ОС специально для сервисов данного приложения
- В потоке, который создаётся для каждого сервиса
53. Чего нельзя добиться с помощью параметра activity “android:configChanges”?
- Отключить пересоздание activity при смене ориентации экрана
- Отключить пересоздание activity при смене языка в настройках android
+ Совсем отключить пересоздание activity
54. Что не может Activity?
- Занимать не весь экран
- Быть запущена из другого приложения
- Возвращать результат
+ Все варианты неправильные
55. Позволяет ли android автоматически менять стиль пользовательского интерфейса в зависимости от времени суток?
- Не позволяет. Разработчику нужно самостоятельно разрабатывать функции определения текущего времени и вручную выбирать нужный layout
- Не позволяет, но SDK предоставляет метод getResources().getConfiguration().isNight() для определения ночного времени суток
+ Позволяет, для этого можно определить разные файлы ресурсов с использованием квалификаторов night и/или -notnight
- Позволяет, для этого можно определить разные файлы ресурсов с использованием квалификатора -daytime
56. Какая операция запрещена в onLoadFinished?
- Создание и запуск Loaders с помощью методов initLoader() или restartLoader()
- Запуск новых Activity методом startActivity
+ Операции связанные с commit Fragment Transactions
- Любые действия с UI элементами, требующих выполнения в UI потоке
57. В чем основное отличие ART от Dalvik?
- Никаких отличий, просто решили переименовать
- Приложения на Dalvik работают быстрее за счет виртуальном машины
+ Приложения на ART работают быстрее за счет предварительной преобразования байткод в момент установки приложения
- Скорость компиляции приложения
58. Что не является компонентом, описываемым в манифесте?
- Activity
- Service
- Receiver
+ Loader
59. Каким образом можно вызвать метод, доступа к которому нет на этапе компиляции?
- При помощи mirroring
+ При помощи reflection
- При помощи dependency injection
- Никак нельзя
60. Что представляет из себя Google Play Services ?
- Набор подключаемых и документированных библиотек для доступа к Google Services
- API документация, для доступа к Google Services
- Установленное на устройство пользователя приложение Google Play Services, доступ к которому происходит через вызовы Intent
+ Установленное на устройство пользователя приложение Google Play Services, доступ к которому происходит через набор подключаемых библиотек.
61. В каких случаях создаётся объект Application, если он ещё не создан?
- При запуске Activity
- При запуске Service
- При создании BroadcastReceiver
+ Во всех этих случаях
62. Как остановить сервис? (выберите НЕПРАВИЛЬНЫЙ вариант ответа)
- метод StopService
- метод StopSelf
+ оба варианта


Не "фонтан", но и не 0. Результатом не доволен, но результат оправдан. Назвать себя программистом Android было бы большим преувеличением, но мы не остановимся на достигнутом, а будем поступательно, шаг за шагом, идти вперед.
Наша цель: стать программистом Android.