Сборник тестов: 1500 вопросов и ответов на знание Android Машнин Тимур
Вопрос 9
Ответ: Он будет жив, но его приоритет будет меньше, по сравнению с потоком в сервисе.
Вопрос 10
Ответ: Процесс и приложение это одно и тоже. Задача может содержать одно или несколько приложений. Поток это внутренняя часть процесса, созданного ОС.
Вопрос 11
Ответ: Используйте синхронизированный блок.
Используйте синхронизированные методы.
Вопрос 12
Ответ: Синхронизированный метод – все выражения в нем синхронизированы. Синхронизированный блок – только блок кода синхронизирован, не весь метод.
Синхронизированный метод – если уже поток держит блокировку объекта функции, тогда другие потоки не могу вызвать другой синхронизированный метод того же объекта. Синхронизированный блок – если функция имеет 1000 строк кода, и я получаю доступ к общим данным только в 500 строке, тогда лучше поставить синхронизированный блок, чем сделать всю функцию синхронизированной.
Вопрос 13
Ответ: Looper – часть любого потока для цикла через очередь сообщений. Очередь сообщений – часть любого потока для хранения входящих сообщений для этого потока. Канал связи между двумя потоками – Handler.
Вопрос 14
Ответ: Основной поток это handler thread, так что он имеет активированный Looper. Только handler thread будет иметь Looper, но мы можем подготовить Looper для обычного потока также.
Вопрос 15
Ответ: Активность может содержать несколько фрагментов.
Вопрос 16
Ответ: Фрагменты предназначены эффективно использовать пространство пользовательского интерфейса устройства.
Фрагменты предназначены в качестве многократно используемых компонентов для нескольких активностей.
Фрагмент будет иметь свой собственный жизненный цикл, который будет зависеть от жизненного цикла активности.
Вопрос 17
Ответ: FragmentManager. findFragmentById (R. id. frag_id);
Вопрос 18
Ответ: Использовать папку layout-port для портретного режима и папку layout в ландшафтном режиме.
Вопрос 19
Ответ: onCreateView ()
Вопрос 20
Ответ: Фрагмент, как правило, обеспечивает свой интерфейс, используя свой собственный макет. Но, возможно, фрагмент не имеет пользовательского интерфейса в некоторых случаях, так как это не является обязательным.
Вопрос 21
Ответ: Использовать активность и ListFragment.
Вопрос 22
Ответ: ActivityFragment.
Вопрос 23
Ответ: onActivityDestroyed ().
Вопрос 24
Ответ: onAttach ()
onCreate ()
onCreateView ()
onActivityCreated ()
onStart ()
onResume ()
Вопрос 25
Ответ: Y должен использовать FragmentTransaction с FragmentManager и заменить себя экраном Z.
Вопрос 26
Ответ: Пустой процесс – приложение, которое разрушено и до сих пор в памяти.
Вопрос 27
Ответ: Спящий режим – означает, что процессор будет спать и не будет принимать любые команды, кроме как от RIL (Radio Interface Layer) и Аlarm. Процессор переходит в режим сна в доли секунды после того, как дисплей отключается.
Вопрос 28
Ответ: PARTIAL_WAKE_LOCK – использовать, когда вам нужен только работающий CPU.
SCREEN_DIM_WAKE_LOCK – использовать, когда вам нужен CPU + экран в тусклом режиме.
SCREEN_BRIGHT_WAKE_LOCK – использовать, когда вам нужен процессор + яркий экран.
FULL_WAKE_LOCK – использовать, когда вам нужно все экран, процессор, клавиатура.
Вопрос 29
Ответ: Экран погаснет, клавиатура будет выключена, но процессор по-прежнему работает.
Вопрос 30
Ответ: RIL (Radio Interface Layer – voice calls, short messages (SMS), packet data (IP communication)) и сигналы.
Вопрос 31
Ответ: Создать отложенное намерение для запуска сервиса, и дать его сигналу, чтобы запускать каждый день. Кроме того, убедитесь, чтобы добавить FULL_WAKE_LOCK в оnCreate вашего сервиса и освободите FULL_WAKE_LOCK после загрузки всех изображений.
Вопрос 32
Ответ: 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);
}
Вопрос 33
Ответ: Используйте фрагменты, где это возможно, использовать dp вместо пикселей, используйте xhdpi изображения.
Избегайте использовать отступы на основе пикселей, вместо того используйте отступы по отношению к родителю.
Вопрос 34
Ответ: Все перечисленное.
Вопрос 35
Ответ: Один процесс и одну виртуальную машину для каждого приложения.
Вопрос 36
Ответ: Java GC не гарантирует отсутствие утечки памяти, если он находит ошибку указателя памяти, то он не может очистить эту память. Могут быть некоторые ситуации, когда на активность указывают UI компоненты, на которые указывают статические переменные, что приводит к утечке памяти в Android.
Вопрос 37
Ответ: test. java – > compile – > test. class – > dx tool – >.dex – > dvm – > final machine code.
Вопрос 38
Ответ: Класс без имени класса, но с телом.
Вопрос 39
Ответ: Класс, для которого мы можем создать только один объект:
public class Singleton {
private static Singleton instance;
public static synchronized Singleton getInstance () {
if (instance == null) {
instance = new Singleton ();
}
return instance;
}
}
Вопрос 40
Ответ: (приложение) Процесс будет загружен в память перед загрузкой первого компонента приложения, и будет убит после уничтожения всех компонентов. Но если пользователь отрывает это приложение очень часто, то, возможно, Android не будет убивать процесс для оптимизации времени загрузки этого приложения.
Вопрос 41
Ответ: Parcel используются в Binder. Мы используем Parcel только для IPC, для нормальной сериализации мы используем serializables.
Вопрос 42
Ответ: Все перечисленное.
Вопрос 43
Ответ: Вспомогательный класс позволяет управлять базами данных, создавать и управлять версиями. Это класс, где создаются и обновляются все таблицы.
Вопрос 44
Ответ: onUpgrade предназначена, в основном, для обработки новых изменений схемы базы данных для любой новой версии вашего приложения.
Вопрос 45
Ответ: Используйте TableLayout с курсором.
Вопрос 46
Ответ: Все перечисленное.
Вопрос 47
Ответ: Начать слушать CALL_STATE с помощью telephonymanager и phonestatelistener. Когда приходит входящий вызов, вызывается функция onCallStateChanged phonestatelistener слушателя.
Состояние CALL_STATE_RINGING будут передано onCallStateChanged функции.
Вопрос 48
Ответ: CALL_STATE_ONHOOK
Вопрос 49
Ответ: Breakpoint останавливает выполнение. Чтобы увидеть значение, вы можете поместить на переменную курсор или щелкните правой кнопкой мыши на переменной и добавьте к просмотру.
Вопрос 50
Ответ: debug log
Тест 14
Вопрос 1
Ответ: 2 – консольный порт и порт adb.
Вопрос 2
Ответ: Все перечисленное.
Вопрос 3
Ответ: Отображает все устройства, подключенные к серверу adb.
Отображает онлайн и оффлайн устройства.
Вопрос 4
Ответ: adb – s emulator-5556 install helloWorld. apk
Вопрос 5
Ответ: Все перечисленное.
Вопрос 6
Ответ: 5037
Вопрос 7
Ответ: После крушения LogCat будет содержать имя исключения вместе с номером строки, где оно произошло.
Вопрос 8
Ответ: Используйте Custome View и рисуйте прямо на Canvas.
Вопрос 9
Ответ: Анимация изображения, которое находится в фиксированном положении, с изменением его масштабирования, вращения и прозрачности.
Вопрос 10
Ответ: Проигрывание кадр за кадром, используя XML свойство animation-list.
Вопрос 11
Ответ: Она часть view пакета.
Вопрос 12
Ответ: Он часть пакета android. graphics. drawable.
Вопрос 13
Ответ: Реализуйте свое собственное представление, расширяя класс View, а затем реализуйте метод оnDraw в нем.
Вопрос 14
Ответ:.9.png
Вопрос 15
Ответ: draw9patch это тот инструмент, он находится в android-sdk/tools.
Вопрос 16
Ответ: Это изображение масштабируется автоматически на основе размеров экрана устройства, на котором приложение загружается.
Вопрос 17
Ответ: Все перечисленное.
Вопрос 18
Ответ: Использовать AndEngine.
Вопрос 19
Ответ: Тег говорит, что AppWidgetProviderInfo в providerinfo. xml файле, который находится в xml папке, и тег также говорит, что это не радиовещательный приемник, это поставщик виджет приложения.
Вопрос 20
Ответ: Это действие должно быть использовано с виджетами, если мы не используем его, тогда оnUpdate функция класса appWidgetProvider не будет вызываться и виджет не будет обновляться.
Вопрос 21
Ответ: receiver тег
Вопрос 22
Ответ: Все перечисленное.
Вопрос 23
Ответ: <appwidget-provider>
Вопрос 24
Ответ: Все перечисленное.
Вопрос 25
Ответ: Приложение, которое содержит другие виджет приложения, называется widget host.
Вопрос 26
Ответ: Чтобы создать виджет, мы должны создать класс, который расширяет AppWidgetProvider напрямую.
AppwidgetProvider наследует BroadcastReceiver.
Вопрос 27
Ответ: Каждое приложение работает в защищенной среде песочницы, так что другие процессы в системе не могут получить доступ к коду или приватным данным приложения.
Вопрос 28
Ответ: 2 уровня – уровень приложений, уровень ядра. Один на уровне операционной системы или уровня ядра. Другой использует теги permission на уровне приложения.
Вопрос 29
Ответ: аpp2
Вопрос 30
Ответ: uses-permission тег должен быть написан в файле манифеста app2, перед тегом application.
Вопрос 31
Ответ: permission тег должен быть в файле манифеста app1 перед тегом application, и мы должны потребовать это разрешение с помощью android: permission атрибута в service теге app1.
Вопрос 32
Ответ: android: id
Вопрос 33
Ответ: normal, dangerous, signature, signatureOrsystem.
Вопрос 34
Ответ: Да, это возможно, если оба приложения имеют один и тот же идентификатор пользователя.
Вопрос 35
Ответ: Манифест файл описывает возможности вашего приложения и количество компонентов в вашем приложении. Файл манифеста представляет важную информацию о вашем приложении для Android системы, информация для системы должна быть предоставлена прежде чем она может запустить любой код приложения.
Активность, которая имеет следующий Intent фильтр будет выполнена первой:
<intent-filter>
<action android: name=«android. intent. action. MAIN» />
<category android: name=«android. intent. category. LAUNCHER» />
</intent-filter>
Вопрос 36
Ответ: Splash является активностью, которая будет показана в качестве начального экрана при запуске приложения. Этот экран будет использоваться для демонстрации логотипа вашей компании и другой информации. Splash будет отображаться в течение нескольких секунд, прежде чем откроется главный экран приложения.
