Какой движок баз данных используется в ОС Android?
Какой язык разметки используется для описания иерархии компонентов графического пользовательского интерфейса Android-приложения?
Для решения каких задач в Android используется класс MediaPlayer?
Для решения каких задач в Android используется класс MediaRecorder ?
Ядро какой операционной системы использовалось в качестве базы для ОС Android?
Какой элемент в архитектуре Android служит уровнем абстракции между аппаратным обеспечением и программным стеком?
Какой вид компоновки определяет табличный способ расположения компонентов графического интерфейса пользователя в приложениях под Android?
Какие библиотеки позволяют использовать возможности, появившиеся в какой-то версии ОС Android, на более ранних версиях платформы?
Какой компонент архитектуры Android позволяет любому приложению использовать уже реализованные возможности других приложений, к которым разрешен доступ?
Разработка и использование мобильных приложений
Платформа Android объединяет операционную систему, построенную на основе ядра ОС Linux, промежуточное программное обеспечение и встроенные мобильные приложения. Разработка и развитие мобильной платформы Android выполняется в рамках проекта AOSP (Android Open Source Project) под управлением OHA (Open Handset Alliance), руководит всем процессом поисковый гигант Google.
Android поддерживает фоновое выполнение задач; предоставляет богатую библиотеку элементов пользовательского интерфейса; поддерживает 2D и 3D графику, используя OpenGL стандарт; поддерживает доступ к файловой системе и встроенной базе данных SQLite.
С точки зрения архитектуры, система Android представляет собой полный программный стек, в котором можно выделить следующие уровни:
- Базовый уровень (Linux Kernel) — уровень абстракции между аппаратным уровнем и программным стеком;
- Набор библиотек и среда исполнения (Libraries & Android Runtime) обеспечивает важнейший базовый функционал для приложений, содержит виртуальную машину Dalvik и базовые библиотеки Java необходимые для запуска Android приложений;
- Уровень каркаса приложений (Application Framework) обеспечивает разработчикам доступ к API, предоставляемым компонентами системы уровня библиотек;
- Уровень приложений (Applications) — набор предустановленных базовых приложений.
Наглядное изображение архитектуры на рисунке 1.1.
увеличить изображение
Рис. 1.1. Архитектура Android
Рассмотрим компоненты платформы более подробно.
В основании компонентной иерархии лежит ядро ОС Linux 2.6 (несколько урезанное), служит промежуточным уровнем между аппаратным и программным обеспечением, обеспечивает функционирование системы, предоставляет системные службы ядра: управление памятью, энергосистемой и процессами, обеспечение безопасности, работа с сетью и драйверами.
Уровнем выше располагается набор библиотек и среда исполнения. Библиотеки реализуют следующие функции:
- предоставляют реализованные алгоритмы для вышележащих уровней;
- обеспечивает поддержку файловых форматов;
- осуществляет кодирование и декодирование информации (например, мультимедийные кодеки);
- выполняет отрисовку графики и т.д.
Библиотеки реализованы на С/С++ и скомпилированы под конкретное аппаратное обеспечение устройства, вместе с которым они и поставляются производителем в предустановленном виде.
Surface Manager | — композитный менеджер окон. Поступающие команды отрисовки собираются в закадровый буфер, где они накапливаются, составляя некую композицию, а потом выводятся на экран. Это позволяет системе создавать интересные бесшовные эффекты, прозрачность окон и плавные переходы. |
Media Framework | — библиотеки, реализованные на базе PacketVideo OpenCORE. Используются для записи и воспроизведения аудио и видео контента, а также для вывода статических изображений. Поддерживаются форматы: MPEG4, H.264, MP3, AAC, AMR, JPG и PNG. |
SQLite | — легковесная и производительная реляционная СУБД, используется в Android в качестве основного движка для работы с базами данных. |
3D библиотеки | — используются для высокооптимизированной отрисовки 3D-графики, при возможности используют аппаратное ускорение. Библиотеки реализованы на основе API OpenGL|ES. OpenGL|ES (OpenGL for Embedded Systems) — подмножество графического программного интерфейса OpenGL, адаптированное для работы на встраиваемых системах. |
FreeType | — библиотека для работы с битовыми картами, для растеризации шрифтов и осуществления операций над ними. |
LibWebCore | — библиотеки браузерного движка WebKit, используемого также в известных браузерах Google Chrome и Apple Safari. |
SGL (Skia Graphics Engine) | — открытый движок для работы с 2D-графикой. Графическая библиотека является продуктом Google и часто используется в других программах. |
SSL | — библиотеки для поддержки одноименного криптографического протокола. |
Libc | — стандартная библиотека языка С, а именно ее BSD реализация, настроенная для работы на устройствах на базе Linux. |
Среда исполнения включает в себя библиотеки ядра, обеспечивающие большую часть низкоуровневой функциональности, доступной библиотекам ядра языка Java, и виртуальную машину Dalvik, позволяющую запускать приложения. Каждое приложение запускается в своем экземпляре виртуальной машины, тем самым обеспечивается изоляция работающих приложений от ОС и друг от друга. Для исполнения на виртуальной машине Dalvik Java-классы компилируются в исполняемые файлы с расширением .dex с помощью инструмента dx, входящего в состав Android SDK. DEX (Dalvik EXecutable) — формат исполняемых файлов для виртуальной машины Dalvik, оптимизированный для использования минимального объема памяти. При использовании IDE Eclipse и плагина ADT (Android Development Tools) компиляция классов Java в формат .dex происходит автоматически.
Архитектура Android Runtime такова, что работа программ осуществляется строго в рамках окружения виртуальной машины, что позволяет защитить ядро ОС от возможного вреда со стороны других ее составляющих. Поэтому код с ошибками или вредоносное ПО не смогут испортить Android и устройство на его базе, когда сработают.
На еще более высоком уровне располагается каркас приложений (Application Framework), архитектура которого позволяет любому приложению использовать уже реализованные возможности других приложений, к которым разрешен доступ. В состав каркаса входят следующие компоненты:
- богатый и расширяемый набор представлений (Views), который может быть использован для создания визуальных компонентов приложений, например, списков, текстовых полей, таблиц, кнопок или даже встроенного web-браузера;
- контент-провайдеры (Content Providers), управляющие данными, которые одни приложения открывают для других, чтобы те могли их использовать для своей работы;
- менеджер ресурсов (Resource Manager), обеспечивающий доступ к ресурсам без функциональности (не несущим кода), например, к строковым данным, графике, файлам и другим;
- менеджер оповещений (Notification Manager), позволяющий приложениям отображать собственные уведомления для пользователя в строке состояния;
- менеджер действий (Activity Manager), управляющий жизненными циклами приложений, сохраняющий историю работы с действиями, предоставляющий систему навигации по действиям;
- менеджер местоположения (Location Manager), позволяющий приложениям периодически получать обновленные данные о текущем географическом положении устройства.
Application Framework предоставляет в распоряжение приложений в ОС Android вспомогательный функционал, благодаря чему реализуется принцип многократного использования компонентов приложений и ОС. Естественно, в рамках политики безопасности.
И, наконец, самый высокий, самый близкий к пользователю уровень приложений. Именно на этом уровне пользователь взаимодействует со своим устройством, управляемым ОС Android. Здесь представлен набор базовых приложений, который предустановлен на ОС Android. Например, браузер, почтовый клиент, программа для отправки SMS, карты, календарь, менеджер контактов и др. Список интегрированных приложений может меняться в зависимости от модели устройства и версии Android. К этому уровню также относятся все пользовательские приложения.
Разработчик обычно взаимодействует с двумя верхними уровнями архитектуры Android для создания новых приложений. Библиотеки, система исполнения и ядро Linux скрыты за каркасом приложений.
Повторное использование компонентов других приложений приводит к идее задач в Android. Приложение может использовать компоненты другого Android приложения для решения задачи, например, если разрабатываемое приложение предполагает использование фотографий, оно может вызвать приложение, управляющее фотографиями и зарегистрированное в системе Android, выбрать с его помощью фотографию и работать с ней.
Для пополнения коллекции приложений своего мобильного устройства пользователь может воспользоваться приложением Google Play, которое позволяет покупать и устанавливать приложения с сервиса Google Play. Разработчики, в свою очередь, могут выкладывать свои приложения в этот сервис, Google Play отслеживает появление обновлений приложения, сообщает пользователям этого приложения об обновлении и предлагает установить его. Также Google Play предоставляет разработчикам доступ к услугам и библиотекам, например, доступ к использованию и отображению Google Maps.
Для установки приложения на устройствах с ОС Android создается файл с расширением *.apk (Android package), который содержит исполняемые файлы, а также вспомогательные компоненты, например, файлы с данными и файлы ресурсов. После установки на устройство каждое приложение «живет» в своем собственном изолированном экземпляре виртуальной машины Dalvik.
Применение SQLiteOpenHelper и Database Inspector в Android-разработке
Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать об использовании баз данных SQLite в Android-разработке. В частности — он коснётся тут двух вопросов. Во-первых — речь пойдёт о классе SQLiteOpenHelper , который применяется для работы с базами данных в коде приложений. Во-вторых — он уделит определённое внимание инструменту Database Inspector, инспектору баз данных, встроенному в Android Studio.
Что такое SQLite?
SQLite — это опенсорсная реляционная СУБД, похожая на MySQL. SQLite входит в состав стандартной библиотеки Android, где реализован движок базы данных, не нуждающийся в применении клиент-серверной архитектуры, не требующий особой настройки, поддерживающий транзакции. Для работы SQLite не нужен сервер баз данных. Всё, что нужно, хранится в обычных файлах. Полноценная БД SQLite, в которой имеется множество таблиц, триггеров, индексов и представлений, содержится в единственном, самом обыкновенном файле. Стандартная поддержка СУБД SQLite имеется во всех мобильных телефонах и в большинстве компьютеров. При этом работа с SQLite не требует решения задач по администрированию или настройке баз данных.
Android-разработчик, для выполнения CRUD-операций из своего приложения, может пользоваться пакетом android.database.sqlite.SQLiteDatabase , в котором реализованы все необходимые API.
Класс SQLiteOpenHelper
SQLiteOpenHelper — это класс, встроенный в пакет android.database.sqlite.SQLiteDatabase . Это — вспомогательный класс, который отвечает за создание баз данных SQLite и за управление их версиями. Для того чтобы воспользоваться возможностями этого класса, нужно создать его подкласс, в котором надо переопределить два метода — onCreate() и onUpgrade() . Этот класс позволяет открывать существующие базы данных, создавать новые базы данных и обновлять версии баз данных.
▍Метод onCreate()
Метод onCreate() вызывается при создании базы данных. Он, в процессе жизненного цикла приложения, вызывается лишь один раз. А именно, его вызов производится при первом обращении к методу getReadableDatabase() или getWritableDatabase() . Эти методы принадлежат классу SQLiteOpenHelper .
В следующем примере показано создание экземпляра класса DatabaseHelper , являющегося наследником SQLiteOpenHelper :
DatabaseHelper dbh = new DatabaseHelper(getApplicationContext());
Вот код конструктора DatabaseHelper :
public DatabaseHelper(Context context)
Класс SQLiteOpenHelper вызывает метод onCreate() после создания базы данных и создания экземпляра класса SQLiteDatabase . Этот метод, напомним, вызывается лишь один раз, при создании базы данных:
@Override public void onCreate(SQLiteDatabase db) < try < db.execSQL(CREATE_TABLE); >catch (Exception e) < >>
▍Метод onUpgrade()
Метод onUpgrade() вызывается в тех случаях, когда нужно обновить версию существующей базы данных:
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
▍Пример
Создадим простое Android-приложение и разберём практический пример работы с классом SQLiteOpenHelper . Это приложение, применяя данный класс, позволит нам добавлять записи о работниках некоей компании в таблицу Empdata базы данных Company.db .
Приложение имеет весьма простой интерфейс, описанный в файле activity_main.xml .
Интерфейс приложения
Вот содержимое файла MainActivity.java :
package www.sqliteopenhelper.sqliteopenhelper; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText edtEmpName = findViewById(R.id.edtName); EditText edtDesig = findViewById(R.id.edtDesig); EditText edtSalary = findViewById(R.id.edtSalary); Button btnSave = findViewById(R.id.btnSave); DatabaseHelper dbh= new DatabaseHelper(getApplicationContext()); btnSave.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View view) < Employee objEmp = new Employee(edtEmpName.getText().toString(),edtDesig.getText().toString(),Integer.parseInt(edtSalary.getText().toString())); if(dbh.InsertEmployee(objEmp)) Toast.makeText(getApplicationContext(),"Record inserted successfully",Toast.LENGTH_LONG).show(); else Toast.makeText(getApplicationContext(),"Record not inserted",Toast.LENGTH_LONG).show(); >>); > >
Вот содержимое Employee.java :
package www.sqliteopenhelper.sqliteopenhelper; public class Employee < private String employeeName; private String employeeDesig; private int employeeSalary; public Employee() < >public Employee(String employeeName, String employeeDesig, int employeeSalary) < this.employeeName = employeeName; this.employeeDesig = employeeDesig; this.employeeSalary = employeeSalary; >public String getEmployeeName() < return employeeName; >public String getEmployeeDesig() < return employeeDesig; >public int getEmployeeSalary() < return employeeSalary; >public void setEmployeeName(String employeeName) < this.employeeName = employeeName; >public void setEmployeeDesig(String employeeDesig) < this.employeeDesig = employeeDesig; >public void setEmployeeSalary(int employeeSalary) < this.employeeSalary = employeeSalary; >>
Вот файл DatabaseHelper.java :
package www.sqliteopenhelper.sqliteopenhelper; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper < public static final int version = 1; public static String dbName="Company.db"; public static final String TABLE_NAME ="Empdata"; public static final String COL1 = "id"; public static final String COL2 = "name"; public static final String COL3 = "designation"; public static final String COL4 = "salary"; private static final String CREATE_TABLE="create table if not exists "+ TABLE_NAME + "(" + COL1 + " INTEGER PRIMARY KEY AUTOINCREMENT,"+COL2+" TEXT NOT NULL," + COL3 + " TEXT, " +COL4 + " INTEGER);"; private static final String DROP_TABLE = "DROP TABLE IF EXISTS "+ TABLE_NAME; private Context context; public DatabaseHelper(Context context) < super(context,dbName,null,version); context=this.context; >@Override public void onCreate(SQLiteDatabase db) < try < db.execSQL(CREATE_TABLE); >catch (Exception e) < >> @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) < db.execSQL(DROP_TABLE); onCreate(db); >public boolean InsertEmployee(Employee objEmp) < SQLiteDatabase db=this.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put(COL2,objEmp.getEmployeeName()); cv.put(COL3,objEmp.getEmployeeDesig()); cv.put(COL4,objEmp.getEmployeeSalary()); long result = db.insert(TABLE_NAME,null,cv); if(result == -1) return false; else return true; >>
В коде DatabaseHelper.java видно, что класс DatabaseHelper является наследником класса SQLiteOpenHelper .
После того, как база данных создана, можно приступать к работе с ней. В частности — создавать и обновлять поля её таблиц. При решении этих задач можно пользоваться объектом типа ContentValues , который позволяет хранить пары ключ-значение. Именно такие объекты используются для добавления новых записей в таблицы базы данных (с помощью метода insert() объекта SQLiteDatabase ) и для обновления существующих записей (с помощью метода update() ).
Database Inspector в Android Studio
Инструмент Database Inspector позволяет исследовать базы данных, используемые в приложениях, выполнять запросы к ним, модифицировать их, делая всё это во время работы приложений. Database Inspector имеется в Android Studio начиная с версии 4.1. Этот инструмент особенно полезен при отладке механизмов программ, ответственных за работу с базами данных. Database Inspector работает и с обычной реализацией SQLite, и с библиотеками, построенными на её основе, вроде Room. Database Inspector работает лишь с библиотекой SQLite, входящей в состав операционных систем Android, уровень API которых не ниже 26.
Для того чтобы открыть базу данных в Database Inspector нужно выполнить следующие действия:
- Запустите приложение в эмуляторе или на устройстве, подключённом к компьютеру. На эмуляторе или на устройстве должно присутствовать API не ниже 26 уровня.
- Выполните команду меню View > Tool Windows > Database Inspector .
- Выберите процесс выполняющегося приложения из выпадающего меню.
- В панели Databases появятся записи о базах данных, которые имеются в выбранном приложении. Теперь можно работать с этими базами данных.
Исследование базы данных с помощью Database Inspector
Обратите внимание на то, что есть одна проблема, связанная с аварийным завершением работы программ на эмуляторе Android 11 при подключении к Database Inspector. Если вы с этой проблемой столкнётесь — здесь вы можете найти сведения о том, как с ней справиться.
Применяете ли вы SQLite в Android-разработке?
Dev & Type
Разработка и проектирование программного обеспечения.
Тест на знание основ разработки приложений для ОС Android
Ядро какой операционной системы использовалось в качестве базы для ОС Android?
(Отметьте один правильный вариант ответа.)
Вариант 1 Linux
Вариант 2 OS/2
Вариант 3 Mac OS
Вариант 4 Windows
Какой движок баз данных используется в ОС Android?
(Отметьте один правильный вариант ответа.)
Вариант 1 DBM
Вариант 2 SQLite
Вариант 3 InnoDB
Вариант 4 MyISAM
Какой компонент архитектуры Android позволяет любому приложению использовать уже реализованные возможности других приложений, к которым разрешен доступ?
(Отметьте один правильный вариант ответа.)
Вариант 1 Application Framework
Вариант 2 Linux Kernel
Вариант 3 Applications
Вариант 4 Libraries & Android Runtime
Инструмент разработки, позволяющий адаптировать код С/С++ для работы на Android, это —
(Отметьте один правильный вариант ответа.)
Вариант 1 Google Android SDK (ADT Bundle)
Вариант 2 Marmalade SDK
Вариант 3 Intel* Software Manager
Вариант 4 Android NDK
Чем являются Eclipse и IDEA?
(Отметьте один правильный вариант ответа.)
Вариант 1 API (интерфейс прикладного программирования)
Вариант 2 IDE (интегрированная среда разработки)
Вариант 3 SDK (набор средств разработки)
Вариант 4 ADT (инструменты разработки под Android)
К проблемам разработки под ОС Android можно отнести:
(Отметьте один правильный вариант ответа.)
Вариант 1 отсутствие эффективных инструментов разработки
Вариант 2 ненадежную изоляцию ядра системы от выполняемых приложений
Вариант 3 все варианты ответа верны
Вариант 4 большое разнообразие устройств, невозможность проверки приложения на всех
К преимуществам среды разработки Intel XDK можно отнести:
(Отметьте один правильный вариант ответа.)
Вариант 1 легкость разработки кроссплатформенных приложений
Вариант 2 все варианты ответа верны
Вариант 3 наличие облачного хранилища для разработанных приложений
Вариант 4 наличие собственного эффективного эмулятора
Среда разработки Intel XDK поддерживает следующие языки программирования:
(Отметьте один правильный вариант ответа.)
Вариант 1 C++
Вариант 2 C#
Вариант 3 Java
Вариант 4 JavaScript
Для запуска приложений, разработанных в Android IDE, необходимо:
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Вариант 1 настроить среду и запустить проект на устройстве
Вариант 2 запустить виртуальную машину с установленной ОС Android
Вариант 3 настроить компьютер (для Windows необходимо установить нужный драйвер вручную, нужны права администратора)
Вариант 4 настроить устройство (включить режим отладки по USB)
Не является средством разработки под Android:
(Отметьте один правильный вариант ответа.)
Вариант 1 ProGuard
Вариант 2 Device Monitor
Вариант 3 AVD Manager
Вариант 4 SDK Manager
С какой целью был создан Open Handset Alliance?
(Отметьте один правильный вариант ответа.)
Вариант 1 писать историю развития ОС Android
Вариант 2 продавать смартфоны под управлением Android
Вариант 3 разрабатывать открытые стандарты для мобильных устройств
Вариант 4 рекламировать смартфоны под управлением Android
Какое название получила версия Android 4.4?
(Отметьте один правильный вариант ответа.)
Вариант 1 Krispy Kreme
Вариант 2 kream-karamel
Вариант 3 kitekat
Вариант 4 Kit Kat
С какой целью инструмент Intel* Hardware Accelerated Execution Manager (Intel* HAXM) используется в среде разработки Intel* Beacon Mountain?
(Отметьте один правильный вариант ответа.)
Вариант 1 для ускорения работы эмулятора в среде разработки
Вариант 2 для эффективного распараллеливания С++ мобильных приложений
Вариант 3 для оптимизированной обработки данных и изображений
Вариант 4 для оптимизации загрузки системы при использовании процедур OpenGL
С какой целью инструмент Intel* Graphics Performance Analyzers (Intel* GPA) System Analyzer используется в среде разработки Intel* Beacon Mountain?
(Отметьте один правильный вариант ответа.)
Вариант 1 позволить разработчикам эффективно распараллелить С++ мобильные приложения
Вариант 2 позволить разработчикам оптимизировать загруженность системы при использовании процедур OpenGL
Вариант 3 для ускорения работы эмулятора в среде разработки
Вариант 4 для оптимизированной обработки данных и изображений
Тестирование на реальных устройствах приложений, разработанных в Intel XDK
(Отметьте один правильный вариант ответа.)
Вариант 1 невозможно
Вариант 2 можно проводить, установив на устройство специальную программу или собрав проект и установив результат сборки на устройство
Вариант 3 можно проводить, установив на устройство специальную программу
Вариант 4 можно проводить, собрав проект и установив результат сборки на устройство
Эмулятор среды разработки Intel XDK:
(Отметьте один правильный вариант ответа.)
Вариант 1 не требует больших системных ресурсов
Вариант 2 позволяет проверить работу приложений, использующих акселерометр
Вариант 3 позволяет моделировать исполнение приложение на ряде устройств
Вариант 4 все варианты ответа верны
Intel XDK поддерживает разработку под:
(Отметьте один правильный вариант ответа.)
Вариант 1 JavaFX Mobile
Вариант 2 Apple iOS, BlackBerry OS
Вариант 3 Android, Apple iOS, Microsoft Windows 8, Tizen
Вариант 4 MtkOS, Symbian OS, Microsoft Windows 8
Какая графическая библиотека входит в набор библиотек ОС Android?
(Отметьте один правильный вариант ответа.)
Вариант 1 OpenCV
Вариант 2 DirectX
Вариант 3 Open GL
Вариант 4 OpenCL
Приложения, не имеющие GUI и выполняющиеся в фоновом режиме — это
(Отметьте один правильный вариант ответа.)
Вариант 1 Intents
Вариант 2 Content Providers
Вариант 3 Activities
Вариант 4 Services
Удобное средство обмена между двумя NFC-устройствами:
(Отметьте один правильный вариант ответа.)
Вариант 1 Wi-Fi Direct
Вариант 2 Dalvik
Вариант 3 AndroidBeam
Вариант 4 Bluetooth
Преимуществом эмуляторов является:
(Отметьте один правильный вариант ответа.)
Вариант 1 невозможность полноценной отладки
Вариант 2 необходимость дополнительных системных ресурсов
Вариант 3 низкая стоимость
Вариант 4 медленный запуск
Фоновые приложения .
(Отметьте один правильный вариант ответа.)
Вариант 1 после настройки не предполагают взаимодействия с пользователем, большую часть времени находятся и работают в скрытом состоянии
Вариант 2 небольшие приложения, отображаемые в виде графического объекта на рабочем столе
Вариант 3 выполняют свои функции и когда видимы на экране, и когда скрыты другими приложениями
Вариант 4 большую часть времени работают в фоновом режиме, однако допускают взаимодействие с пользователем и после настройки
Какая папка в структуре Android-приложения содержит файлы с исходным кодом на языке Java?
(Отметьте один правильный вариант ответа.)
Вариант 1 gen
Вариант 2 src
Вариант 3 bin
Вариант 4 res
Приложение какого вида имеет смысл использовать для отображения динамической информации, такой как заряд батареи, прогноз погоды, дата и время?
(Отметьте один правильный вариант ответа.)
Вариант 1 фоновое приложение
Вариант 2 приложение переднего плана
Вариант 3 виджет
Вариант 4 смешанное приложение
Что находится в папке gen?
(Отметьте один правильный вариант ответа.)
Вариант 1 ресурсы приложения
Вариант 2 аудио файлы
Вариант 3 изображения
Вариант 4 автоматически сгенерированные java-файлы
Каждый приемник широковещательных сообщений является наследником класса .
(Отметьте один правильный вариант ответа.)
Вариант 1 ContentProvider
Вариант 2 BroadcastReceiver
Вариант 3 ViewReceiver
Вариант 4 IntentReceiver
Выберите верные утверждения относительно объекта-намерения (Intent).
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Вариант 1 представляет собой структуру данных, содержащую описание операции, которая должна быть выполнена, и обычно используется для запуска активности или сервиса
Вариант 2 используются для передачи сообщений между основными компонентами приложений
Вариант 3 используется для получения инструкций от пользователя
Вариант 4 используется для передачи сообщений пользователю
Какие методы может использовать активность для запуска сервиса?
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Вариант 1 bindService()
Вариант 2 openService()
Вариант 3 startService()
Вариант 4 createService()
Выберите верную последовательность действий, необходимых для создания в приложении контент-провайдера.
(Отметьте один правильный вариант ответа.)
Вариант 1 Проектирование способа хранения данных; Создание класса-наследника от класса ContentProvider; Определение строки авторизации провайдера, URI для его строк и имен столбцов
Вариант 2 Создание класса наследника от класса ContentProvider; Заполнение контент-провайдера данными; Определение способа работы с данными
Вариант 3 Проектирование способа хранения данных; Определение способа организации данных; Определение способа работы с данными
Вариант 4 Создание класса наследника от класса ContentProvider; Определение способа организации данных; Заполнение контент-провайдера данными