Курс

"Мобильная разработка"

Создание нескольких активностей

Файл AndroidManifest.xml

Файл манифеста AndroidManifest.xml

Каждое приложение содержит файл манифеста AndroidManifest.xml. Данный файл определяет важную информацию о приложении - название, версию, иконки, какие разрешения приложение использует, регистрирует все используемые классы activity, сервисы и т.д.

Файл манифеста может выглядеть так:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package=" com.example.intentvideo1 ">

 

    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

 

</manifest>

Элементом корневого уровня является узел manifest. В данном случае только определяется пакет приложения - package="com.example.intentvideo1"

Большинство настроек уровня приложения определяются элементом application. Например, через атрибут android:icon="@mipmap/ic_launcher" задается иконка приложения, которая находится в каталоге res/mipmap-xxxx

Также здесь задается название приложение, которое будет отображаться на мобильном устройстве в списке приложений и в заголовке: android:label="@string/app_name". В данном случае оно хранится в строковых ресурсах.

Вложенные элементы activity определяют все используемые в приложении activity. В данном случае видно, что в приложении есть только одна activity - MainActivity.

Элемент intent-filter в MainActivity указывает, как данная activity будет использоваться. В частности, с помощью узла action android:name="android.intent.action.MAIN", что данная activity будет входной точкой в приложение и не должна получать какие-либо данные извне.

Элемент category android:name="android.intent.category.LAUNCHER" указывает, что MainActivity будет представлять стартовый экран, который отображается при запуске приложения.

Определение версии

С помощью атрибутов элемента manifest можно определить версию приложения и его кода:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package=" com.example.intentvideo1"

    android:versionName="1.0"

    android:versionCode="1" />

     

<!-- остальное содержимое-->

 

</manifest>

Установка версии SDK

Для управления версией android sdk в файле манифеста определяется элемент <uses-sdk>. Он может использовать следующие атрибуты:

  • minSdkVersion: минимальная поддерживаемая версия SDK

  • targetSdkVersion: оптимальная версия

  • maxSdkVersion: максимальная версия

Версия определяется номером API, например, Jelly Beans 4.1 имеет версию 16:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.intentvideo1"

    android:versionName="1.0"

    android:versionCode="1" />

    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="19" />

<!-- остальное содержимое-->

 

</manifest>

 

Установка разрешений

Иногда приложению требуются разрешения на доступ к определенным ресурсам, например, к списку контактов, камере, интернет и т.д. Чтобы приложение могло работать с тем же списком контактов, в файле манифесте необходимо установить соответствующие разрешения. Для установки разрешений применяется элемент <uses-permission>:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.intentvideo1""/>

    <uses-permission android:name="android.permission.READ_CONTACTS" />

    <uses-permission android:name="android.permission.CAMERA" android:maxSdkVersion="21" />

<!-- остальное содержимое-->

 

</manifest>

Атрибут android:name устанавливает название разрешения: в данном случае на чтение списка контактов и использование камеры. Опционально можно установить максимальную версию sdk посредством атрибута android:maxSdkVersion, который принимает номер API.

Поддержка разных разрешений

Мир устройств Android очень сильно фрагментирован, здесь встречаются как гаджеты с небольшим экраном, так и большие широкоэкранные телевизоры. И бывают случаи, когда надо ограничить использование приложения для определенных разрешений экранов. Для этого в файле манифеста определяется элемент <supports-screens>:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.intentvideo1"/>

     

    <supports-screens

        android:largeScreens="true"

        android:normalScreens="true"

        android:smallScreens="false"

        android:xlargeScreens="true" />

<!-- остальное содержимое-->

 

</manifest>

Данный элемент принимает четыре атрибута:

android:largeScreens - экраны с диагональю от 4.5 до 10"

android:normalScreens - экраны с диагональю от 3 до 4.5"

android:smallScreens - экраны с диагональю меньше 3"

android:xlargeScreens - экраны с диагональю больше 10"

Если атрибут имеет значение true, то приложение будет поддерживаться соответствующим размером экрана

Запрет на изменение ориентации

Приложение в зависимости от положения гаджета может находиться в альбомной и портретной ориентации. Не всегда это бывает удобно. Мы можем сделать, чтобы приложение вне зависимости от поворота гаджета использовало только одну ориентацию. Для этого в файле манифеста у требуемой activity надо установить атрибут android:screenOrientation. Например, запретим альбомную ориентацию:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.intentvideo1" >

 

    <application

 

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:screenOrientation="portrait"

<!-- остальное содержимое-->

 

Значение android:screenOrientation="portrait" указывает, что данная activity будет находиться только в портретной ориентации. Если же надо установить только альбомную ориентацию, тогда надо использовать значение android:screenOrientation="landscape"

Список источников

https://startandroid.ru/ru/

https://metanit.com/

Эта тема не содержит тестов или других форм контроля знаний

Понравился курс?

Подпишись на странице обсуждений и стань участником курса