Сборник тестов: 1500 вопросов и ответов на знание Android - Тимур Машнин
Шрифт:
Интервал:
Закладка:
Использовать Activity.runOnUiThread (Runnable)
Использовать View. post (Runnable)
Использовать View. postDelayed (Runnable, long)
Все перечисленное
Вопрос 17
Как Binder отличается от сериализации
Binder использует концепцию общей памяти, чтобы выполнять IPC.
Сериализация использует концепцию общей памяти и медленнее, чем Binder IPC.
Ни один из них не использует концепцию общей памяти, чтобы выполнять IPC, но Binder предназначен для IPC для небольших устройств
Хотя сериализация быстрее, чем Binder, она не используется в Android.
Вопрос 18
В чем разница между Thread и Handler Thread в Android?
Thread имеет Looper и Message Queue. По умолчанию Looper будет готов обрабатывать входящие сообщения от других потоков.
Handler Thread имеет Looper и MessageQueue, и Looper готов обрабатывать входящие сообщения.
Оба похожи. Нет разницы, но HandlerThread это подкласс класса Thread.
Оба похожи. Нет разницы, но HandlerThread это супер класс класса Thread.
Вопрос 19
В чем разница между сервисом и потоком?
Сервис – это Android компонент, который работает в фоновом режиме без какого-либо интерфейса. Сервис будет иметь по умолчанию один поток для фоновой работы. Поток – аналогичен сервису, он также работает в фоновом режиме.
Сервис – это Android компонент, который работает в фоновом режиме без какого-либо интерфейса. По умолчанию сервис будет работать только в главном потоке. Поток – это не Android компонент, но можно использовать поток, чтобы выполнить некоторую фоновую задачу. Использование потока вместо сервиса не рекомендуется.
Сервис – это Android компонент, который работает в фоновом режиме без какого-либо интерфейса. По умолчанию сервис будет работать только в главном потоке. Поток – это не Android компонент, но можно использовать поток, чтобы выполнить некоторую фоновую задачу. Можно использовать поток вместо сервиса.
Сервис – это Android компонент, который работает в фоновом режиме и может иногда иметь пользовательский интерфейс. Сервис будет иметь по умолчанию один поток для фоновой работы. Поток – аналогичен сервису, он также работает в фоновом режиме.
Вопрос 20
Как создать сервис с несколькими потоками в нем?
Создание сервиса с созданием потока в методе onStartCommand.
Использование Intent Service.
Создание сервиса с одним потоком в методе оnCreate ().
Создание сервиса с созданием потока в методе onStartCommand или использовать AsyncTask в сервисе.
Вопрос 21
В чем разница между startservice и bindservice?
startservice – работает в фоновом режиме, пока кто-нибудь или он сам не остановится. Он используется для выполнения длительно работающей операции. bindservice – живет, пока кто-либо связывается с ним и взаимодействует с ним. bindservice может возвращать значение для того, кто связан с ним.
startservice – работает в фоновом режиме, пока кто-нибудь или он сам не остановится. startservice может возвращать значение тому, кто его запустил. bindservice – живет, пока кто-либо связывается с ним и взаимодействует с ним, и после того, как работа будет выполнена, то, кто связывался с ним, должен отвязаться от него.
startservice – работает в фоновом режиме в другом потоке. bindservice – живет в отдельном потоке, пока кто-либо связывается с ним и взаимодействует с ним.
startservice – работает в фоновом потоке и живет до тех пор, пока компонент, который его запустил также жив. bindservice – живет в фоновом режиме до тех пор, пока компонент, который подключен к нему, также жив.
Вопрос 22
Что такое Activity и Fragment? Когда и почему вы должны их использовать?
Activity это компонент пользовательского интерфейса. Fragment это многоразовый компонент, который прикреплен к и отображается в Activity.
Несколько фрагментов могут быть показаны одновременно внутри активности. Так как фрагменты это повторно используемые компоненты, при таком подходе, задача активности состоит в поддержке своих прикрепленных фрагментов, позволяя фрагментам обрабатывать львиную долю пользовательского интерфейса.
В то время как вы можете использовать активность без фрагментов, обратное не верно.
Все перечисленное.
Вопрос 23
Что такое Адаптеры и зачем они используются?
Они связывают ListView, GridView, Spinner, ViewPager и др. AdapterView с базовыми данными. Они обеспечивают доступ к элементам данных и отвечают за создание представления для каждого элемента набора данных.
Выбор пользователя обрабатывается с помощью установки AdapterView. OnItemClickListener.
Ничего из перечисленного.
Все перечисленное.
Вопрос 24
Как оптимизировать использование View и сделать приложение более отзывчивым?
Чем больше View вы можете удалить из макета, тем более чутко будет реагировать ваше приложение.
Избегать использование вложенных экземпляров LinearLayout.
<merge> тег является особенно полезным с тегом <include>.
Все перечисленное.
Вопрос 25
Что такое паттерн ViewHolder и как он используется? Какие доводы за и против его использования? Какие альтернативы?
ViewHolder это паттерн кэширования View. findViewById ().
Вызовы View. findViewById () ресурсоемкие, потому что значительные части макета (иерархической структуры) необходимо пройти при каждом вызове, чтобы найти нужного View ребенка в пределах потенциально сложной планировки.
С включением компилятора JIT и огромных улучшений в сборщике мусора после Android 2.2 (Froyo), стоимость не кэширования View. findViewById () резко уменьшилась.
Использование паттерна ViewHolder приводит к таким побочным эффектам, как беспорядочный код, нарушение принципов Separation of Concerns Principle и Single Responsibility Principle.
Альтернатива паттерну это расширить родительский View и кэшировать дочерние View в самом родительском View.
Все перечисленное.
Вопрос 26
Что такое опция Don’t Keep Activities?
Это опция приложения Dev Tools App «Immediately destroy activities» для уничтожения активности, как только она остановилась, для тестирования onSaveInstanceState (Bundle) / onCreate (android. os. Bundle).
Чтобы помочь обнаружить случайный доступ к диску или сети в главном потоке.
Для сканирования проекта и генерации подробного отчета, содержащего ошибки и предупреждения в коде и ресурсах.
Все перечисленное.
Ничего из перечисленного.
Вопрос 27
Назовите паттерны общей структуры приложения:
Top Level View (наполнить стартовый экран контентом, навигацией и поиском, установить Action Bar для навигации, использовать floating action button для стимуляции действия).
Category View (использовать вкладки, чтобы объединить выбор категории и отображение данных, использовать контекстное меню).
Detail/Edit View (использовать навигацию между элементами внутри представления, использовать перелистывание между представлениями).
Все перечисленное.
Вопрос 28
Назовите паттерны навигации:
Tabs
Fixed tabs
Scrollable tabs
Navigation drawer
Navigation drawer + tabs
Navigation in content
Nested navigation drawer
Nested navigation drawer + tabs
Expanding navigation drawer
Cascading navigation drawer
Spinners
Split Action Bar
Contextual Action Bar
Все перечисленное
Вопрос 29
Как создать намерение чтобы послать электронную почту в Android?
Intent email = new Intent (Intent. ACTION_SEND);
email. setType («message/rfc822»);
email. putExtra (Intent. EXTRA_EMAIL, new String [] {"[email protected]»});
email. putExtra (Intent. EXTRA_SUBJECT, «Hi, This is a test mail..»);
startActivity (Intent. createChooser (email, «Choose an Email Client»));
Intent email = new Intent (Intent. ACTION_EMAIL);
email. setType («message/rfc822»);
email. putExtra (Intent. EMAIL, new String [] {"[email protected]»});
email. putExtra (Intent. SUBJECT, «Hi, This is a test mail..»);
startActivity (Intent. createChooser (email, «Choose an Email Client»));
Intent i = new Intent (Intent. ACTION_SEND);
i. setType («message/rfc822»);
i. putExtra (Intent. EXTRA_EMAIL, new String[]{"[email protected]»});
i. putExtra (Intent. EXTRA_SUBJECT, «test mail»);
i. putExtra (Intent. EXTRA_TEXT, «Did you get this mail? if so please reply back»);
startActivity (Intent. createChooser (i, «Send mail…"));
Ничего из перечисленного
Вопрос 30
Какая функциональность у HTTPClient интерфейса в Android?
connection management
authentication management
cookies management
Все перечисленное.
Вопрос 31
Что из перечисленного верно о HTTP запросах в Android приложениях?
Для загрузки данных с сервера использовать HttpGet запрос.
Для отправки почты использовать HttpPost запрос.
Для обновления блога, написанного на телефоне, использовать HttpGet запрос.
Вопрос 32
Чтобы использовать HttpClient, какие требуются разрешения в Android приложениях?
android. permission. INTERNET
android. permission. READ_CONTACTS
android. permission. FINE_LOCATION
Все перечисленное
Вопрос 33
Если Интернет разрешение не принято для использования HTTP-клиента, то что произойдет?
Будет исключение времени выполнения, то есть IOException
Будет исключение времени компиляции, то есть IOException
Будет исключение времени выполнения, то есть CLientProtocolException
Код не компилируется
Вопрос 34
Если URL-адрес в HttpGet запросе не верный, то какое исключение будет выброшено в Android приложении?
Будет исключение времени выполнения, то есть IOException
Будет исключение времени компиляции, то есть IOException
Будет исключение времени выполнения, то есть CLientProtocolException