Автор книги: Тимур Машнин
Жанр: Компьютеры: прочее, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 8 (всего у книги 25 страниц) [доступный отрывок для чтения: 8 страниц]
Тест 13
Вопрос 1
Как создать сервис с одним потоком в нем?
Создать сервис с одним потоком в оnCreate ().
Использовать Intent Service.
По умолчанию каждый сервис имеет один рабочий поток, так что нет необходимости создавать его.
Все перечисленное.
Вопрос 2
По умолчанию процесс (приложение) сколько будет иметь потоков? Кто будет создавать эти потоки?
По умолчанию нет потоков.
2 потока, созданные Android системой.
1 главный поток, созданный Android системой.
Вопрос 3
Поддерживает ли Android многозадачность? Как многозадачность работает в Android, как начать новую задачу, когда вы уже имеете работающую задачу?
Нет, Android не поддерживает многозадачность. Но многопоточность возможна.
Android поддерживает многозадачность, но только на уровне системы, она не доступна для программистов.
Android поддерживает многозадачность на уровне приложения также. Нажатие домашней кнопки на текущей задаче переведет ее в фоновый режим, а затем вы можете начать новую задачу из загрузчика.
Android поддерживает многозадачность на уровне приложения также. Нажатие домашней кнопки на текущей задаче переведет ее в фоновый режим, а затем вы можете начать новую задачу из загрузчика. Вместе с тем, есть еще один способ начать новую задачу с помощью FLAG_NEW_TASK, когда вы запускаете новую активность.
Вопрос 4
Поддерживает ли Android многопоточность?
Да, Android поддерживает и многозадачность и многопоточность.
Нет, Android поддерживает только многозадачность.
Да, Android поддерживает многопоточность, но не поддерживает многозадачность.
Вопрос 5
В чем разница между многопоточностью и многозадачностью?
Многозадачностью является способ, с помощью которого несколько задач, также известных как процессы, разделяют общие ресурсы, такие как центральный процессор. С многозадачностью, вы можете одновременно запускать несколько приложений.
Многопоточность расширяет многозадачность в приложениях, так что вы можете разделить несколько операций в рамках одного приложения в отдельные потоки. Каждый из потоков может выполняться параллельно.
Все перечисленное.
Вопрос 6
Какой механизм используется Android для межпроцессного взаимодействия?
Searialization
Parcel
Binder
Можно использовать любой из указанных выше механизмов, но использование сериализации в Android является не подходящим, потому что это задерживает механизм IPC.
Вопрос 7
Можно ли обновлять UI из фонового потока непосредственно? Что произойдет, если сделать так?
Ничего не произойдет, любой поток может обновить интерфейс.
Android следует однопоточной модели пользовательского интерфейса, так что другие потоки не могут обновлять интерфейс.
Android следует однопоточной модели пользовательского интерфейса, так что другие потоки не могут обновлять интерфейс. Другой поток может обновить интерфейс с помощью Handler или метод runOnUIThread ().
Android следует многопоточной модели пользовательского интерфейса, но только поток пользовательского интерфейса может обновить интерфейс.
Вопрос 8
Как межпотоковая коммуникация работает в Android?
Не работает в Android
Может создать с помощью обычных потоков. Создайте 2 потока и отправляйте сообщения между ними.
Возможно только через Handler Thread. Потому что Handler Thread позволяет передавать сообщения с помощью Looper.
Возможно через Handler Thread. Потому что Handler Thread позволяет передавать сообщения с помощью Looper. Без Handler Thread этого также можно добиться через обычный поток, если программист подготовит свой Looper программно.
Вопрос 9
Создать поток в активности и остановить эту активность, тогда что произойдет с этим потоком, он будет жив или мертв?
Он будет жив, но его приоритет будет меньше, по сравнению с потоком в сервисе.
Поток, созданный активностью, будет убит сразу же после того, как активность потеряет свой фокус, или будет убита.
Он будет жив в течение некоторого времени, а затем будет уничтожен сборщиком мусора.
Он будет жив во веки веков, и он будет потреблять память.
Вопрос 10
В чем разница между задачей, процессом, приложением и потоком?
Задача, процесс и приложение это одно и тоже. Но поток это часть процесса.
Процесс и приложение это одно и тоже. Задача может содержать одно или несколько приложений. Поток это внутренняя часть процесса, созданного ОС.
Процесс и задача это одно и тоже. Приложение означает программу. Поток является частью задачи.
Процесс и поток это одно и тоже. Аналогично приложение и поток одинаковы.
Вопрос 11
Как избежать проблем синхронизации в потоках?
Используйте синхронизированный блок.
Используйте синхронизированные методы.
Используйте синхронизированные потоки.
Все перечисленное.
Вопрос 12
В чем разница между синхронизированным блоком и синхронизированными методами
Синхронизированный метод – все выражения в нем синхронизированы. Синхронизированный блок – только блок кода синхронизирован, не весь метод.
Синхронизированный метод – если уже поток держит блокировку объекта функции, тогда другие потоки не могу вызвать другой синхронизированный метод того же объекта. Синхронизированный блок – если функция имеет 1000 строк кода, и я получаю доступ к общим данным только в 500 строке, тогда лучше поставить синхронизированный блок, чем сделать всю функцию синхронизированной.
Синхронизированный метод всегда лучше использовать по сравнению с синхронизированным блоком.
Вопрос 13
Что такое Looper, очереди сообщений и Handler?
Looper – часть любого потока для цикла через очередь сообщений. Очередь сообщений – часть любого потока для хранения входящих и исходящих сообщений для этого потока. Handler – канал связи между потоками. Мы можем использовать только один Handler-обработчик для связи между любыми потоками.
Looper – часть любого потока для цикла через очередь сообщений. Очередь сообщений – часть любого потока для хранения входящих сообщений для этого потока. Канал связи между двумя потоками – Handler.
Looper – часть любого потока для цикла через очередь сообщений. По умолчанию каждый поток будет иметь активированный Looper. Очередь сообщений – часть любого потока для хранения входящих сообщений для этого потока. Канал связи между двумя потоками – Handler.
Looper – часть любого потока для цикла через очередь сообщений. По умолчанию каждый поток будет иметь активированный Looper. Очередь сообщений – часть любого потока для хранения входящих сообщений для этого потока. Handler – канал связи между двумя потоками. Для данного потока мы должны иметь только один обработчик.
Вопрос 14
Главный поток будет иметь Looper. Правда это или ложь?
Да, каждый поток по умолчанию будет иметь Looper.
Нет, только handler thread будет иметь Looper.
Только основной поток будет иметь Looper.
Основной поток это handler thread, так что он имеет активированный Looper. Только handler thread будет иметь Looper, но мы можем подготовить Looper для обычного потока также.
Вопрос 15
Что из следующего верно о фрагменте?
Я могу использовать фрагмент без активности.
Фрагмент может содержать несколько активностей.
Активность может содержать несколько фрагментов.
Фрагмент выполнен в одной активности не может быть повторно использован в другой активности.
Вопрос 16
Что такое Fragment в Android?
Фрагменты предназначены эффективно использовать пространство пользовательского интерфейса устройства.
Фрагменты предназначены в качестве многократно используемых компонентов для нескольких активностей.
Фрагмент будет иметь свой собственный жизненный цикл, который не будет зависеть от жизненного цикла активности.
Фрагмент будет иметь свой собственный жизненный цикл, который будет зависеть от жизненного цикла активности.
Вопрос 17
Как найти фрагмент в активности?
findViewById (R. id. frag_id);
FragmentManager. findFragmentById (R. id. frag_id);
LayoutManager. findFragmentManager (R. id. frag_id);
Context. findFragmentById (R. id. frag_id);
Вопрос 18
Как создать различные файлы макета для портретной и альбомной ориентации устройства?
Это невозможно.
Положить два разных файла в папке layout, использовать один для портретной и другой для альбомной ориентации, основываясь на изменении ориентации.
Использовать папку layout-port в режиме портретной ориентации и layout-land папку в ландшафтном режиме.
Использовать папку layout-port для портретного режима и папку layout в ландшафтном режиме.
Вопрос 19
Как вернуть компоновку фрагмента? Какая функция реализована в классе Fragment для этого?
onCreate ()
onCreateView ()
getView ()
getFragmentView ()
Вопрос 20
Можно ли иметь фрагменты без UI в Android?
Фрагмент никогда не имеет никакого пользовательского интерфейса.
Фрагмент, как правило, обеспечивает свой интерфейс, используя свой собственный макет. Но, возможно, фрагмент не имеет пользовательского интерфейса в некоторых случаях, так как это не является обязательным.
Фрагменты всегда должны иметь свой собственный макет и обеспечивать свой интерфейс.
Вопрос 21
Как создать активность, которая имеет фрагмент с ListView?
Использовать активность, фрагмент, макет, который будет иметь ListView.
Использовать активность и ListFragment.
Используйте только активность с компоновкой, которая имеет ListView в нем.
Используйте только ListFragment без какой-либо активности.
Вопрос 22
Что из следующего не является классом Fragment?
Fragment
DialogFragment
PreferenceFragment
ActivityFragment
Вопрос 23
Какие из перечисленных ниже функций не являются частью жизненного цикла фрагмента?
onCreateView ()
onDetach ()
onActivityDestroyed ()
onActivityCreated ()
Вопрос 24
Что из следующего является правильной последовательностью жизненного цикла фрагмента?
onAttach ()
onCreate ()
onCreateView ()
onStart ()
onActivityCreated ()
onResume ()
onAttach ()
onCreateView ()
onCreate ()
onActivityCreated ()
onStart ()
onResume ()
onAttach ()
onCreate ()
onCreateView ()
onStart ()
onActivityCreated ()
onResume ()
onAttach ()
onCreate ()
onCreateView ()
onActivityCreated ()
onStart ()
onResume ()
Вопрос 25
Пусть Х это фрагмент активности, Y и Z являются фрагментами, где Y это отображаемый экран по умолчанию. Если мы должны открыть Z, тогда:
Y должен использовать менеджер фрагмента, чтобы открыть экран Z.
Y должен использовать намерение, чтобы открыть экран Z.
Y должен использовать FragmentTransaction с FragmentManager и заменить себя экраном Z.
Ничего из перечисленного.
Вопрос 26
Что такое пустой процесс в Android?
Пустой процесс – приложение без каких-либо компонентов в нем.
Пустой процесс – приложение, которое разрушено и до сих пор в памяти.
Пустой процесс – приложение, которое разрушено и удалено из памяти.
Пустой процесс – приложение без каких-либо компонентов, но всегда в памяти.
Вопрос 27
Что такое режим сна в Android? Что произойдет с процессором, если экран (LCD) погаснет?
Спящий режим – это когда телефон выключен. Процессор не будет работать, если дисплей отключается.
Спящий режим – означает, что процессор будет спать. Процессор не будет работать, если дисплей отключается.
Спящий режим – означает, что процессор будет спать. Процессор переходит в режим сна в доли секунды после того, как дисплей отключается.
Спящий режим – означает, что процессор будет спать и не будет принимать любые команды, кроме как от RIL (Radio Interface Layer) и Аlarm. Процессор переходит в режим сна в доли секунды после того, как дисплей отключается.
Вопрос 28
Сколько видов WAKE LOCKS доступны, когда их использовать?
PARTIAL_WAKE_LOCK – использовать, когда вам нужен только включенный экран.
SCREEN_DIM_WAKE_LOCK – использовать, когда вам нужен только работающий CPU.
SCREEN_BRIGHT_WAKE_LOCK – использовать, когда вам нужен яркий экран.
FULL_WAKE_LOCK – использовать, когда вам нужно все экран, процессор, клавиатура.
PARTIAL_WAKE_LOCK – использовать, когда вам нужен только работающий CPU.
SCREEN_DIM_WAKE_LOCK – использовать, когда вам нужен только включенный экран.
SCREEN_BRIGHT_WAKE_LOCK – использовать, когда вам нужен яркий экран и клавиатура.
FULL_WAKE_LOCK – использовать, когда вам нужно все экран, процессор, клавиатура.
PARTIAL_WAKE_LOCK – использовать, когда вам нужен только работающий CPU.
SCREEN_DIM_WAKE_LOCK – использовать, когда вам нужен CPU + экран в тусклом режиме.
SCREEN_BRIGHT_WAKE_LOCK – использовать, когда вам нужен CPU + яркая клавиатура.
FULL_WAKE_LOCK – использовать, когда вам нужно все экран, процессор, клавиатура.
PARTIAL_WAKE_LOCK – использовать, когда вам нужен только работающий CPU.
SCREEN_DIM_WAKE_LOCK – использовать, когда вам нужен CPU + экран в тусклом режиме.
SCREEN_BRIGHT_WAKE_LOCK – использовать, когда вам нужен процессор + яркий экран.
FULL_WAKE_LOCK – использовать, когда вам нужно все экран, процессор, клавиатура.
Вопрос 29
При использовании FULL_WAKE_LOCK, когда пользователь нажмет кнопку питания выключения экрана, что произойдет?
Тем не менее экран останется ярким.
Экран погаснет, клавиатура будет выключена, но процессор по-прежнему работает.
Экран погаснет, процессор также будет в спящем режиме.
Экран погаснет, клавиатура погаснет, но процессор по-прежнему работает.
Вопрос 30
Когда телефон находится в режиме сна, какие два компонента остаются работающими, хотя телефон находится в режиме сна?
RIL (Radio Interface Layer) и часы.
RIL (Radio Interface Layer – voice calls, short messages (SMS), packet data (IP communication)) и сигналы.
Только Call Manager и сигналы.
Только Call Manager, sms менеджер и сигналы.
Вопрос 31
Каждый день вечером в 12:00 я должен опубликовать некоторые изображения в Facebook, при этом я буду повторять сигнал будильник каждый день в 12—00. Но, чтобы загрузить изображения, я хочу запустить сервис, как я должен это сделать?
Создать отложенное намерение для запуска сервиса, и дать его сигналу, чтобы запускать каждый день.
Создать отложенное намерение для запуска сервиса, и дать его сигналу, чтобы запускать каждый день. Кроме того, убедитесь, чтобы добавить FULL_WAKE_LOCK в оnCreate вашего сервиса и освободите FULL_WAKE_LOCK после загрузки всех изображений.
Создать отложенное намерение для запуска сервиса, и дать его сигналу, чтобы запускать каждый день. Кроме того, убедитесь, чтобы добавить PARTIAL_WAKE_LOCK в оnCreate вашего сервиса и освободите PARTIAL_WAKE_LOCK после загрузки всех изображений.
Ничего из перечисленного.
Вопрос 32
Какой код показывает возможность утечки памяти в Android?
class MyActivity extends Activity
{
private static Drawable sBackground;
@Override
protected void onCreate (Bundle state) {
super. onCreate (state);
TextView label = new TextView (this);
label. setText («Leaks are bad»);
if (sBackground == null) {
sBackground = getDrawable (R. drawable. large_bitmap);
}
label. setBackgroundDrawable (sBackground);
setContentView (label);
}
///////////////////////////////////////////////////////////////////////////////////////////////////
class MyActivity extends Activity
{
private static Drawable sBackground;
@Override
protected void onCreate (Bundle state) {
super. onCreate (state);
TextView label = new TextView (getApplicationContext ());
label. setText («Leaks are bad»);
if (sBackground == null) {
sBackground = getDrawable (R. drawable. large_bitmap);
}
label. setBackgroundDrawable (sBackground);
setContentView (label);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
class MyActivity extends Activity
{
private static Drawable sBackground;
TextView label;
@Override
protected void onCreate (Bundle state) {
super. onCreate (state);
label = new TextView (this);
label. setText («Leaks are bad»);
if (sBackground == null) {
sBackground = getDrawable (R. drawable. large_bitmap);
}
label. setBackgroundDrawable (sBackground);
setContentView (label);
onDestroy ()
{
label. unbindDrawables ()
}
}
////////////////////////////////////////////////////////////////////////////////////////////
Все перечисленное.
Вопрос 33
Если я хочу написать одно приложение для телефонов и планшетов, что я должен использовать в UI?
Используйте фрагменты, где это возможно, используйте пиксели вместо dp, используйте xhdpi изображения.
Используйте фрагменты, где это возможно, использовать dp вместо пикселей, используйте xhdpi изображения.
Избегайте использовать отступы на основе пикселей, вместо того используйте отступы по отношению к родителю.
Вопрос 34
У меня есть тысяча элементов в моем массиве, и я хочу отобразить их в listview, как наиболее оптимальным образом достичь этого?
Функция getView () customadapter объекта возвращает представление для каждой строки, его можно использовать повторно. Просто проверить, что оно не является нулевым, а затем вновь его использовать.
Если вы извлекаете данные из сети или таблицы SQL, убедитесь, что вы используете другой поток, чтобы сделать это, чтобы избежать переполнение основного потока.
Используйте ViewHolder вместо findViewById (), чтобы найти представления, получая данные в getView () customadapter объекта.
Используйте предопределенный черный цвет для listview, чтобы избежать перерисовки в Android.
Все перечисленное.
Вопрос 35
Как много процессов и виртуальных машин будут предоставлены для каждого приложения Android системой?
Один процесс и одну общую виртуальную машину для всех приложений.
Один процесс и одну виртуальную машину для каждого приложения.
Один общий процесс для всех приложений и одну виртуальную машину для каждого приложения.
Один общий процесс для всех приложений и одну общую виртуальную машину для каждого приложения.
Вопрос 36
Существует ли утечка памяти в Android приложениях?
Android основан на Java, Java имеет сборщик мусора для сбора неиспользуемой памяти, так что не нужно беспокоиться об утечках памяти.
Java GC не гарантирует отсутствие утечки памяти, если он находит ошибку указателя памяти, то он не может очистить эту память.
Java GC не гарантирует отсутствие утечки памяти, если он находит ошибку указателя памяти, то он не может очистить эту память. Могут быть некоторые ситуации, когда на активность указывают UI компоненты, на которые указывают статические переменные, что приводит к утечке памяти в Android.
Все перечисленное верно.
Вопрос 37
Что из следующего является циклом компиляции-выполнения?
test. java -> compile -> test. class -> dvm -> final machine code.
test. java -> compile -> test. class -> dx tool ->.dex -> dvm -> final machine code.
test. java -> compile -> test. class ->.dex -> dvm -> final machine code.
test. java -> compile -> byte code -> interpreter -> test. class -> dx tool ->.dex -> dvm -> final machine code.
Вопрос 38
Что такое анонимный класс?
Класс, для которого мы не можем создать любой объект.
Класс, для которого мы можем создать только один объект.
Класс без какого-либо тела.
Класс без имени класса, но с телом.
Вопрос 39
Что такое Singleton класс?
Класс, который не может быть расширен, это означает, что только одно определение для этого класса существует.
Класс, для которого мы можем создать только один объект:
public class Singleton {
private static Singleton instance;
public static synchronized Singleton getInstance () {
if (instance == null) {
instance = new Singleton ();
}
return instance;
}
}
Класс, для которого мы не можем создать какого-либо объекта.
Класс, который имеет только один базовый класс.
Вопрос 40
Что из следующего является жизненным циклом процесса или Android приложения?
(приложение) Процесс будет загружен в память перед загрузкой первого компонента приложения, и будет убит после уничтожения всех компонентов.
(приложение) Процесс будет загружен в память после загрузки первого компонента приложения, и будет убит после уничтожения всех компонентов.
(приложение) Процесс будет загружен в память перед загрузкой первого компонента приложения, и всегда будет оставаться в памяти.
(приложение) Процесс будет загружен в память перед загрузкой первого компонента приложения, и будет убит после уничтожения всех компонентов. Но если пользователь открывает это приложение очень часто, то, возможно, Android не будет убивать процесс для оптимизации времени загрузки этого приложения.
Вопрос 41
Как serializable отличаются от Parcel?
Parcel используются в Binder. Мы используем Parcel только для IPC, для нормальной сериализации мы используем serializables.
Parcel используются в Binder. Мы можем использовать Parcel для любого вида сериализации.
Binder используются в Parcel. Мы используем serializable только для IPC, для нормальной сериализации мы используем Parcel.
serializable и Parcel одинаковы, вы можете использовать любой из них в любом сценарии сериализации.
Вопрос 42
Зачем используется SQLite в Android?
SQLite является легкой версией SQL, чтобы хранить данные в виде таблиц, и предназначена для встраиваемых устройств, таких как телефоны и планшеты.
Так как встраиваемые устройства имеют ограниченную скорость процессора и ограниченную память, они не могут позволить себе тяжеловесные DBMS. Поэтому встроенные устройства используют SQLite, чтобы хранить свои данные в табличной форме.
SQLite это RDBMS.
Все перечисленное.
Вопрос 43
Зачем используется SQLiteOpenHelper в SQLite?
Вспомогательный класс предоставляет функциональные возможности для удаления строк, вставку данных в строки в таблице.
Вспомогательный класс позволяет управлять базами данных, создавать и управлять версиями. Это класс, где создаются и обновляются все таблицы.
Вспомогательный класс используется для извлечения данных из удаленных серверов и хранения данных в SQLiteDatabase.
Ничего из перечисленного.
Вопрос 44
Зачем используется функция onUpgrade в SQLiteOpenHelper?
onUpgrade является функцией, которая используется для обновления строк в таблице.
onUpgrade является функцией, которая используется для обновления имен таблиц.
onUpgrade предназначена, в основном, для обработки новых изменений схемы базы данных для любой новой версии вашего приложения.
Ничего из перечисленного.
Вопрос 45
Как показать информацию таблицы базы данных SQLite в Android приложении?
Используйте ListView с адаптером курсора.
Используйте GridView с адаптером курсора.
Используйте TableLayout с адаптером курсора.
Используйте TableLayout с курсором.
Вопрос 46
Как обрабатывать сценарии прерывания звонка в Android приложении?
Использовать TelephonyManager.
Использовать PhoneStateListener.
Все перечисленное.
Ничего из перечисленного.
Вопрос 47
Как обрабатывать входящие звонки в Android приложения?
Начать слушать CALL_STATE с помощью telephonymanager и phonestatelistener. Когда приходит входящий вызов, вызывается функция onCallStateChanged phonestatelistener слушателя.
Начать слушать CALL_STATE с помощью telephonymanager и phonestatelistener. Когда приходит входящий вызов, вызывается функция onPhoneStateChanged phonestatelistener слушателя.
Состояние CALL_STATE_RINGING будут передано onCallStateChanged функции.
Состояние CALL_STATE_RINGING будут передано onPhoneStateChanged функции.
Вопрос 48
В классе TelephonyManager что из перечисленного не является состоянием звонка?
CALL_STATE_RINGING
CALL_STATE_OFFHOOK
CALL_STATE_ONHOOK
CALL_STATE_IDLE
Вопрос 49
Что такое breakpoint, и как посмотреть переменные во время отладки Android программы?
Breakpoint останавливает выполнение. Установите курсор на переменную, чтобы увидеть значение.
Breakpoint возникает при крушении программы. Установите курсор на переменную, чтобы увидеть значение.
Breakpoint останавливает выполнение. Чтобы увидеть значение, вы можете поместить на переменную курсор или щелкните правой кнопкой мыши на переменной и добавьте к просмотру.
Breakpoint возникает при крушении программы. Чтобы увидеть значение, вы можете поместить на переменную курсор или щелкните правой кнопкой мыши на переменной и добавьте к просмотру.
Вопрос 50
Что такое log. d?
deamon log
debug log
dalvik log
ddms log
Внимание! Это не конец книги.
Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?