Вопросы к Android разработчикам | Вопросы | Gocareera

Вопросы к Android разработчикам

05.08.2019
20 мин. чтения

Источник

https://www.careerride.com/android-interview-questions.aspx

1. Кратко расскажите о важных файлах и папках, когда вы создаете новое приложение android.

Ответ

Для нового приложения создаются следующие папки и файлы:

src: содержит исходные файлы .java для проекта. В этом файле пишится код для приложения. Этот файл доступен под именем пакета для проекта.

gen: в данной папке находится файл R.java. Это файл, генерируется компилятором, который ссылается на все ресурсы, найденные в проекте. Редактировать этот файл нельзя.

Android 4.0 library: в данной папке находится файл android.jar, содержащий все библиотеки классов, необходимые для работы приложения Android.

assets: в данной папке находится вся информация об HTML файле, текстовых файлах, базах данных и т.д.

bin: содержит файл .apk (Android Package), который генерируется ADT во время процесса сборки. Файл .apk является двоичным файлом. Он содержит все необходимое для запуска приложения Android.

res: в данной папке находятся все файлы ресурса, который используются приложением Android. Сюда вложенны папки: drawable, menu, layout, and values и т.д.


2. Подробно расскажите о коде в файле AndroidManifest.xml.

Ответ

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.careerride" android:versionCode="1" android:versionName="1.0">

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" />

<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">

<activity android:name="com.example.careerride.MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

Файл AndroidManifest.xml содержит следующую информацию о приложении:

  • Есть название пакета приложения.
  • Код версии приложения 1. Это значение используется для идентификации номера версии приложения.
  • Название версии приложения 1.0.
  • Атрибут android:minSdkVersion элемента определяет минимальную версию операционной системы, на которой будет выполняться приложение.
  • ic_launcher.png - это изображение по умолчанию, расположенное в папке с изображениями.
  • app_name - определяет имя приложения и доступно в файле string.xml.
  • В нем также содержится информация о Activity. Его имя совпадает с именем приложения.

3. Кратко опишите работу андройда.

Ответ

Activity обеспечивает пользовательский интерфейс. Когда создаётся новое приложение Android в eclipse через wizard, он спрашивает имя activity. Имя по умолчанию - MainActivity. Хотя вы можете указать любое имя. В основном это класс (MainActivity), который наследуется автоматически от класса Activity. В большинстве случаев приложения имеют одно или несколько видов activity, и основная цель activity заключается во взаимодействии с пользователем. Activity проходит через несколько этапов, известных как жизненный цикл activity.

Например

packagecom.example.careerride; //Application name careerride

importandroid.os.Bundle; // Default packages
importandroid.app.Activity; // Default packages
importandroid.view.Menu;

public class MainActivity extends Activity
{
	@Override
	protected void onCreate(Bundle savedInstanceState)
{
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
}
@Override
publicbooleanonCreateOptionsMenu(Menu menu)
{
	// Inflate the menu; this adds items to the action bar if it is present.
	getMenuInflater().inflate(R.menu.main, menu);
	return true;
}
}

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


4. Подробнее расскажите об Intents.

Ответ

Приложение может содержать ноль и более activity. Если вы хотите перейти от одного вида activity к другому, то Android предоставляет вам класс Intents. Этот класс доступен в виде пкета inandroid.content.Intent. Одним из наиболее распространенных применений для Intents является запуск новых видов деятельности.

Существуют два типа Intents.

  1. Четкие Intents.
  2. Неявные Intents.

Intents работают в паре с действиями и данными. Действия определяют, что пользователь хочет сделать, например, отредактировать элемент, просмотреть содержимое элемента и т.д. Данные определяют, на что они влияют, например, на человека в базе данных контактов. Данные задаются как объект anUri.

Прямое начало Activity

Intent intent = newIntent (this, SecondActivity.class);
startActivity(intent);

Здесь SecondActivity - это имя целевой активности, которую вы хотите начать.

Неявное начало Activity

Если вы хотите просмотреть веб-страницу с указанным URL-адресом, вы можете воспользоваться этой процедурой.

Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“https://www.yandex.ru”));
startActivity(i);

если вы хотите набрать номер телефона, то вы можете использовать этот метод, передав номер телефона в разделе данных.

Intent i = newIntent (android.content.Intent.ACTION_DIAL,Uri.parse(“tel:+9923.....”));
startActivity(i);

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

Intent i = newIntent (android.content.Intent.ACTION_CALL,Uri.parse(“tel:+9923.....”));
startActivity(i);

Если вы хотите позвонить по телефону или воспользоваться Интернетом, напишите эту строку на AndroidManifest.xml.

<uses-permissionandroid:name=”android.permission.CALL_PHONE”/>
<uses-permissionandroid:name=”android.permission.INTERNET”/>

5. Как отправить SMS в Android? Объясните на примере.

Ответ

Отправка SMS-сообщений на уровне программного кода.

Возьмём кнопку в файле activity_main.xml.

<Button android:id="@+id/btnSendSMS" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:onClick=”sendmySMS” android:text="sendSMS" />

В приведенным выше коде при нажатии пользователем кнопки вызывается метод sendmySMS. sendmySMS - это метод, задаётся пользователем.

В файл AndroidManifest.xml добавим следующее утверждение

<uses-permissionandroid:name=”android.permission.SEND_SMS”/>

В файле MainActivity, java запишим следующий метод

publicvoidsendmySMS(View v)
{
	SmsManagersms = SmsManager.getDefault();
	sms.sendTextMessage("5556", null, "Hello from careerRide", null, null);
}

В данном примере использованы два эмулятора. На первом эмуляторе Android (5554), с которого отправляется SMS сообщение, и второй эмулятор (5556), который является получателем сообщения.


6. Опишите класс SmsManager в Android.

Ответ

Класс SmsManager отвечает за отправку SMS сообщений с одного эмулятора/устройства на другой.

Напрямую этот класс конкретизировать нельзя вместо этого вызывается статический метод getDefault() для получения объекта SmsManager. Затем отправляется SMS-сообщение методом sendTextMessage():

SmsManagersms = SmsManager.getDefault();
sms.sendTextMessage("5556", null, "Hello from careerRide", null, null);

Метод sendTextMessage() принимает пять аргументов.

  • destinationAddress - номер телефона получателя.
  • scAddress - адрес сервисного центра; можно также использовать null.
  • text - Содержание SMS-сообщения, которое вы хотите отправить.
  • sentIntent - Ожидание вызова при отправке сообщения..
  • deliveryIntent - Ожидание намерения задействовать сообщение, когда оно будет доставлено.

7. Как можно использовать встроенные функции обмена сообщениями в приложении?

Ответ

Вы можете использовать Intent объект для активации встроенной службы обмена сообщениями. Вы должны передать MIME тип “vnd.android-dir/mms-sms”, в методе SetType Intent, как показано в приведенном ниже коде.

Intent intent = new Intent (android.content.Intent.ACTION_VIEW);
intent.putExtra("address", "5556; 5558;");// Send the message to multiple recipient.
itent.putExtra("sms_body", "Hello my friends!");
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);

8. Какие существуют варианты хранения данных в Android?

Ответ

  • SharedPreferences
  • SQlite
  • ContentProvider
  • File Storage
  • Cloud Storage

9. Расскажите про хранение данных в SharedPreference на примере.

Ответ

SharedPreference - это самый простой механизм хранения данных в Android. Вы не беспокоитесь о создании файла или использовании API файлов. Он хранит данные в XML файлах. Класс SharedPreferences позволяет сохранять и восстанавливать пары ключ-значение примитивных типов данных. Вы можете использовать SharedPreferences для сохранения любых примитивных данных: булевых, плавающих, int, longgs и strings, данные хранятся в XML файле в папке data/data//shared-prefs каталог.

Применение SharedPreference (общих привилегий)

  • Хранение информации о количестве посетителей (счетчик).
  • Сохранение даты и времени (когда Приложение обновляется).
  • Сохранение имени пользователя и пароля.
  • Сохранение пользовательских настроек.

Например:

хранение данных в SharedPreference в Android

Для хранения данных в основной активности на кнопке сохранения напишем следующий код:

SharedPreferences sf=getSharedPreferences("MyData", MODE_PRIVATE);
SharedPreferences.Editored= sf.edit();
ed.putString("name", txtusername.getText().toString());
ed.putString("pass", txtpassword.getText().toString());
ed.commit();

В этом примере я предпринял два действия. Первая - MainActivity, вторая - SecondActivity. Когда пользователь нажимает кнопку сохранения, имя пользователя и пароль, которые введены в текстовые поля, они будут сохранены в файле MyData.xml. Здесь MyData - это имя XML файла, который будет создан автоматически. MODE_PRIVATE означает, что этот файл используется только вашим приложением. Txtusername и txtusername - это два элемента управления EditText в MainActivity. Для получения данных напишем следующий код в SecondActiviy при нажатии кнопки Load:

Public static final String DEFAULT=”N? A”;

DEFAULT - это определяемая пользователем глобальная переменная типа String. Если данные не сохранены в XML файле и пользователь нажимает кнопку загрузки, то приложение не выдаст ошибку. На экране появится сообщение “Данные не найдены”. Здесь имя и передача являются теми же переменными, что и в MainActivity.

SharedPreferences sf=getSharedPreferences("MyData", Context.MODE_PRIVATE);

String Uname=sf.getString("name", DEFAULT);

String UPass=sf.getString("pass", DEFAULT);

if(name.equals(DEFAULT)||Pass.equals(DEFAULT))
{
    Toast.makeText(this, "No data is found", Toast.LENGTH_LONG).show();
}

else

{
    Txtusername.setText(Uname);
    Txtpassword.setText(UPass) ;
}

10. Каковы ключевые компоненты архитектуры Android?

Ответ

Архитектура Android cостоит из 4-х ключевых компонентов:

  • Ядро Linux
  • Библиотеки
  • Android Framework
  • Приложения Android

11. Каковы преимущества наличия эмулятора в среде Android?

Ответ

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

12. Что вы можете сказать об activityCreator?

Ответ

  • activityCreator - это первый шаг к созданию нового проекта Android.
  • Он состоит из скрипта оболочки, который используется для создания новой структуры файловой системы, необходимой для написания кодов в Android IDE.

13. Что вы знаете об Intents?

Ответ

  • Сообщения об уведомлениях для пользователя в Android могут отображаться с помощью Intents. Пользователи могут реагировать на Intents.
  • Существует два типа Intents - Explicit Intent, Implicit Intent.

14. Что такое Explicit Intent?

Ответ

  • Explicit Intent указывает на конкретную деятельность, которая должна соответствовать этому Intent.
  • Они используются для внутренних сообщений приложения.

15. Что такое Implicit Intent?

Ответ

  • В случае Implicit Intent, намерение только объявляется.
  • Платформа должна найти activity, которая может на нее отреагировать.
  • Поскольку целевой компонент не декларируется, он используется для активации компонентов других приложений.

16. Что делают Intent фильтры?

Ответ

  • В зависимости от услуг и видов деятельности, которые будут ими пользоваться, может быть несколько Intent.
  • Каждый компонент должен сказать, на какие Intent он хочет отреагировать.
  • Фильтры Intent отфильтровывают Intents, на которые эти компоненты готовы дать ответ.

17. Где размещены детали макета? Почему?

Ответ

  • Детали макета размещаются в XML файлах.
  • XML-компоновки обеспечивают последовательное и стандартное средство настройки формата определения графического интерфейса пользователя.

18. Что хранится в контейнерах?

Ответ

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

19. Что такое ориентация?

Ответ

  • Ориентация определяет, должна ли LinearLayout быть представлена в виде строк или столбцов.
  • Значения задаются с помощью setOrientation()
  • Значения могут быть Горизонтальными или Вертикальными.

20. Почему важно установить права доступа?

Ответ

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

21. Что такое AIDL?

Ответ

  • AIDL - это аббревиатура Android Interface Definition Language.
  • Он обрабатывает требования к интерфейсу между клиентом и службой коммуницирует на одном и том же уровне посредством межпроцессного взаимодействия.
  • Процесс включает в себя разбиение объектов на примитивы, понятные для Android.

22. Какие типы данных поддерживает AIDL?

Ответ

AIDL поддерживает следующие типы данных:

  • Строки
  • Списки
  • Карты
  • charSequence
  • все родные типы Java-данных, такие как int, long, char и Boolean.

23. Расскажите о Nine-patch image.

Ответ

  • Nine-patch в названии изображения относятся к способу изменения размера изображения: 4 угла, которые не масштабируются, 4 ребра, которые масштабируются по одной оси, и средний угол, который может масштабироваться по обеим осям.
  • Nine-patch позволяют изменять размер изображения, которое может быть использовано в качестве фона или другого размера изображения для целевого устройства.

24. Какие диалоговые окна поддерживает Android?

Ответ

Android поддерживает 4 диалоговых окна:

  1. AlertDialog: Диалоговое окно поддерживает от 0 до 3 кнопок и список выбранных элементов, который включает в себя бокс и радио кнопки.
  2. ProgressDialog: Данное окно является расширением AlertDialog и поддерживает добавление кнопок. На дисплее отображается колесо или индикатор выполнения.
  3. DatePickerDialog: С помощью этого диалогового окна пользователь может выбрать дату.
  4. TimePickerDialog: С помощью этого диалогового окна пользователь может выбрать время.

25. Что такое виртуальная машина Dalvik?

Ответ

  • Это виртуальная машина Android.
  • Это только интерпретатор виртуальной машины, которая выполняет файлы в формате Dalvik Executable (.dex). Этот формат оптимизирован для эффективного хранения и запоминания.

26. Перечислите этапы, которые связаны с преобразованием Android в более новую версию?

Ответ

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

  1. Для начала разработчик ПО получает разрабатываемую или стабильную версию образа системы. Это включает в себя различные сертификаты и правила и положения по развертыванию.
  2. Сборка проходит операторское тестирование, и это один из важных этапов, так как позволяет находить и исправлять множество ошибок.
  3. После этого регуляторы, модераторы и операторы выпускают устройство для релиза исходного кода. Написанный код проверяется на наличие ошибок и наличие признаков соглашения, заключенного между авторами, выполняется верификация.
  4. На заключительном этапе начинается разработка программного обеспечения, начинается серийное производство устройства и его продажа конечному пользователю.

27. Какова роль совместимости в Android?

Ответ

  • Совместимость определяется в терминах устройств, совместимых с Android, на которых запущено любое приложение. Это приложение написано сторонними разработчиками с использованием платформы Android, которая поставляется в виде SDK и NDK.
  • Существует множество фильтров, которые используются для разделения устройств, находящихся в режиме совместимости для приложений Android. Устройства, совместимые с Android, должны иметь разрешение на использование под своей торговой маркой. Устройства, не прошедшие проверку на совместимость, просто указаны в исходном коде Android и могут использовать торговую марку android.
  • Совместимость - это способ, с помощью которого пользователь может участвовать в платформе приложений Android. Исходный код является бесплатным для использования и может быть использован любым человеком.

28. Какие существуют различные формы связи, предоставляемые приложениями в Android?

Ответ

Существует несколько форм связи:

  1. Интернет-телефония: Используется в приложениях на основе SIP. Оно включает в себя полный стек протоколов SIP, а так же интегрированный сервис управления вызовами. Эти сервисы позволяют настраивать голосовые вызовы без управления сессиями на транспортном уровне. Это обеспечивает успешную связь путем определения связанных с ними носителей.
  2. NFC (Near field communications): Оно используется для обеспечения взаимодействия между разработчиками, создающими новый класс приложений. Эти новые приложения создаются и предоставляются в качестве услуги пользователям, организациям, продавцам и рекламодателям. Он позволяет пометить приложение, которое интересует пользователя. Метка позволяет пользователю общаться через службы беспроводной телефонии и позволяет использовать аппаратное обеспечение устройства.

29. Какие мультимедийные функции способствуют популяризации Android?

Ответ

Приложения включают в себя следующее:

  • Микшируемые аудиоэффекты - разработчик может легко создавать аудио окружения с помощью API, и кнопки, которая поставляется вместе с ней, например, для создания эквализации, усиления низких частот, функции наушников и т.д. Android предоставляет инструменты, которые могут быть использованы для микширования аудиоэффектов и их применения.
  • Также поддерживаются новые медиа форматы, такие как VP8. Это открытый формат сжатия видео, использующий контейнерный формат, который может работать на всех платформах и поддерживающий кодировку AAC и AMR. Приложения позволяют снимать видео более высокого качества.
  • Приложение позволяет получить доступ к нескольким камерам, что позволяет использовать API для объединения камеры и ее свойств в одну. Платформа предоставляет приложение для подключения камеры с высоким и низким разрешением.

30. Каким сервисам разрешено запускать одиночный процесс?

Ответ

  • Android позволяет всем службам и приложениям запускаться на одиночном процессе. Такое поведение является поведением по умолчанию, которое может быть изменено с помощью различных настроек и функций.
  • Процесс может быть объявлен с помощью атрибута процесса android:. Таким образом, компонент помещается непосредственно на процесс. Сервис не является отдельным процессом и сам по себе является процессом, если он не определен отдельно.
  • Сервис также не используется в качестве потока, но определяет другие потоки в программе для выполнения работы и создания приложения.
  • Приложение запускается и находит ошибки в программе, и сервис просто предпринимает необходимые действия по их устранению. Служба также реагирует на ошибки, когда это необходимо.

31. Какие шаги необходимо предпринять в Жизненном Цикле обслуживания?

Ответ

Сервис обеспечивает надлежащее функционирование системы.

  • Сервис начинается с функции Context.startService() и система получит сервис, используя метод onCreate(). Для запуска сервиса он обращается к методу StartCommand(Intent, int, int) с соответствующими аргументами, которые дает клиент.
  • Если служба запущена, но по какой-либо причине пользователь не хочет запускать ее, то он использует метод Context.stopService() или stopSelf() для корректной реализации службы для пользователя.
  • В связи с многочисленными вызовами метода Context.startService() программа не производит вложенности программы и показывает остановку сервисов.
  • Службы могут использовать команды метода stopSelf(int) что бы остановить свою службу. Сервис не останавливается до тех пор, пока не будут обработаны все процессы.

32. Какие режимы работы сервисов в Android вам известны?

Ответ

Существует два режима работы, которые необходимо выполнить в зависимости от значения, возвращаемого функцией startcommand(). Режимы работы следующие:

  • START_STICKY: этот режим используется для служб, которые явно запускаются и останавливаются в соответствии с потребностями и запросами пользователя.
  • START_NOT_STICKY или START_REDELIEVER_INTENT: этот сервисный режим используется для служб, которые работают только при отправленной им команде обработки. Это означает, что они выполняются на основе команды, которая передается им, давая команду на выполнение.
  • Клиенты используют Context.bindService(), который используется для получения постоянного соединения для службы. Для создания службы, которая еще не запущена, используется команда onCreate.

33. Для чего нужен жизненный цикл процесса в Android?

Ответ

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

Жизненный цикл процесса выглядит следующим образом:

  • Сначала запускается сервис затем выполняются следующие методы onCreate(), onStartCommand() и onDestroy(). Эти методы будут выполняться самыми первыми, чтобы выполнить процесс, не будучи убитым.
  • Когда сервис запущен, тогда процессы можно считать менее важным, чем те которые видны и используются в данный момент. Это делается, так как на экране отображается очень мало процессов, видимых пользователям.
  • Клиенты привязаны к сервисам, которые они предоставляют, требуют более высокого приоритета в списке выполнения.
  • Запускаемый сервис использует API startForeground(int, Notification), позволяющий всем сервисам работать в режиме реального времени. В качестве не подлежащих уничтожению сервисов система рассматривает только сервисы, в которых пользователь все еще активен.

34. Как все выполняемые действия выполняются в основном потоке?

Ответ

Все запущенные или доступные приложения по умолчанию работают в основном потоке пользовательского интерфейса. Изменения могут быть сделаны, чтобы заставить его работать по-другому или запустить его работу или остановить работу. Исключением является определение того, что код обрабатывает вызовы IPC, поступающие от других процессов. Система используется для обслуживания отдельных пулов всех процессов и потоков. Один пул состоит из потоков транзакций, которые находятся в каждом процессе для отправки всех входящих вызовов. Это позволяет обрабатывать звонки между пользователями в специализированном режиме. Позволяет создавать отдельные потоки, которые используются для медленного кода, и избегать блокировки потоков основного пользовательского интерфейса. Выполняемые службы могут быть уничтожены системой, если она выходит из памяти. Система перезапускает службу и реализует функцию StartCommand() для возврата активности обратно в пул памяти.


35. Какие типы данных, используются в Android?

Ответ

Данные могут передаваться между различными службами и видами деятельности с использованием следующих типов данных:

  • Primitive Data Types: используются для обмена данными о деятельности и сервисах приложения с помощью команды Intent.putExtras(). Эти примитивные данные передаются командой для отображения постоянных данных с помощью механизма хранения. Это встроенные типы данных, которые используются с программой. Они обеспечивают простоту реализации типа и простоту использования команд.
  • Non-Persistent Objects: используются для совместного использования сложных и нестойких объектов. Это определяемые пользователем типы данных, используемые в течение короткого периода времени и также рекомендуемые. Эти типы объектов позволяют получить уникальные данные, но при этом создают сложную систему и увеличивают задержку.

36. Какие методы, необходимы для совместного использования объектов?

Ответ

Существует несколько типов методов:

  • Singleton class: используется для компонентов приложения, которые работают в одном и том же процессе. Это позволяет конструкции запускать только один экземпляр за раз. Он включает статические методы с именем getInstance(). Этот метод возвращает экземпляр при первом вызове. Этот метод также создает глобальный экземпляр, чтобы его можно было легко вызывать, не используя больше памяти при создании и уничтожении процесса.
  • Общедоступное статичкое поле или метод: используется в качестве альтернативного метода для обеспечения доступа к данным в рамках Activities и Services, которые предназначены для использования широкой аудиторией. Определяет статические поля или методы, которые используются другими классами в приложении. Метод используется для совместного использования объекта, создаваемого статическим полем, указывающим на объект и другие доступные поля.
  • HashMap of WeakReferences to Objects: указывает длинные клавиши, отображающие действия, вызываемые объектом из другого объекта. Это после отображения посылает уникальный и длинный ключ, чтобы показать достоверность объекта.

37. Какие методы необходимы для совместного использования постоянно заданных объектов?

Ответ

Устойчивые объекты появляются, когда есть процесс, находящийся в рабочем состоянии, и система может выполнять любые действия, такие как перезапуск или отключение. Если есть какие-либо данные, которые будут сохраняться и требуются от других данных, то очень важно сохранить их и поделиться ими таким образом, чтобы если одно действие завершается, можно было выполнить другое без каких-либо помех. Для совместного использования сложных постоянных объектов, определяемых пользователем, требуются следующие подходы:

  • Параметры приложения: позволяет пользователю изменять настройки параметров и делать их доступными для некоторых других объектов.
  • Файлы: права на файлы могут быть установлены так, чтобы любой другой файл также мог пользоваться для совместного использования объектов.
  • Контент-провайдеры: предоставляют удобные шаблоны, позволяющие пользователю выбрать объект и поделиться им другими функциями.
  • База данных: база данных может использоваться для хранения пользовательских данных и может легко связываться между пользователем и субъектом, который в ней присутствует.

38. Какова процедура проверки состояния активности в Android?

Ответ

  • Статус активности может быть только запущен и остановлен. Старт означает, что активность запущена и в рабочем состоянии. Он находится в состоянии исполнения и выполняет некоторые действия. В то время как состояние остановки означает, что активность остановлено и не выполняет никаких действий в системе.
  • Для просмотра или проверки статуса активности существует команда, которая должна быть использована как NEW_TASK_LAUNCH флаг, который отслеживает все выполняемые действия и главная команда, под которой находится флаг, дается как startActivity() вызов. Для того, чтобы вывести стек активности перед запущенным процессом, необходимо использовать команду, указанную выше. Данное действие может быть запущено удаленно с помощью удаленных служб. Эти сервисы позволяют легко взаимодействовать с клиентом и предоставляют образец для отображения на локальном сервере.

39. Напишите программу, которая показывает, что пакет добавлен или удален.

Ответ

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

Программа, выполняющая оба действия, выглядит следующим образом:

<receiver android:name ="com.android.samples.app.PackageReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package" />
</intent-filter>
</receiver>

40. Какие меры безопасности есть в Android?

Ответ

  1. Android использует множество мер безопасности, чтобы уберечь их от хакеров. Они спроектированы путем внесения изменений в устройства или установки программного обеспечения на мобильный телефон.
  2. Android-приложение использует песочницу, которая является очень популярной и позволяет ограниченный доступ к информации, которая является очень частной и чувствительной для пользователя.
  3. Он позволяет устанавливать разрешения на использование информации. Используется шифрование сообщений.
  4. Пользовательские условия и соглашения также заботятся о безопасности пользователей. Android не разрешает приложениям работать в системе других приложений и использовать их ресурсы. Android с открытым исходным кодом, что позволяет разработчикам оперативно вносить изменения для повышения безопасности.

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

Ответ

Android предлагает широкий спектр виджетов пользовательского интерфейса. Для этого необходимо создать несколько кнопок, а также разрешить комбинировать несколько виджетов с помощью одного многоразового компонента. Существуют XML файлы макета, в которых каждая метка может быть сопоставлена с экземпляром класса. Используются следующие метки:

  • <requestFocus />: позволяет компоненту оставаться в фокусе.
  • <merge />: слияние компонентов и их свойств в один для создания кода компонента.
  • <include />: включает в себя файлы библиотек и визуальные компоненты XML.
  • <merge />: метки, которые могут быть объединены с ним для соединения макета.

Визуальные компоненты XML также используются для определения общей структуры макета.


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

Ответ

Программа, использующая пользовательский интерфейс, включая схему расположения:

<com.android.launcher.Workspace
android:id="@+id/workspace"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
launcher:defaultScreen="1">
<include android:id="@+id/cell1" layout="@layout/work" />
<include android:id="@+id/cell2" layout="@layout/work" />
</com.android.launcher.Workspace>

Используемые метки:

: это тэг элемента и включает в себя другие XML файлы макета. Он вызывает файлы макета, используя их имя и включая @layout. Параметр “@” определяет включение файла макета в программу. То же самое в примере включено дважды. Тег переопределяет некоторые атрибуты, включенные в макет. Можно добавить идентификатор, который однозначно идентифицирует приложение и компоненты, используемые внутри него.


43. Какие методы позволяют избежать утечки памяти в Android?

Ответ

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

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

@Override
protected void onCreate(Bundle state)
{
     super.onCreate(state);
     TextView label = new TextView(this);
     label.setText("Test memory leak");
     setContentView(label);
}

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


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

Ответ

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

  • Никогда не держите ссылки на длительный период времени в привязке к контексту деятельности. Этот показатель может иметь ту же продолжительность жизни, что и показатель активности, или различную длительность, которая зависит от типа активности, выполняемой на данном действии.
  • Использование контекстного приложения намного лучше, чем контекстно-активность, так как оно позволяет повторно использовать приложение снова и снова, а действие можно просматривать или выполнять только один раз. Приложение занимает меньше времени на исполнение, а активность может занять больше времени, так как состоит из нескольких программ.
  • Нестатические внутренние классы следует исключить при работе, так как они не контролируют жизненный цикл класса static-inner и слабо ссылаются на активности, которые находятся внутри процесса и используются в нем.
  • Не стоит полагаться на сборщик мусора, так как он не является оптимальным решением для определения утечек памяти.

45. Какие шаги необходимы для настройки параметров Linkify вызывающих intent?

Ответ

Linkify используется для передачи intent в активности. Параметр linkify позволяет вызывать звонки и выполнять определенные действия. Процесс выполнения linkfy выглядит следующим образом:

  • Linkfy используется для вызова процесса в TextView и позволяет преобразовывать сопоставление шаблонов в связи с intent.
  • Linkify контролирует выбранные пользователем целевые ссылки и позволяет изменять их для последующих действий.
  • Linkfy позволяет пользователю выбрать ссылку, и когда пользователь выбирает ее, он вызывает действие VIEW на контент, который использует URI, связанный с ссылкой.
  • Android получает содержимое, представленное URI, и используемые данные. Он ищет компонент ContentProvider, который зарегистрирован в системе и совпадает с URI создаваемого контента.
  • Если найдено совпадение для запроса, сделанного Android, то URI будет использован ContentProvider и MIME тип данных может быть возвращен для URI.
  • Android использует активность, записанную в системе, которая использует фильтр intent, соответствующий как действию VIEW, так и типу MIME для данных, которые могут быть связаны с URI.