Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Режим разработчика на телефоне



Для запуска и тестирования приложения мы можем использовать эмуляторы или реальные устройства. Но в идеале лучше тестировать на реальных устройствах.

Для использования мобильного устройства для тестирования на рабочую машину необходимо установить драйвер. Если смартфон от Google - Nexus 5/6/5x/6P или Google Pixel, то для его поддержки необходимо через SDK Manager установить пакет Google Usb Driver. Если же производитель аппарата - другой вендор, то надо установить то USB-драйвер, который поставляется данным вендором. Если ОС - Windows 10, то там, как правило, система сама может найти через центр обновлений драйвер и установить его.

По умолчанию опции разработчика на смартфонах скрыты. Чтобы сделать их доступными, надо зайти в Settings > About phone (Настройки > О телефоне) и семь раз нажать Build Number (Номер сборки).

Вернитесь к предыдущему экрану и там вы увидите доступный пункт Developer options (Для разработчика).

Перейдем к пункту Для разработчиков и включим возможность отладки по USB:

Запуск приложения

Подключим устройство с ОС Android (если мы тестируем на реальном устройстве) и запустим проект, нажав на зеленую стрелочку на панели инструментов.

Затем начнется построение проекта. Данный процесс может занять некоторое время, после чего отобразится диалоговое окно для выбора устройства для запуска. Здесь мы можем выбрать подключенный к компьютеру гаджет, либо эмулятор:

Выберем устройство и нажмем на кнопку OK. И после запуска мы увидим наше приложение на экране устройства:



Класс Activity и ресурсы

В прошлой теме мы рассмотрели создание простейшего приложения, изменили содержимое файла activity_main.xml и вывели на экран строку. Однако мы еще не говорили, как файл activity_main.xml связан с графическим интерфейсом. Поэтому рассмотрим класс Activity и файлы ресурсов, которые определяют визуальный интерфейс.

Activity является классом, который по сути представляет отдельный экран (страницу) приложения или его визуальный интерфейс. Отдельные activity, которые уже непосредственно используются в приложении, являются наследниками этого класса. Приложение может иметь одну activity, а может и несколько. Каждая отдельная activity задает отдельное окно для отображения.

Рассмотрим код Activity, использованной в прошлой теме, код которой генерируется автоматически в Android Studio (файл кода можно найти в проекте в папке src/main/java):

package com.example.eugene.helloapplication;

 

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

 

public class MainActivity extends AppCompatActivity {

 

@Override

protected void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);

   setContentView(R.layout.activity_main);

}

}

Класс MainActivity представляет обычный класс java, в начале которого идут определения пакета и импорта внешних пакетов. По умолчанию он содержит только один метод onCreate(), в котором фактически и создается весь интерфейс приложения.

В методе OnCreate() идет обращение к методу родительского класса и установка ресурса разметки дизайна:

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

Чтобы установить ресурс разметки дизайна, вызывется метод setContentView, в который передается идентификатор ресурса.

Обратите внимание на то, как выглядит идентификатор ресурса: R.layout.activity_main. Фактически это и есть ссылка на файл activity_main.xml, который находится в каталоге res/layout:

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

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

xmlns: tools=" http: //schemas.android.com/tools"

android: id=" @+id/activity_main"

android: layout_width=" match_parent"

android: layout_height=" match_parent"

android: padding=" 16dp" >

 

< TextView

   android: layout_width=" wrap_content"

   android: layout_height=" wrap_content"

   android: text=" Привет мир! " />

< /RelativeLayout>

Весь интерфейс представлен элементом-контейнером RelativeLayout, который содержит один компонент - текстовое поле TextView. Текстовое поле устанавливает текст с помощью атрибута android: text.

< TextView

   android: layout_width=" wrap_content"

   android: layout_height=" wrap_content"

   android: text=" Привет мир! " />

Таким образом, при запуске приложения сначала запускается класс MainActivity, который в качестве графического интерфейса устанавливает разметку из файла activity_main.xml.

Однако в классе MainActivity мы используем не файлы, а идентификаторы ресурсов: R.layout.activity_main.

Все идентификаторы ресурсов определены в классе R, который автоматически создается утилитой appt и находится в файле R.java в каталоге build/generated/source/r/debug:

Класс R содержит идентификаторы для всех ресурсов, расположенных в каталоге res. Для каждого типа ресурсов в классе R создается внутренний класс (например, для всех графических ресурсов из каталога res/drawable создается класс R.drawable) и для каждого ресурса данного типа присваивается идентификатор. По этому идентификатору впоследствии можно извлечь ресурс в файле кода.

При обновлении ресурсов во время компиляции этот файл также обновляется.

Например, по умолчанию есть ресурс разметки интерфейса activity_main.xml, который передается через идентификатор R.layout.activity_main. Но если мы добавим в папку res/layout новый ресурс разметки, например, my_layout.xml, то класс R автоматически перекомпилируется, и мы сможем сразу же использовать этот ресурс: setContentView(R.layout.my_layout);


 


Поделиться:



Последнее изменение этой страницы: 2019-05-04; Просмотров: 232; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь