Сборник тестов: 1500 вопросов и ответов на знание Android - Тимур Машнин 18 стр.


Вопрос 7

Прикрепленные Intent кэшируются Android и могут быть доставлены BroadcastReceiver, которые не были зарегистрированы для получения этих намерений в то время как они первоначально транслировались. Как может BroadcastReceiver определить, намерение, которое он получает, только что было транслировано или было транслировано в прошлом, но только сейчас доставлено?

Проверьте EXTRA_BROADCAST_TIME, которое доставляется с намерением.

Используйте метод isInitialStickyBroadcast ().

Установите высокий приоритет для IntentFilter, используемый для регистрации BroadcastReceiver.

Используйте метод isOrderedBroadcast ().

Вопрос 8

В Java, потоки, работающие в одном и том же процессе используют общую динамически выделяемую память.

Да

Нет

Вопрос 9

В Java, когда поток создан, он будет немедленно выполнять его метод run ().

Да

Нет

Вопрос 10

Если ваша активность хочет обновить свою иерархию представлений из фонового потока, она может сделать это, пока она получает блокировку на корневой элемент иерархии представлений.

Да

Нет

Вопрос 11

Почему приложение должно избегать выполнения интенсивных вычислений и работы в главном потоке?

Оно не должно избегать этого. Некоторые разработчики не хотят, но это только личный выбор.

Вычисления можно выполнять в основном потоке, если вы используете специальные механизмы, такие как Renderscript.

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

Это тратит впустую ограниченный заряд батареи.

Вопрос 12

Если ваша активность создает свою иерархию представлений при вызове метода оnCreate (), как вы думаете, в каком потоке метод оnCreate () был вызван?

Вы должны использовать LogCat, чтобы распечатать ID потока.

Вы должны смотреть на ваш код, чтобы увидеть, если вызов пришел от одного из ваших потоков или из одного из потоков системы.

оnCreate () всегда вызывается в специальном потоке, созданном специально для активности, когда она стартует.

оnCreate () выполняется в потоке пользовательского интерфейса.

Вопрос 13

При использовании AsyncTask, в котором потоке метод onProgressUpdate класса AsyncTask вызывается?

Потоке пользовательского интерфейса.

Потоке AsyncTask.

Вопрос 14

AsyncTask предназначен для относительно краткосрочных фоновых операций (в течение нескольких секунд максимум), а не для более длительных операций.

Да

Нет

Вопрос 15

В каком потоке обработчик выполняет метод handleMessage ()?

Потоке пользовательского интерфейса.

Потоке, который обработчик создает в конструкторе обработчика.

Потоке, в котором обработчик был создан или был связан, когда обработчик создавался.

Вопрос 16

Предположим, у вас есть два обработчика, работающих в одном потоке. Если ваш код посылает сообщение в очередь MessageQueue, то как же очереди MessageQueue знать, какой обработчик должен обрабатывать его?

Looper выбирает, какой использовать обработчик.

Если сообщение является Runnable, тогда обработчик может решать, в противном случае используется обработчик с наименьшим объемом работы.

Отправитель сообщения может задать правило, например, дать сообщение для первого доступного обработчика.

Сообщение имеет целевое поле, которое определяет обработчик, который должен обрабатывать это сообщение.

Вопрос 17

Сигналы позволяют приложениям отправлять намерения (и, следовательно, выполнять операции) в какой-то момент в будущем. Какое из следующих утверждений объясняет одну из причин, почему приложение просто не использует Handler-обработчик для этого?

Обработчики должны работать в своих собственных потоках.

Обработчики могут работать в течение длительных периодов времени.

Обработчик должен реализовать Alarm ответ.

Приложение может уже не работать, когда операция должна быть выполнена.

Вопрос 18

Если вы создаете приложение, которое должно проверять наличие новых сообщений электронной почты каждые 30 минут, какой один из следующих типов сигналов вы скорее всего используете?

RTC.

RTC_WAKEUP.

ELAPSED_REALTIME.

ELAPSED_REALTIME_WAKEUP.

Вопрос 19

Какие из следующих утверждений описывают преимущества использования setInexactRepeating () метода, чтобы установить повторяющиеся сигналы?

Там нет никаких особых преимуществ. Это так же, как setRepeating ().

Android имеет большую гибкость, чтобы решить, когда именно запускать конкретные сигналы.

Старые устройства могут поддерживать этот метод, в отличие от setRepeating ().

Несколько сигналов могут быть запущены в одно время, что ограничивает число раз, когда устройство должно проснуться.

Вопрос 20

На какой порт приложение открывает Socket?

80.

22.

HOST.

api.geonames.org.

Вопрос 21

Какие из следующих методов HttpURLConnection могут быть использованы приложением для взаимодействия с сервером данных?

getInputStream ().

close ().

openConnection ().

try ().

Вопрос 22

JavaScript Object Notation язык хранит информацию в двух структурах данных. Какие это две из следующих структур данных?

Списки.

Деревья.

Сумки.

Карты.

Вопрос 23

После того, как Java поток создан, он, как правило, начинает работать, как только операционная система может запланировать его.

Да

Нет

Вопрос 24

Какие из следующих методов гарантированно работают в UI потоке приложения?

Activity.runOnUIThread ().

AsyncTask. doInBackground ().

View. post ().

Handler. sendMessage ().

Вопрос 25

Какие из следующих утверждений правильно отображают, почему приложение использует обработчик, чтобы передавать сообщения другому обработчику, а не размещает объекты Runnable для него, или наоборот?

Сообщения могут принимать параметры. Runnable объекты не могут.

Runnable объекты используются, когда Отправитель реализует действия, которые необходимо выполнить.

Сообщения используются, когда Handler реализует ответное сообщение.

Runnable объекты менее эффективны, чем сообщения.

Вопрос 26

Android поддерживает несколько HTTP клиентов. Какой из следующих HTTP-клиентов будет преимущественным HTTP клиентом для Android в будущем?

HttpURLConnection.

AndroidHttpClient.

URLStream

DefaultHttpClient

Вопрос 27

Какие из следующих утверждений, как правило, относятся к DOM-парсерам?

DOM-анализаторы используют потоковую модель, в которой анализатор делает вызов обратно в приложение, когда определенные элементы обрабатываются.

DOM-парсеры предоставляют итераторы, которые передают XML контент в приложение по запросу.

DOM-анализаторы, как правило, используют больше памяти, чем другие виды анализаторов, которые мы обсуждали в этом уроке.

DOM-анализаторы преобразуют XML-документ в виде древовидной структуры, что делает легче анализ документа в целом.

Вопрос 28

Какие типы уведомлений пользователей предоставляет Android?

Тост Сообщения.

Уведомления области уведомлений.

Фрагменты.

Вкладки.

Диалоги.

Вопрос 29

Тост сообщения используются для получения информации от пользователя?

Да

Нет

Вопрос 30

Почему уведомления области уведомлений используют PendingIntent?

PendingIntent может добавить слушателя к низлежащему намерению

Чтобы позволить дополнительным данным предоставляться активности, которая будет запущена.

Намерение, лежащее в основе, будет использоваться системой, а не компонентом, который создал намерение.

Лежащее в основе намерение имеет ссылку на передающий компонент, что может привести к утечкам памяти.

Вопрос 31

Что из следующего отображает, почему является предпочтительным уведомить пользователя с помощью уведомления области уведомлений, а не с помощью диалога, или наоборот.

Используйте уведомление области уведомлений для предотвращения вызова оnPause ().

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

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

Используйте диалоговое окно (DialogFragment) при использовании большого экрана устройства, такого как планшет.

Вопрос 32

Когда следует приложению широковещать, используя класс LocalBroadcastManager, а не с помощью контекстного класса, или наоборот?

Используйте LocalBroadcastManager чтобы зарегистрировать BroadcastReceivers, которые не хотят принимать радиопередачи из другого приложения.

Используйте LocalBroadcastManager чтобы транслировать намерения, которые будут получены только в том же приложении, которое посылает вещания.

Используйте контекстный класс, чтобы улучшить надежность работы приложений.

Использование класса Context не так эффективно, так как он обеспечивает глобальную передачу через всю систему.

Вопрос 33

Если ваше приложение хочет только получать определенные вещания, когда оно активно и на переднем плане, каким из следующих сценариев можно это реализовать?

Динамическая регистрация своих BroadcastReceivers в onResume () и отмена их в оnPause ().

Загрузка намерений в меню или ActionBar действий.

Статически зарегистрируйте свои BroadcastReceivers с низким приоритетом.

Динамическая регистрация своих BroadcastReceivers с низким приоритетом. Затем используйте abortBroadcast () во время выполнения, чтобы предотвратить доставку.

Вопрос 34

Какие из следующих утверждений отображают, как Alarm отличается от других Android возможностей?

Уведомления области уведомлений информируют пользователей о событиях, не прерывая работы, в то время как Alarm не непосредственно информируют пользователей.

Alarm запускаются в конкретный момент времени в будущем. Обычные Broadcast намерения обрабатываются, когда намерение транслируется.

Обработчики не могут быть использованы для отправки намерений в будущий момент времени.

Вопрос 35

Как программа получает доступ к AlarmManager?

Используйте метод Context. getSystemService (), чтобы получить ссылку на службу AlarmManager.

Используйте метод AlarmManager. newInstance () для получения единственного экземпляра AlarmManager.

Используйте AlarmManager () конструктор для создания экземпляра AlarmManager.

Поместите <manager> тег в AndroidManifest. xml файл приложения.

Вопрос 36

При установке Alarm, часто лучше использовать типы сигнализации ELAPSED_REALTIME или ELAPSED_REALTIME_WAKEUP, а не RTC или RTC_WAKEUP типов сигнализации. Какие из следующих утверждений объясняют, почему RTC и RTC_WAKEUP тревоги не могут быть лучшим подходом в некоторых случаях?

ELAPSED_REALTIME сигнализация может срабатывать, когда CPU находится в режиме сна.

Если пользователь вручную меняет часовой пояс или изменяет системные часы, RTC Alarms может сработать в непредсказуемое время.

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

Если сеть сбрасывает системные часы, RTC Alarms может сработать в непредсказуемое время.

Вопрос 37

Для API до 19: метод setInexactRepeating () предназначен, чтобы дать Android гибкость в точном запуске Alarm. Предполагая, что mAlarmManager является действительной ссылкой на AlarmManager и pi действительная ссылка на PendingIntent, почему следующий фрагмент кода (модифицированный из приложения AlarmCreate) не отвечает этой цели?

mAlarmManager. setInexactRepeating (AlarmManager. ELAPSED_REALTIME, SystemClock. elapsedRealtime (),15000, pi)

setInexactRepeating () требует типа сигнализации RTC или RTC_WAKEUP.

setInexactRepeating () требует определенные константы интервала, например, INTERVAL_FIFTEEN_MINUTES.

setInexactRepeating () является методом класса Alarm.

setInexactRepeating () требует временной интервал 60000 или больше.

Вопрос 38

Есть два различных способа рисования 2D графики. Один из способов это рисование с помощью View. Другой способ это рисование на холсте. Какие из следующих аргументов за рисование с помощью представления, а не с помощью Canvas?

Графика для приложения простая.

Память устройства ограничена.

Графику для приложения не нужно регулярно обновлять.

Устройство не поддерживает OpenGL.

Вопрос 39

Какой класс мы используем, чтобы сделать цветные круги в приложении?

BitmapDrawable.

ColorDrawable.

ShapeDrawable.

XMLDrawable

Вопрос 40

Класс Paint изменяет операции рисования. Какие из следующих характеристик рисования изменяются объектом Paint?

Размер текста.

layout_weight.

Ширина линии.

OnClick.

Вопрос 41

Когда вы создаете и используете пользовательский View-подкласс, в каком методе вы обычно реализуете рисование View?

onDraw (Canvas canvas)

buildDrawingCache ()

animate ()

Вопрос 42

Когда вы создаете и используете SurfaceView подкласс, какой метод вы обычно используете для получения холста, с помощью которого вы рисуете на SurfaceView?

lockCanvas ().

getSurface ().

draw (Canvas canvas).

Вопрос 43

При рисовании с SurfaceView, приложение обычно создает свой собственный поток, который затем используется для операций рисования. В каком методе приложение получает свой поток?

surfaceCreated (SurfaceHolder holder).

surfaceDestroyed (SurfaceHolder holder).

surfaceChanged ().

Вопрос 44

В приложении, которое сначала отображает голубой круг, а затем отображает пурпурный круг, который из следующих классов используется?

TransitionDrawable.

SurfaceView.

AnimationDrawable.

ShapeDrawable.

Вопрос 45

С помощью системы анимации свойств, если вам нужно анимировать свои собственные классы, какой один из следующих классов нужно реализовать, чтобы вычислить конкретные значения свойства для анимации?

ValueAnimator.

TimeInterpolator.

AnimatorUpdateListener.

TypeEvaluator.

Вопрос 46

В Android, мультитач экраны генерируют один трейсер движения на один указатель.

Да

Нет

Вопрос 47

Сенсорный жест может содержать несколько событий движения с участием нескольких указателей. Какое из следующих утверждений верно о событиях движения и указателях, которые они представляют?

Каждый указатель имеет уникальный идентификатор, который остается неизменным в течение жеста.

Каждый указатель имеет уникальный индекс, который остается постоянным в течение жеста.

Несколько указателей с кодом ACTION_POINTER_DOWN могут содержаться в одном и том же MotionEvent.

Жесты всегда заканчиваются с кодом ACTION_CANCEL действия.

Вопрос 48

Когда пользователь прикасается представления, какой метод представления вызывается для обработки этого прикосновения?

onTouchEvent (MotionEvent event).

isPressed ().

hasOnClickListeners ().

Вопрос 49

Какие из следующих жестов распознаются GestureDetector. SimpleOnGestureListener классом?

Fling.

Pinch/zoom.

Scroll.

LongPress.

Вопрос 50

Что является главной целью класса GestureOverlayView?

Перехват пользовательских жестов.

Соответствовать жестам библиотеки.

Загрузить жесты из файла ресурсов.

Определение индивидуальных жестов.

Тест 18

Вопрос 1

Какие типы данных могут быть использованы для идентификации рингтона при попытке извлечь мелодию с помощью одного из методов RingtoneManager. getRingtone ()?

int.

String.

Ringtone.

Uri.

Вопрос 2

Какие из следующих функций поддерживает класс MediaPlayer?

Позволяет приложениям прикрепить слушателей к MediaPlayer.

Позволяет пользователям/приложениям управлять воспроизведением мультимедиа.

Записывать аудио и видео потоки.

Позволяет приложениям установить медиа-поток для воспроизведения.

Вопрос 3

Предположим, ваше приложение использует MediaRecorder для записи звука. Какие из следующих методов MediaRecorder, вероятно, будут вызваны перед вызовом метода MediaRecorder. start ()?

setAudioSource ().

setOutputFile ().

setOutputFormat ().

setVideoEncoder ().

Вопрос 4

Предположим, ваше приложение хочет использовать камеру. Какие из следующих действий ему, вероятно, потребуется выполнять?

Получить экземпляр камеры.

Установить параметры камеры.

Настроить предварительный просмотр.

Начать просмотр.

Сфотографировать.

Освободить экземпляр камеры.

Все перечисленное.

Вопрос 5

Когда приложение использует изображение, например, ShapeDrawable, какой Drawable-метод должен вызываться приложением, чтобы нарисовать Drawable.

View. onDraw ().

Canvas. drawBitmap ().

Ни один. Drawable является рисунком, который передается в представление. Рисование этой графики обрабатывается View-системы.

View. paint ().

Вопрос 6

Предположим, ваше приложение создает и использует пользовательский подкласс представления. Когда это представление необходимо перерисовать, какие два из следующих методов скорее всего, будут вызваны?

Canvas. drawView ().

View. requestLayout ().

View. invalidate ().

View. onDraw ().

Вопрос 7

Приложение включает в себя res/drawable/view_animation. xml файл. Этот файл имеет <animation-list> тег. Какому Android-классу этот тег соответствует?

TweenAnimation.

AnimationDrawable.

AnimationSet.

FrameAnimation.

Вопрос 8

Как View-анимация отличается от Property-анимации?

View-анимация на самом деле не изменяет View-объект, только его появление на экране, в то время как Property-анимация будет изменять объект.

Назад Дальше