- Создаём текстовый редактор
- Операции с файлами
- activity_main.xml
- res/menu/menu_main.xml
- Класс MainActivity
- Сохранение настроек — Флажки
- res/values/strings.xml
- res/xml/preferences.xml
- Класс SettingsActivity
- Сохранение текстовых настроек
- Сохранение настроек — Списки
- res/values/arrays.xml
- Работа с файловой системой
- Чтение и сохранение файлов
- Запуск вашего android-приложения на реальном или виртуальном устройстве андроид
- Подготовка к запуску
- Как запустить android-приложение на реальном устройстве
- Как запустить android-приложение из Android Studio:
- Как запустить android-приложение из Eclipse
- Начало работы с Android Studio
- 1 . Настройка проекта
- 2 . Виртуальные устройства Android
- 3 . Live Layout
- 4 . Шаблоны
- 5 . Инспектор кода
- 6 . Мощный редактор лэйаутов
- Заключение
Создаём текстовый редактор
Операции с файлами
Рассмотрим вопросы ввода/вывода, которые являются распространёнными операциями в программировании. В Android можно сохранять файлы непосредственно на самом устройстве или на внешней карте памяти. Для каждой программы на устройстве выделяется собственная папка, в которой приложение может хранить свои файлы. По умолчанию другие приложения не могут обращаться к этим файлам. Если вы сохраняете файлы на внешнем накопителе, то доступ возможен.
Android использует стандартные операции ввода/вывода, принятые в Java. Например, Android реализует файловые потоки с помощью классов из пакета java.io, а также имеет собственные классы для работы с файлами внутри приложения.
Чтобы записать данные в файл, необходимо вызвать метод Context.openFileOutput() и передать в качестве параметра имя файла. Метод возвращает стандартный Java-объект FileOutputStream. Вызов метода для данного файла из другого приложения не будет работать, обратиться вы можете только к своим файлам. Например, чтобы создать файл и записать данные, пишем следующий код:
Если имеется статический файл, который надо упаковать с вашим приложением во время компиляции проекта, можно сохранить его в каталоге res/raw/, а затем открыть его при помощи метода Resources.openRawResource(). Он возвращает объект InputStream, который можно использовать для чтения файла. После окончания работы с потоком не забудьте его закрыть, вызвав метод close().
Создадим простейший аналог Блокнота, позволяющий записывать и читать данные из файла.
На экране активности разместим компонент EditText и растянем его:
activity_main.xml
Создадим пункты меню Открыть и Сохранить в ресурсах. Строковые ресурсы добавьте самостоятельно.
res/menu/menu_main.xml
В методах openFile() и saveFile() реализуем операции по открытию и сохранению файла. Для Kotlin код получился намного короче.
Класс MainActivity
Мы получили простой блокнотик, позволяющий сохранять записи в одном заданном файле. Вы можете усовершенствовать приложение, добавив возможность создания новых файлов и их удаления.
Сохранение настроек — Флажки
Расширим функциональность блокнота, добавив в него возможность сохранения различных настроек.
Подготовим различные настройки, которые будем хранить в файле строковых ресурсов strings.xml:
res/values/strings.xml
Теперь создадим файл настроек preferences.xml (если забыли, то перечитайте статью Сохранение настроек):
res/xml/preferences.xml
Итак, мы определили первую настройку под именем pref_openmode, которая будет или сразу загружать файл в поле редактирования, если установлен флажок, или открывать пустое поле, если флажок не установлен.
Создадим новую активность, которая наследует от класса PreferenceActivity. В классе активности для предпочтений внутри метода обратного вызова onCreate() нужно только вызвать метод addPreferencesFromResource() и загрузить XML-файл preferences.xml, содержащий наши настройки (пока одну):
Класс SettingsActivity
Не забываем добавить объявление активности SettingsActivity в файл манифеста AndroidManifest.xml:
Добавим новый пункт меню Настройки в меню (файл res/menu/main.xml), чтобы открывать подготовленное окно настроек.
В методе onOptionsItemSelected() класса MainActivity добавим новый блок when/switch:
Запустите приложение и убедитесь, что в меню появился новый пункт, который открывает окно настроек.
Чтение установок предпочтений нужно проводить в методе onResume(), который вызывается системой как во время запуска приложения, так и после закрытия окна настроек и возврата главной активности на передний план:
В методе getBoolean() второй параметр false означает значение по умолчанию для возвращаемого значения предпочтения, если запрос на чтение установленного значения закончится неудачей.
Мы создали первую настройку, позволяющую сразу открывать нужный файл для редактирования, если отметить галочкой нужный пункт.
Сохранение текстовых настроек
Добавим возможность устанавливать размер шрифта для текста. Откроем снова файл preferences.xml и добавим новый элемент EditTextPreference:
В метод onResume() добавим новый код для чтения установленного значения размера шрифта:
Запустите проект и вызовите окно настроек. Теперь у нас появилась опция установки размера шрифта. Если щёлкнуть на новом пункте, то откроется диалоговое окно с текстовым полем ввода.
Обращаю ваше внимание, что в нашем примере не проверяется пользовательский ввод, что может привести к ошибкам, если вместо числового значения для размера шрифта пользователь введёт слово Кот или любое другое слово из трёх букв. Никогда не доверяйте пользователю!
Сохранение настроек — Списки
Продолжим работу с текстовым редактором и добавим в него список для выбора стиля текста. В списке будет четыре опции: Обычный, Полужирный, Курсив, Полужирный+Курсив.
Подготовим массив строк и сохраним его в файле arrays.xml, который необходимо поместить в каталог res/values/ (хотя можно просто добавить в strings.xml).
res/values/arrays.xml
В файл preferences.xml добавим дополнительный элемент ListPreference, в котором определим атрибуты заголовка окна, привязку к массиву значений и значение по умолчанию:
Для чтения настроек из списка добавляем код в метод onResume() класса MainActivity:
Запустив проект, вы теперь увидите новую настройку Стиль для шрифта, которая открывает диалоговое окно для выбора стиля из списка. Обратите внимание, что в диалоговом окне нет кнопки сохранения, только Отмена. Изменения сохраняются сразу при выборе опции списка.
В статье Сохранение настроек можно прочитать дополнительные материалы по улучшению окна настроек. Например, можно добавить новую настройку, связанную с выбором цвета для текста.
Источник
Работа с файловой системой
Чтение и сохранение файлов
Работа с настройками уровня 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 :
Подробнее про использование потоков ввода-вывода можно прочитать в руководстве по Java: https://metanit.com/java/tutorial/6.3.php
В итоге после нажатия кнопки сохранения весь текст будет сохранен в файле /data/data/название_пакета/files/content.txt
Где физически находится созданный файл? Чтобы увидеть его на подключенном устройстве перейдем в Android Stud в меню к пункту View -> Tool Windows -> Device File Explorer
После этого откроектся окно Device File Explorer для просмотра файловой системы устройства. И в папке data/data/[название_пакета_приложения]/files мы сможем найти сохраненный файл.
Источник
Запуск вашего android-приложения на реальном или виртуальном устройстве андроид
Если вы следовали предыдущему уроку для создания «Hello World» Android проекта, он уже включал в себя набор исходных файлов, позволяющих сразу запустить приложение.
Подготовка к запуску
Как вы запускаете ваше приложение зависит от двух вещей: есть ли у вас реальное Android устройство и используете ли вы Android Studio или Eclipse. Этот урок покажет вам, как установить и запустить свое приложение на реальном устройстве и на Android эмуляторе, и в обоих случаях с помощью Eclipse или инструментов командной строки.
Перед запуском вашего приложения, вы должны быть осведомлены о нескольких каталогах и файлах в Android проекте:
AndroidManifest.xml файл манифеста описывает основные характеристики приложения и определяет каждый из его компонентов. Вы узнаете о различных объявлениях в этом файле по мере изучения учебных курсов.Одним из наиболее важных элементов, который ваш манифеста должен включать является элемент. Он заявляет о совместимости вашего приложения с различными версиями Android, используя android:minSdkVersion и android:targetSdkVersion атрибуты. Для вашего первого приложения, оно должно выглядеть следующим образом:
Когда вы собираете и запускаете Android приложение по умолчанию, созданный по умолчанию Activity класс запускается и загружает файл макета, который говорит «Hello World». В результате ничего захватывающего, но важно, что вы понимаете, как запускать приложения, прежде чем вы приступите к разработке.
Как запустить android-приложение на реальном устройстве
Если у вас есть реальное Android устройство, вот как вы можете установить и запустить приложение:
- Подключите ваш смартфон к компьютеру с помощью кабеля USB. Если вы разрабатываете на Windows, вам может потребоваться установить соответствующий драйвер USB для вашего устройства. Для получения справки по установке драйверов см. Драйвера OEM USB.
- Включите Отладка через USB на вашем устройстве.
- На большинстве устройств под управлением Android 3.2 или старше, вы можете найти опцию вНастройки > Приложения > Разработка.
- На Android 4.0 и новее, это находится в Настройки > Для разработчиков.
Примечание: На Android 4.2 и новее, Для разработчиков по умолчанию скрыт. Чтобы сделать его доступным, перейдите к Настройки > О телефоне и нажмите Номер сборки семь раз. Вернитесь к предыдущему экрану, чтобы найти Для разработчиков.
Как запустить android-приложение из Android Studio:
Откройте один из файлов вашего проекта и нажмите Run app на панели инструментов. Или нажмите комбинацию клавиш Shift+F10.
Откроется окно выбора подключенного реального устройства или эмулятора. Android Studio устанавливает приложение на выбранное устройство и запускает его.
Как запустить android-приложение из Eclipse
- Откройте один из файлов вашего проекта и нажмите Запустить
на панели инструментов.
- В окне Запуск от имени , которое появляется, выберите Android Application и нажмите OK.
Eclipse устанавливает приложение на подключенное устройство и запускает его.
Или для запуска приложения из командной строки:
- Перейдите в корневой каталог вашего Android проекта и выполните:
Источник
Начало работы с Android Studio
Russian (Pусский) translation by Marat Amerov (you can also view the original English article)
Android Studio — это довольно новая IDE (интегрированная среда разработки), которая бесплатно предоставляется Google для разработчиков Android. Android Studio основана на IntelliJ IDEA, среде разработки, которая также предлагает отличную среду разработки Android. В этом уроке я покажу вам, как создать новый проект для Android и воспользоваться возможностями, которые предлагает Android Studio.
1 . Настройка проекта
Прежде чем приступать к изучению Android Studio, вам сначала нужно ее загрузить и установить. Обратите внимание, что вам необходимо установить JDK 6 или более поздней версии. Если вы работаете в Windows, запустите файл .exe и следуйте инструкциям мастера установки. Если вы используете OS X, смонтируйте образ диска, дважды щелкнув его и перетащите Android Studio в папку Application.
Если вы успешно выполнили вышеуказанные шаги, необходимо правильно настроить среду разработки. Теперь вы готовы создать свое первое приложение для Android с помощью Android Studio. Когда вы впервые запускаете Android Studio, вам должен быть представлен экран приветствия, предлагающий вам несколько вариантов для старта.
В этом уроке мы собираемся выбрать вариант New Project. Однако вы можете выбрать Import Project, если вы хотите импортировать проект, например, из Eclipse в Android Studio. Android Studio преобразует проект Eclipse в проект Android Studio, добавив для вас необходимые файлы конфигурации.
Если вы выберете Open Project из списка параметров, вы можете открывать проекты, созданные с помощью Android Studio или IntelliJ IDEA. Выбрав Check out from Version Control, вы можете развернуть копию проекта, который находится под системой управлением версиями. Это отличный способ быстро ускорить работу с существующим проектом.
Чтобы начать работу, выберите New Project в списке параметров. Это покажет вам список параметров для настройки вашего нового проекта. В этом уроке мы собираемся создать простое приложение, чтобы показать вам некоторые из самых важных функций Android Studio. Я уверен, что вы согласны с тем, что нет лучшего названия для нашего проекта, чем HelloWorld.
Как вы можете видеть на скриншоте выше, я назвал свое приложение HelloWorld и установил имя модуля HelloWorld. Если вы не знакомы с IntelliJ IDEA, вам может быть интересно, что такое модуль. Модуль представляет собой дискретную единицу функциональности, которая может быть скомпилирована, запущена, протестирована и отлажена независимо. Модули содержат исходный код, скрипты сборки и все остальное, необходимое для их специфичных задачи.
При создании нового проекта вы также можете указать имя пакета проекта. По умолчанию Android Studio устанавливает последний элемент имени пакета проекта в имя модуля, но вы можете изменить его на все, что захотите.
Другими параметрами являются местоположение проекта на вашем компьютере, минимальный и целевой SDK, SDK, с которым будет скомпилирован ваш проект, и тема проекта. Вы также можете сообщить Android Studio о создании класса Activity и специальной иконки запуска а так-же поддержку проектов GridLayout, Fragments, Navigation Drawer или Action Bar.
Мы не будем создавать пользовательских иконок для этого приложения, вы можете снять галочку с надписью Create custom launch icon. Нажмите Next, чтобы продолжить настройку своего проекта.
Поскольку мы отметили флажок Create activity на предыдущем шаге, вам предлагается настроить класс Activity , который будет создан для вас Android Studio.
Поскольку мы начнем с пустого класса Activity , вы можете нажать Next, чтобы перейти к следующему этапу процесса настройки, в котором вас попросят указать имя класса Activity , основной лэйаут и лэйаут фрагмента. Вы также можете установить тип навигации, который мы оставим в None для этого проекта. Посмотрите следующий скриншот, чтобы увидеть, как выглядят настройки.
После нажатия кнопки Finish вам будет представлен пользовательский интерфейс Android Studio с проводником проекта слева и рабочее пространство справа. С вашим проектом, настроенным в Android Studio, пришло время изучить некоторые из ключевых особенностей Android Studio.
2 . Виртуальные устройства Android
Виртуальное устройство Android или AVD — это эмулятор, позволяющий моделировать устройство Android. Это упрощает работу и тестирование приложений на широком спектре устройств. С помощью виртуального устройства Android вы можете указать аппаратное и программное обеспечение, которое Android Emulator должен эмулировать.
Предпочтительным способом создания виртуального устройства Android является AVD Manager, доступ к которому вы можете получить в Android Studio, выбрав Android > AVD Manager в меню Tools.
Если среда разработки настроена правильно, диспетчер виртуальных устройств Android должен выглядеть примерно так, как показано на скриншоте ниже.
Чтобы создать новый AVD, нажмите на New. справа, укажите имя AVD и настройте виртуальное устройство, как показано ниже. Нажмите OK, чтобы создать свой первый AVD.
Чтобы использовать вновь созданный AVD, выберите его из списка в AVD-менеджере и нажмите Start. справа. Если ваш AVD настроен правильно, Android-эмулятор должен запускаться, как показано на скриншоте ниже.
С запуском Android-эмулятора пришло время запустить ваше приложение, выбрав Run ‘helloworld’ из меню Run. Вот как легко запускать приложение в Android-эмуляторе.
3 . Live Layout
Функция Live layout в Android Studio позволяет вам просматривать пользовательский интерфейс приложения без необходимости запускать его на устройстве или эмуляторе. Функция живого лэйаута — это мощный инструмент, который буквально сэкономит вам часы. Просмотр пользовательского интерфейса вашего приложения происходит намного быстрее, используя живые лэйауты.
Чтобы работать с живыми лэйаутами, дважды щелкните XML файл лэйаута и выберите вкладку Text внизу рабочей области. Перейдите на вкладку Preview справа от рабочей области, чтобы просмотреть текущий лэйаут. Любые изменения, внесенные в XML лэйаута, будут отражены в предварительном просмотре справа. Взгляните на снимок экрана ниже, чтобы лучше понять эту приятною функцию.
Есть ряд других преимуществ функции живого лэйаута, которые стоит отметить. Вы можете, например, создать XML вариант лэйаута , в котором вы сейчас работаете, выбрав опцию из первого меню на панели Preview. Вы можете, например, создать отдельные представления для портретной и альбомной ориентации, а Android Studio создаст для вас необходимые папки и файлы.
Второе меню на предварительного просмотра позволяет изменить размер устройства, отображаемого на панели. Третье меню позволяет изменить ориентацию устройства, отображаемого на панели предварительного просмотра, что позволяет легко увидеть, как макет выглядит в разных ориентациях и использует разные темы.
Четвертое меню в области предварительного просмотра обеспечивает легкий доступ к Activity или фрагменту, в котором используется лэйаут. Панель предварительного просмотра также позволяет вам изменить язык, используемый в живом лэйауте, чтобы упростить предварительный просмотр лэйаута на разных языках. Меню справа позволяет вам изменить версию API.
Панель предварительного просмотра также включает элементы управления, чтобы увеличить масштаб лэйаута, обновить область просмотра или сделать снимок экрана.
4 . Шаблоны
Android Studio предоставляет разработчикам ряд шаблонов для ускорения разработки. Эти шаблоны автоматически создают Activity и необходимые XML файлы. Вы можете использовать эти шаблоны для создания базового приложения для Android, которое затем можно запустить на устройстве или в эмуляторе.
С помощью Android Studio вы можете создать шаблон при создании нового Activity . Щелкните правой кнопкой мыши package name пакета в навигаторе проекта слева, выберите New в меню и выберите Activity в списке параметров. Затем Android Studio отображает список шаблонов, таких как Blank Activity, Fullscreen Activity и Tabbed Activity.
Вы также можете выбрать Image Asset в меню, которое запустит мастер, который проведет вас через процесс создания. Позвольте мне показать вам, как создать новый Activity на основе шаблона Login Activity. Выберите параметр Login Activity из списка шаблонов Activity, чтобы запустить мастер.
Как вы можете видеть на приведенном выше снимке экрана, я назвал Activity LoginActivity, задал Layout Name для activity_login, задав Activity заголовок Sign In. По умолчанию установлен флажок Include Google+ sign in. Снимите флажок, так как мы не будем использовать эту функцию в нашем примере.
Вы можете по желанию установить Hierarchical Parent нового Activity . Это позволит вам вернуться назад, если вы нажмете кнопку возврата устройства. Мы оставим это поле пустым. После нажатия кнопки Finish, Android Studio создает для вас необходимые файлы и папки. Если все пойдет хорошо, вы должны увидеть новй Activity и Layout в своем проекте.
Следующий шаг — настроить новую Activity в файле манифеста, чтобы она использовалась как основное Activity при запуске приложения. Как вы можете видеть ниже в файле манифеста, класс LoginActivity имеет свой собственный узел активности.
Чтобы ваше приложение запустило созданный вами LoginActivity , удалите узел активности для класса LoginActivity и замените com.tuts.HelloWorld.MainActivity
на com.tuts.HelloWorld.LoginActivity . В результате приложение теперь будет использовать класс LoginActivity в качестве основного Activity .
Когда вы создаете и запускаете свое приложение в эмуляторе, вы должны увидеть экран, аналогичный показанному ниже. Это означает, что мы успешно заменили пустой класс Activity новым классом LoginActivity .
5 . Инспектор кода
Тестирование вашего кода — это одно, но не менее важно также применять лучшие практики при написании кода. Это улучшит производительность и общую стабильность вашего приложения. К тому же правильно структурированный проект гораздо проще поддерживать.
Android Studio включает Android Lint, статический анализатор, который анализирует исходный код вашего проекта. Он может обнаруживать потенциальные ошибки и другие проблемы в коде, которые компилятор может игнорировать.
Ниже приведенный снимок экрана, например, говорит нам, что LinearLayout в этом макете не используется. Приятная вещь в Android Lint заключается в том, что он дает вам повод для предварительного обнаружения ошибок, что упрощает исправление или устранение проблем.
Это хорошая практика, чтобы время от времени запускать анализатор Android Studio, чтобы проверить ваш проект на наличие потенциальных проблем. Анализатор также скажет вам, есть ли у вас дубликаты изображений или переводов.
Чтобы запустить анализатор, выберите Inspect Code в меню Analyze в Android Studio, чтобы начать процесс. Когда Android Studio завершит проверку вашего проекта, он представит вам результаты в нижней части окна. Обратите внимание, что в дополнение к Android Lint, Android Studio также выполняет ряд других проверок. Просто дважды щелкните по проблеме, чтобы перейти к файлу, в котором находится проблема.
6 . Мощный редактор лэйаутов
Android Studio имеет мощный редактор лэйаутов, в котором вы можете перетаскивать компоненты пользовательского интерфейса. Вы также можете просмотреть лэйауты на нескольких конфигурациях экрана, как мы видели ранее в этом уроке.
Редактор лэйаутов очень прост в использовании. Сначала нам нужен лэйаут для работы. Перейдите в папку layout в папке res вашего проекта, щелкните правой кнопкой мыши папку layout и выберите New > Layout resource file в появившемся меню.
Дайте новому лэйауту имя, установите его корневой элемент и нажмите ОК. Android Studio автоматически откроет лэйаут в редакторе справа.
В нижней части редактора вы должны увидеть две вкладки Design и Text. Нажатие на вкладку Text вызывает редактор, позволяющий вносить изменения в текущий выбранный лэйаут.
На вкладке Design открывается другой редактор, который показывает предварительный просмотр лэйаута. Чтобы добавить виджет в лэйаут, перетащите его из списка виджетов слева в лэйаут справа. Это так просто.
Заключение
В этом уроке мы кратко рассмотрели некоторые ключевые особенности Android Studio. Она очень похожа на IntelliJ IDEA, но содержит ряд важных улучшений, которые делают разработку Android более легкой, быстрой и приятной.
Источник