Куда сохраняет файлы android studio
В Android Studio, где файлы сопоставления ProGuard генерируются после компиляции подписанного APK?
Я не уверен, что он не работает или я просто забыл путь к файлу, и мой обязательный поиск в Google / Stack Overflow не ответил на этот вопрос.
Он должен находиться build/outputs/proguard/release/mapping.txt в каталоге вашего модуля приложения.
В последней версии ProGuard и Android Studio этот файл находится по адресу build/outputs/mapping/release/mapping.txt .
Если ваш Мгновенный запуск включен, возможно, вы не сможете увидеть файл сопоставления. Отключить мгновенный запуск и построить снова.
После обновления до Gradle 6.2.2 / Gradle Plugin 3.6.1 пути для нас изменились. /app/build/outputs/mapping/brandExampleEnvProductionRelease/mapping.txt /app/build/outputs/mapping/brandExampleEnvIntegrationBeta/mapping.txt новые пути.
Для меня они в 'build/outputs/mapping/release'
В app / build / output / mapping / release / mapping.txt была отдельная папка сборки, в которой не было файла сопоставления .
Я обнаружил, что лучше настроить proguard для записи файла mapping.txt в папку за пределами build/ дерева каталогов, чтобы его было удобнее проверять в управлении версиями.
Для этого поместите это в свой proguard-rules.pro файл:
Это (скорее всего) поместит его в тот же каталог, что и ваш proguard-rules.pro файл. В конечном счете, вы, вероятно, захотите записать его в тот же каталог, что и ваш APK-файл, и с эквивалентным именем (которое может включать аромат, тип сборки и т. Д.).
Примечание: по моему опыту, это не отменяется файлом шаблона proguard (который был предложен комментатором для другого ответа здесь).
почему вы хотите контролировать версию? он нужен вам для каждого APK, который вы выпускаете отдельно, так как он зависит от сборки. так как вы должны загрузить / проверить такой apk отдельно от источника, на самом деле нет необходимости проверять его в исходном VCS !?
@ Denny1989 не уверен, что ты имеешь в виду. Я создаю APK и храню его вне контроля версий. Я должен где-то хранить файл сопоставления. Я мог бы хранить его рядом с APK, но я считаю, что он чище для контроля версий. Тем не менее, у меня только один релиз APK на проект, так что YMMV.
Я обнаружил, что это не генерируется, поэтому я добавил это в файл правил
Уже довольно поздно, чтобы ответить на этот вопрос, но на тот случай, если кому-то понадобится мой ответ.
Расположение файла сопоставления для деобфускации:
ProGuard сохраняет файл в приложении app / build / output / mapping / FLAVOR / release / mapping.txt
Обычно в режиме отладки вам не нужен файл сопоставления, потому что там обычно запутывание отключено. Если это не тот случай, убедитесь, что в файле build.gradle у вас есть код ниже для варианта отладки.
Некоторые Gotchas:
Файл mapping.txt перезаписывается каждый раз, когда вы создаете сборку релиза с помощью ProGuard, поэтому сначала создайте резервную копию этого файла, прежде чем создавать новый выпуск. Это поможет запутать трассировку стека из более старой версии вашего приложения.
Кроме этого есть два способа запутать ваш код:
1. Загрузите файл mapping.txt в консоль Google Play:
При публикации приложения в Google Play вы можете загрузить файл mapping.txt для каждой версии вашего APK. Затем Google Play деобфусцирует следы входящих стеков от проблем, о которых сообщают пользователи, чтобы вы могли просмотреть их в консоли Google Play.
2. Используйте локальный инструмент SDK retrace.sh/retrace.bat:
Чтобы самостоятельно преобразовать запутанную трассировку стека в читабельную, используйте скрипт retrace ( retrace.bat в Windows; retrace.sh в Mac / Linux ).
Он находится в /tools/proguard/bin/ каталоге.
это место, где были установлены все ваши библиотеки Android и SDK.
Сценарий берет файл mapping.txt и трассировку стека, создавая новую читаемую трассировку стека.
Синтаксис команды:
Например:
Я предпочитаю локальную версию запутывания, так как это очень удобно для предварительной проверки производственных ошибок.
Работа с настройками уровня activity и приложения позволяет сохранить небольшие данные отдельных типов (string, int), но для работы с большими массивами данных, такими как графически файлы, файлы мультимедиа и т.д., нам придется обращаться к файловой системе.
ОС Android построена на основе Linux. Этот факт находит свое отражение в работе с файлами. Так, в путях к файлам в качестве разграничителя в Linux использует слеш "/", а не обратный слеш "\" (как в Windows). А все названия файлов и каталогов являются регистрозависимыми, то есть "data" это не то же самое, что и "Data".
Приложение Android сохраняет свои данные в каталоге /data/data// и, как правило, относительно этого каталога будет идти работа.
Для работы с файлами абстрактный класс android.content.Context определяет ряд методов:
boolean deleteFile (String name) : удаляет определенный файл
String[] fileList () : получает все файлы, которые содержатся в подкаталоге /files в каталоге приложения
File getCacheDir() : получает ссылку на подкаталог cache в каталоге приложения
File getDir(String dirName, int mode) : получает ссылку на подкаталог в каталоге приложения, если такого подкаталога нет, то он создается
File getExternalCacheDir() : получает ссылку на папку /cache внешней файловой системы устройства
File getExternalFilesDir(String type) : получает ссылку на каталог /files внешней файловой системы устройства
File getFileStreamPath(String filename) : возвращает абсолютный путь к файлу в файловой системе
FileInputStream openFileInput(String filename) : открывает файл для чтения
FileOutputStream openFileOutput (String name, int mode) : открывает файл для записи
Все файлы, которые создаются и редактируются в приложении, как правило, хранятся в подкаталоге /files в каталоге приложения.
Для непосредственного чтения и записи файлов применяются также стандартные классы Java из пакета java.io.
Итак, применим функционал чтения-записи файлов в приложении. Пусть у нас будет следующая примитивная разметка layout:
Поле EditText предназначено для ввода текста, а TextView - для вывода ранее сохраненного текста. Для сохранения и восстановления текста добавлены две кнопки.
Теперь в коде Activity пропишем обработчики кнопок с сохранением и чтением файла:
При нажатии на кнопку сохранения будет создаваться поток вывода FileOutputStream fos = openFileOutput(FILE_NAME, MODE_PRIVATE)
В данном случае введенный текст будет сохраняться в файл "content.txt". При этом будет использоваться режим MODE_PRIVATE
Система позволяет создавать файлы с двумя разными режимами:
MODE_PRIVATE : файлы могут быть доступны только владельцу приложения (режим по умолчанию)
MODE_APPEND : данные могут быть добавлены в конец файла
Поэтому в данном случае если файл "content.txt" уже существует, то он будет перезаписан. Если же нам надо было дописать файл, тогда надо было бы использовать режим MODE_APPEND:
Для чтения файла применяется поток ввода FileInputStream :
В итоге после нажатия кнопки сохранения весь текст будет сохранен в файле /data/data/название_пакета/files/content.txt
Где физически находится созданный файл? Чтобы увидеть его на подключенном устройстве перейдем в Android Stud в меню к пункту View -> Tool Windows -> Device File Explorer
После этого откроектся окно Device File Explorer для просмотра файловой системы устройства. И в папке data/data/[название_пакета_приложения]/files мы сможем найти сохраненный файл.
Теперь создадим первое приложение в среде Android Studio для операционной системы Android. Откроем Android Studio и на начальном экране выберем пункт New Project :
При создании проекта Android Studio вначале предложит нам выбрать шаблон проекта:
Android Studio предоставляет ряд шаблонов для различных ситуаций. Выберем в этом списке шаблон Empty Activity , который предосавляет самый простейший фукционал, необходимый для начала, и нажмем на кнопку Next .
После этого отобразится окно настроек нового проекта:
В окне создания нового проекта мы можем установить его начальные настройки:
В поле Name вводится название приложения. Укажем в качестве имени название HelloApp
В поле Package Name указывается имя пакета, где будет размещаться главный класс приложения. В данном случае для тестовых проектов это значение не играет ольшого значения, поэтому установим com.example.helloapp .
В поле Save Location установливается расположение файлов проекта на жестком диске. Можно оставить значение по умолчанию.
В поле Language в качестве языка программирования укажем Java (будьт внимательны, так как по умолчанию в этом поле стоит Kotlin)
В поле Minimum SDK указывается самая минимальная поддерживаемая версия SDK. Оставим значение по умолчанию - API 21: Android 5.0 (Lollipop) , которая означает, что наше приложение можно будет запустить начиная с Android 5.0, а это 94% устройств. На более старых устройствах запустить будет нельзя.
Стоит учитывать, что чем выше версия SDK, тем меньше диапазон поддерживаемых устройств.
Далее нажмем на кнопку Finish, и Android Studio создаст новый проект:
Вначале вкратце рассмотрим структуру проекта, что он уже имеет по умолчанию
Проект Android может состоять из различных модулей. По умолчанию, когда мы создаем проект, создается один модуль - app . Модуль имеет три подпапки:
manifests : хранит файл манифеста AndroidManifest.xml , который описывает конфигурацию приложения и определяет каждый из компонентов данного приложения.
java : хранит файлы кода на языке java, которые структурированы по отдельным пакетам. Так, в папке com.example.helloapp (название которого было указано на этапе создания проекта) имеется по умолчанию файл MainActivity.java с кодом на языке Java, который представляет класс MainActivity, запускаемый по умолчанию при старте приложения
res : содержит используемые в приложении ресурсы. Все ресурсы разбиты на подпапки.
папка drawable предназначена для хранения изображений, используемых в приложении
папка layout предназначена для хранения файлов, определяющих графический интерфейс. По умолчанию здесь есть файл activity_main.xml , который определяет интерфейс для класса MainActivity в виде xml
папки mipmap содержат файлы изображений, которые предназначены для создания иконки приложения при различных разрешениях экрана.
папка values хранит различные xml-файлы, содержащие коллекции ресурсов - различных данных, которые применяются в приложении. По умолчанию здесь есть два файла и одна папка:
файл colors.xml хранит описание цветов, используемых в приложении
файл strings.xml содержит строковые ресурсы, используемые в приложении
папки themes хранит две темы приложения - для светлую (дневную) и темную (ночную)
Отдельный элемент Gradle Scripts содержит ряд скриптов, которые используются при построении приложения.
Во всей этой структуре следует выделить файл MainActivity.java, который открыт в Android Studio и который содержит логику приложения и собственно с него начинается выполнение приложения. И также выделим файл activity_main.xml , который определяет графический интерфейс - по сути то, что увидит пользователь на своем смартфоне после загрузки приложения.
Могу ли я открыть файл APK в Android Studio?
Android Studio 3.0 и выше позволяют профилировать и отлаживать APK-файлы без необходимости создавать их из проекта Android Studio. . Однако, если у вас уже открыт проект, нажмите Файл> Профиль или Отладить APK из в строке меню. В следующем диалоговом окне выберите APK, который вы хотите импортировать в Android Studio, и нажмите OK.
Что такое сборка файла Gradle в Android?
Сборка как верхнего уровня, так и уровня модуля. файлы gradle основные файлы скриптов для автоматизации задач в проекте Android и используются Gradle для создания APK из исходных файлов.
Где находится файл сборки gradle в IntelliJ?
Перейдите к сборке.
файл Gradle
- В окне инструмента Gradle щелкните правой кнопкой мыши связанный проект.
- В контекстном меню выберите Open Gradle config F4. IntelliJ IDEA переходит к соответствующему файлу конфигурации Gradle и соответствующей сборке. gradle файл открывается в редакторе.
Похожие страницы:Блог
Как я могу увидеть все проекты в Android Studio?
Когда вы начинаете новый проект, Android Studio создает необходимую структуру для всех ваших файлов и делает их видимыми в Окно проекта в левой части среды IDE (щелкните "Просмотр"> "Окна инструментов"> "Проект").
Какова цель файлов Gradle в приложении для Android?
gradle - это файл сборки на уровне проекта, который определяет конфигурации сборки на уровне проекта. Этот файл применяет конфигурации ко всем модулям в проекте приложения Android.
Как открыть Gradle сборки?
Импорт проекта IntelliJ на основе Gradle
Если вы уже используете Gradle со своим проектом IntelliJ, вы можете открыть его в Android Studio, выполнив следующие действия: Щелкните Файл> Создать> Импортировать проект. Выберите каталог проекта IntelliJ и нажмите OK. Ваш проект откроется в Android Studio.
Где построить градиент в единстве?
В редакторе Unity откройте окно настроек проигрывателя (меню: Правка> Настройки проекта > Player) и выберите Android. В разделе «Параметры публикации» включите параметр «Пользовательский основной шаблон Gradle».
Где находится файл сборки Gradle в eclipse?
На вкладке задач Gradle → перейдите к проект -> разверните папку сборки -> щелкните правой кнопкой мыши на сборке -> Выберите Выполнить задачи Gradle.
Возможные проблемы
Для создания приложения используется Java. А для построения приложения применяется инфраструктура Gradle. Однако текущая используемая версия Gradle может быть несовместима с выбранной по умолчанию версией JDK. И в этом случае Android Studio может отображать ошибки, например, ошибку Unsupported class file major version 61 :
Эта ошибка говорит о том, что версия JDK 17 несовместима с текущей версией Gradle. И надо использовать меньшую версию.
Для решения этой проблемы перейдем в студии к меню File ->Settings (на MacOS это пункт Android Studio -> Preferences )
Затем в открывшемся окне настроек перейдем к пункту меню Build, Execution, Deployment -> Build Tools -> Gradle и далее найдем поле Gradle JDK , где изменим версию JDK. Она должна иметь версию 11 и выше. Как правило, вместе с Android Studio устанавливается и поддерживаемая версия JDK - на данный момент это JDK 11. И ее можно выбрать в списке JDK:
Наиболее оптимальный пункт для выбора версий JDK, которая идет вместе с Android Studio, называется Embedded JDK version. . Как видно на скриншоте, это версия 11, но при последующих обновлениях Android Studio эта версия может измениться.
После сделанных изменений сначала нажмем на кнопку Apply , а затем на кнопку OK . И повторим запуск проекта.
Как работает сборка Gradle?
Android Studio поддерживает Gradle как свою систему автоматизации сборки из коробки. Система сборки Android компилирует ресурсы приложения и исходный код и упаковывает их в APK, которые вы можете тестировать, развертывать, подписывать и распространять. Система сборки позволяет вам определять гибкие пользовательские конфигурации сборки.
Где хранятся мои проекты Android Studio?
Хранилище Android-проекта. Android Studio по умолчанию хранит проекты в домашняя папка пользователя в AndroidStudioProjects. Основной каталог содержит файлы конфигурации для Android Studio и файлы сборки Gradle. Файлы, относящиеся к приложению, находятся в папке приложения.
Как создать папку с необработанными ресурсами в Android Studio?
Теперь давайте обсудим, как создать папку Resource Raw в студии Android. Ниже приведен пошаговый процесс создания папки Resource Raw в Android Studio.
Шаг 1. Чтобы создать папку Resource Raw в студии Android, сначала откройте свой проект в режиме Android, как показано на изображении ниже.
Шаг 2: Откройте свою студию Android, перейдите в приложение> res> щелкните правой кнопкой мыши> New> Android Resource Directory, как показано на изображении ниже.
Шаг 3: Появится всплывающий экран, как показано ниже. Здесь в типе ресурса выберите raw .
Шаг 4: После выбора необработанного файла в раскрывающемся меню нажмите кнопку « ОК» и оставьте все как есть.
Шаг 5: Теперь вы можете видеть, что папка raw была создана, и вы можете найти свернутую в приложении> res> raw, как показано на изображении ниже.
Щелкните здесь, чтобы перейти к уникальному руководству, составленному нашими экспертами с целью мгновенно подготовить вашу отрасль!
Итак, apk в Android studio сгенерирован
внутри папки сборки модуля приложения
.
- Перейдите в папку вашего проекта.
- Откройте папку проекта.
- Откройте папку сборки.
- Откройте выходную папку.
- Откройте папку apk.
- Теперь вы видите свой apk.
Где находится файл сборки Gradle в Android Studio? Градл. Сборка на уровне приложения. файл gradle находится внутри папки вашего проекта в app / build.
Как получить APK из студии Android?
В какой папке находятся файлы Java проекта Android?
Папка src содержит две самые важные папки в любом проекте Android, а именно: androidTest и основной. Пакет androidTest создан для хранения тестовых случаев для тестирования кода приложения и запуска. Эта папка содержит файлы. java (JAVA) файлы.
Чем папка Resource raw отличается от папки Assets?
- ресурсы
- папка res / raw
Оба они кажутся одинаковыми, поскольку они могут читать файл и генерировать InputStream, как показано ниже.
// From assets
assets.open(assetPathFilename)
// From res/raw
resources.openRawResource(resourceRawFilename)
Как мне сделать APK-файл на Android?
Просто следуйте этим инструкциям:
- Убедитесь, что вы подготовили свой код для магазина Google Play.
- В главном меню Android Studio выберите «Сборка» → «Создать подписанный APK». .
- Нажмите "Далее. …
- Щелкните кнопку Create New. .
- Выберите имя и место для хранения ключей. .
- Введите пароли в поля «Пароль» и «Подтвердить».
Почему у меня не работает встроенный Chromecast?
Как получить APK из приложения?
На Nougat (7.0) запускается версия Android адб оболочка м список пакетов, чтобы вывести список пакетов, установленных на устройстве. Затем запустите adb shell pm path your-package-name, чтобы показать путь к apk. После использования adb скопируйте пакет в папку Downloads adb shell cp / data / app / com.
Возможные проблемы
Для создания приложения используется Java. А для построения приложения применяется инфраструктура Gradle. Однако текущая используемая версия Gradle может быть несовместима с выбранной по умолчанию версией JDK. И в этом случае Android Studio может отображать ошибки, например, ошибку Unsupported class file major version 61 :
Эта ошибка говорит о том, что версия JDK 17 несовместима с текущей версией Gradle. И надо использовать меньшую версию.
Для решения этой проблемы перейдем в студии к меню File ->Settings (на MacOS это пункт Android Studio -> Preferences )
Затем в открывшемся окне настроек перейдем к пункту меню Build, Execution, Deployment -> Build Tools -> Gradle и далее найдем поле Gradle JDK , где изменим версию JDK. Она должна иметь версию 11 и выше. Как правило, вместе с Android Studio устанавливается и поддерживаемая версия JDK - на данный момент это JDK 11. И ее можно выбрать в списке JDK:
Наиболее оптимальный пункт для выбора версий JDK, которая идет вместе с Android Studio, называется Embedded JDK version. . Как видно на скриншоте, это версия 11, но при последующих обновлениях Android Studio эта версия может измениться.
После сделанных изменений сначала нажмем на кнопку Apply , а затем на кнопку OK . И повторим запуск проекта.
Могу ли я редактировать APK-файл в Android Studio?
Чай . apk-файл, который у вас есть, представляет собой скомпилированную версию кода. Студия Android может декомпилировать это для вас, когда вы импортируете его для просмотра контента, но вы не можете редактировать декомпилированный код напрямую.
Что бесплатно поставляется с Apple TV?
Как вы можете извлечь файл APK с помощью Android Studio?
- В меню Android выберите Сборка> Сборка пакетов / APK> Сборка APK.
- Android Studio начнет создавать APK за вас. .
- Кнопка «найти» должна открывать проводник с открытой папкой отладки, содержащей файл с именем «app-debug. .
- Вот и все.
Как открыть проект Android Studio из папки?
Импортировать как проект:
- Запустите Android Studio и закройте все открытые проекты Android Studio.
- В меню Android Studio выберите File> New> Import Project. .
- Выберите папку проекта Eclipse ADT с файлом AndroidManifest. .
- Выберите папку назначения и нажмите Далее.
- Выберите параметры импорта и нажмите Готово.
Что такое сборка Gradle?
Gradle - это инструмент автоматизации сборки для многоязычной разработки программного обеспечения. … Gradle основан на концепциях Apache Ant и Apache Maven и представляет предметно-ориентированный язык на основе Groovy и Kotlin в отличие от конфигурации проекта на основе XML, используемой Maven.
Как преобразовать APK в исходный код?
- конвертировать apk файл в zip.
- разархивируйте файл.
- извлеките из него classes.dex.
- используйте dex to jar для преобразования classes.dex в файл jar.
- используйте jadx gui, чтобы открыть файл jar как исходный код java.
Почему моя Windows 10 не подключается к Wi-Fi?
Как мне отключить Chromecast от моей учетной записи Google?
Запуск проекта
Созданный выше проект уже содержит некоторый примитивный функционал. Правда, этот функционал почти ничего не делает, только выводит на экран строку "Hello world!". Тем не менее это уже фактически приложение, которое мы можем запустить.
Для запуска и тестирования приложения мы можем использовать эмуляторы или реальные устройства. Но в идеале лучше тестировать на реальных устройствах. К тому же эмуляторы требуют больших аппаратных ресурсов, и не каждый компьютер может потянуть требования эмуляторов. А для использования мобильного устройства для тестирования может потребоваться разве что установить необходимый драйвер.
Режим разработчика на телефоне
По умолчанию опции разработчика на смартфонах скрыты. Чтобы сделать их доступными, надо зайти в Settings > About phone (Настройки > О телефоне) (в Android 8 это в Settings > System > About phone (Настройки > Система > О телефоне) ) и семь раз нажать Build Number (Номер сборки) .
Теперь необходимо включить отладку по USB. Для этого перейдем в Settings > System > Advanced > Developer options или Настройки > Система > Дополнительно > Для разработчиков (в Android 8 это в Settings > System > Developer options или Настройки > Система > Для разработчиков ).
И включим возможность отладки по USB:
Запуск приложения
Подключим устройство с ОС Android (если мы тестируем на реальном устройстве) и запустим проект, нажав на зеленую стрелочку на панели инструментов.
Выберем устройство и нажмем на кнопку OK. И после запуска мы увидим наше приложение на экране устройства:
Папка raw (res / raw) является одной из самых важных папок и играет очень важную роль при разработке проектов Android в студии Android. Папка raw в Android используется для хранения файлов mp3, mp4, sfb и т. Д. Папка raw создается внутри папки res : main / res / raw . Поэтому мы просто создадим его внутри папки res. Но перед созданием необработанной папки давайте взглянем на папку активов в Android, которая выполняет ту же роль, что и необработанная папка в студии Android. Итак, давайте обсудим, чем папка с исходными ресурсами отличается от папки с ресурсами?
Где находится файл сборки Gradle?
gradle файл, расположенный в каждый проект / модуль / каталог, позволяет настроить параметры сборки для конкретного модуля, в котором он находится.
Как мне распаковать APK-файл?
Шаги просты. Откройте ES File Explorer и нажмите «Приложение» на домашней странице приложения, как показано на скриншотах ниже. Теперь нажмите и удерживайте приложение, из которого вы хотите извлечь APK, и нажмите на доступную опцию «Резервное копирование» внизу. Приложение будет скопировано с извлеченным файлом.
Но когда какую папку использовать?
Ниже приведены некоторые рекомендации, которые могут быть полезны при выборе
- активы: разработчик может назвать имя файла любым способом, например, используя заглавные буквы (имя файла) или пробел (имя файла).
- res / raw: в этом случае имя файла ограничено. Имена файловых ресурсов должны содержать только буквы az в нижнем регистре, 0–9 или знак подчеркивания.
- активы: если разработчик хочет разделить файлы на подпапки, он / она может сделать это в активах, как показано ниже.
3. Проверка во время компиляции: (возможно в res / raw)
- assets: здесь, как прочитать его в InputStream, приведен ниже. Если имя файла не существует, нам нужно его поймать.
- Папка res / raw: вот способ прочитать ее в InputStream:
Таким образом, размещение файла в папке res / raw обеспечит правильное имя файла во время проверки времени компиляции.
- активы: Если разработчик хочет перечислить все файлы в папке с ресурсами, он / она использовал функцию list () и предоставил имя папки или «» в корневой папке, как указано ниже.
- res / raw: в этой папке это невозможно. Разработчик должен знать имя файла во время разработки, а не во время выполнения.
Таким образом, в активах можно прочитать имя файла во время выполнения, перечислить их и использовать динамически. В res / raw их нужно закодировать готовыми, возможно, в файле строковых ресурсов.
- активы: разработчик не может просто организовать XML-файл (например, AndroidManifest.xml) так, чтобы он указывал на файл в папке с ресурсами.
- res / raw: в любых файлах XML, таких как Java, разработчик может легко получить доступ к файлу в res / raw, используя @ raw / filename .
Как я могу конвертировать APK в приложение?
Возьмите APK, который вы хотите установить (будь то пакет приложения Google или что-то еще), и поместите файл в папку инструментов в каталоге SDK. Затем используйте командную строку во время работы AVD, чтобы ввести (в этом каталоге) имя установочного файла adb. apk. Приложение должно быть добавлено в список приложений вашего виртуального устройства.
Читайте также: