Java или kotlin: что выбрать начинающему android разработчику?
Содержание
Для создания Андроид приложений применяются Java и Котлин. Многим новичкам сложно сделать выбор, с чего начать обучение программированию. Рассмотрим, что лучше, Java или Kotlin: что выбрать начинающему Android разработчику. Прочитав статью, вы узнаете преимущества каждого варианта и оптимальный порядок изучения.
Почему стоит изучать оба языка
В 2019 году компания Google назвала Котлин предпочтительным языком разработки на Андроид. Программный код, написанный на нем, является нативным кодом (Native Code).
Котлин является не самостоятельным инструментом разработки, а оберткой на Java. Написанный код при компиляции преображается в байт-код Java. Но в ближайшем будущем Котлин полностью не заменит Джаву: направления разработки будут существовать параллельно.
Языки программирования являются совместимыми. Возможно создавать программы, комбинируя два синтаксиса. Поэтому хороший разработчик должен владеть двумя инструментами.
Преимущества изучения Java
Написание приложений для Андроид традиционно выполняется в Android Studio. Интегрированная среда разработки изначально создана для Джава. Алгоритмы можно писать быстро: после ввода нескольких букв среда автоматически подставляет окончание строчки. Это решение увеличивает скорость работы.
За годы существования Джава создано много библиотек и модулей с готовыми решениями. Вокруг Джавы сложилось позитивное комьюнити. Начинающие разработчики могут задавать вопросы на тематических форумах и получать советы по решению проблем от опытных программистов.
Знание Джавы является преимуществом при устройстве на работу. Большинство приложений для Андроид написаны на ней, и владельцы не планируют переписывать исходный код. Существуют специфические библиотеки, которые могут работать только на Джава. Программисты, владеющие синтаксисом, могут поддерживать старые проекты, поэтому их услуги востребованы.
Преимущества изучения Kotlin
Современные компании зачастую специализируются на разработке сервисов на Котлин. Решение подходит для создания сервисов, рассчитанных на длительное использование и без претензии на кроссплатформенность. В 2022 году более 70% сервисов, входящих в 1000 самых популярных на Google Play, используют новый синтаксис.
Синтаксис позволяет создавать алгоритмы, используя меньшее количество строк. Создание кода занимает меньше времени, что повышает эффективность работы программиста. Написанный код выглядит лаконичным и легко читается. Он разработан для функционального программирования, в нем реализованы возможности использования функций высшего порядка.
Преимущества написанных программ:
- лаконичный код занимает меньше места;
- программы с простым кодом работают быстрее;
- повышается безопасность написанных алгоритмов;
- уменьшается вероятность возникновения сбоев;
- сервисы проще развивать и дополнять новыми функциями;
- работа сервиса не зависит от версии Андроид у пользователя;
- понятный код упрощает работу службы техподдержки.
В 2022 году только 60% Андроид-разработчиков владеют Котлин. На рынке наблюдается нехватка разработчиков, поэтому начинающему специалисту будет проще устроиться на работу.
В каком порядке учить
Котлин является более перспективным направлением развития. Можно изучать его без понимания Джавы, но процесс будет длительным и сложным. В документации встречаются объяснения в духе «это работает аналогично Java, но с небольшими изменениями».
Начинающему программисту лучше начать изучение с Джава, а затем быстро перейти на Котлин. Чтобы сэкономить время, можно учить два синтаксиса параллельно. Стратегия позволяет лучше понять различия и быстрее начать писать программы, используя оба инструмента.
Чтобы стать востребованным Андроид-разработчиком, требуется хорошо владеть двумя языками программирования. Владение двумя инструментами делает программиста востребованным на рынке труда. Изучение лучше начать с Джава, потому что Котлин является надстройкой для нее. Хорошим решением будет параллельное изучение синтаксисов под руководством преподавателя.
Институт энергетики, ИТ и управляющих систем
АБИТУРИЕНТАМПочему выбирают ИЭИТУС ?
- Все направления подготовки связаны с цифровизацией.
- Получение базового технического образования, которое всегда актуально и востребовано.
- 100% гарантированное трудоустройство выпускников.
- Возможность получения военной специальности.
В 2023 году количество бюджетных мест составит 375!
Если вы — абитуриент, то вступайте в нашу группу в соц. сети Вконакте, чтобы получать много полезной информации о поступлении!
Директор института
БЕЛОУСОВ
Александр
Владимирович,
к.т.н., доцент,
тел.: 23-05-01,
вн. 41-01, 304 УК4,
E-mail: ntk@intbel. ru
Что такое ИЭИТУС? ИЭИТУС — это один из 7 институтов БГТУ им. В.Г. Шухова, в котором готовят IT-специалистов и энергетиков.
В современных условиях сфера энергетики и информационных технологий является наиболее прогрессивной и востребованной в России. Системы управления активно внедряются во все отрасли производства. Повсеместно используются и развиваются компьютерные коммуникации, постоянно растет нужда в совершенствовании программного обеспечения.
Задачами института является подготовка высококвалифицированных инженерных кадров в области энергетики, проектирования и эксплуатации современных автоматических и автоматизированных систем управления и связи, программного обеспечения и администрирования вычислительных сетей в промышленности и энергетике.
Направления и специальности нашего института относятся к числу наиболее популярных и востребованных. Учиться у нас интересно и престижно. Если вы видите себя в стремительно развивающейся энергетической отрасли России, бизнесе, науке, государственном управлении, если вас привлекают современные информационные технологии, производственные системы управления, компьютерные коммуникации и программное обеспечение, если вам нравится живая работа с людьми и современными технологиями – поступайте в институт энергетики, информационных технологий и управляющих систем.
Мы поможем вам получить отличное образование. Наши двери всегда открыты для талантливых, ответственных, любознательных, добросовестных, идущих в ногу со временем! Студенты института изучают математический анализ и физику, дискретную и вычислительную математику, теорию алгоритмов и технологию разработки стандартов.
Студенты института выполняют научные исследования под руководством докторов и кандидатов наук. Все это дает нашим выпускникам возможность успешно работать в различных областях производства и бизнеса, легко адаптируясь к новым сферам деятельности. Уровень их знаний позволяет занимать высокооплачиваемые позиции на промышленных предприятиях и коммерческих структурах, в крупнейших исследовательских, научно-производственных центрах и компаниях.
На сегодняшний день практически 100 % выпускников института трудоустроены по специальности. Направления подготовки, по которым осуществляется обучение студентов в институте ЭИТУС соответствуют приоритетным направлениям модернизации и технологического развития экономики России, утвержденным постановлением Правительства Российской Федерации №1095 от 22 декабря 2011 года, что позволяет назначать студентам института именные стипендии Правительства и президента Российской Федерации.
В состав ИЭИТУС входят 6 выпускающих кафедр: «Техническая кибернетика»; «Электроэнергетика и автоматика»; «Программное обеспечение вычислительной техники и автоматизированных систем»; «Информационные технологии»; «Энергетика теплотехнологии»; «Стандартизация и управления качеством» и общеобразовательная кафедра «Физики».
На кафедрах имеются учебно-методические кабинеты, компьютерные залы, электротехническая лаборатория, ветро-солнечная электростанция, учебный полигон, моделирующий районную подстанцию. Часть лабораторной и практической подготовки студенты проходят на современном действующем оборудовании предприятий филиала ПАО «МРСК-Центра» — «Белгородэнерго», высококвалифицированные специалисты которого активно участвуют в учебном процессе.
По всем интересующим вопросам Вы можете обратиться в директорат института ЭИТУС, который находится на третьем этаже учебного корпуса №4 в кабинете №321. Телефон директората института ЭИТУС: (4722) 55-35-37.
Подробная информация о направлениях и специальностях ИЭИТУС для абитуриентов
Узнать о новых перспективах для студентов института ЭИТУС в связи с открытием
Что лучше для разработки приложений для Android?
Что такое Java и Kotlin?
Java — это родной язык, используемый Android, приложения, которые взаимодействуют с операционной системой и напрямую используют аппаратное обеспечение. Этот язык позволяет создавать любые программы и поддерживает практически все типы машин и OS X, будь то Android, Windows или Linux. Он был разработан Sun Microsystems (теперь собственность Oracle), и с ним можно использовать микросервисы.
Kotlin — это недавно созданный язык, вдохновленный им, но это его улучшенная версия с множеством дополнительных функций. Он чист, относительно прост и содержит меньше формальностей и правил по сравнению с ним и другими языками программирования. Чтобы использовать этот язык для программирования приложений для Android, разработчикам по-прежнему необходимо понимать основные концепции и структуры программирования.
Котлин против Java
Разработка приложений для Android — отличный способ добиться успеха в вашем бизнесе, но выбор лучшего языка программирования — настоящая дилемма. Для многих из нас очевидно, что он лучший, потому что он везде и все его хвалят. Однако после его прихода эта кажущаяся вера в него несколько пошатнулась, и программисты начинают искать различные запросы типа:
- Для Android?
- Для разработки Android?
- Что лучше для разработки под Android?
- Какой язык лучше всего подходит для разработки приложений для Android?
И этот список можно продолжить. Чтобы решить проблемы и дать вам четкое представление, мы решили написать этот отчет. Здесь мы обсудим, какая разработка для Android лучше. Итак, приступим!
Разбор функций с синтаксисом
Хотя это официально поддерживаемый язык для написания приложений для Android, вы все равно можете почувствовать, что причин для перехода недостаточно. Было показано, что это работает для всех них, тогда зачем вам что-то менять? Итак, вот причины, по которым переход на Kotlin — одна из лучших вещей, которые вы можете сделать.
Параметр | Ява | Котлин |
Сборник | Байткоды | Виртуальная машина |
Нулевая безопасность | х | √ |
Лямбда-выражение | х | √ |
Инвариантный массив | х | √ |
Не частные поля | √ | х |
Умные слепки | х | √ |
Статические элементы | √ | х |
Подстановочные знаки | √ | х |
Одиночные объекты | √ | √ |
Удалите шаблонный код и сделайте его выразительным и интуитивно понятным — простым в написании и обслуживании. Источник: делает код супервыразительным
Какие льготы ?
Ниже перечислены преимущества Java.
- Он мультиплатформенный и работает практически на любом устройстве, сервере или операционной системе
- Его код надежный, и его инструкция не может повредить память или скомпрометировать данные из других приложений OS X
- Он объектно-ориентирован и позволяет легко создавать модульные приложения и повторно использовать части, которые способствуют надежности
- Он готов к использованию, и вместе с ним вы получите много стороннего кода, готового к использованию.
- Сравнивая их производительность с другими языками, он прост в использовании, компиляции и упрощает отладку и развертывание
Это язык с открытым исходным кодом, обеспечивающий безопасность, поскольку многие из его библиотек управляются надежными компаниями, такими как Google, Apache и другими.
Ниже перечислены преимущества:
- Kotlin Развертывание приложений быстрее компилируется, упрощается и предотвращает увеличение размера приложений.
- Любой фрагмент кода, написанный в нем, намного меньше по сравнению с ним, поскольку он менее подробен, а меньше кода означает меньше ошибок.
- Он компилирует код в байт-код, который может быть выполнен в JVM. Таким образом, все сделанные в нем библиотеки и фреймворки переносятся и запускаются в его проекте.
- Сценарий It помогает настраивать проекты в Android Studio для поддержки автозавершения и помогает сократить время обнаружения ошибок во время компиляции.
- Это безопасно от исключения NullPointerException (ошибка на миллиард долларов).
- Он включает в себя сопрограммы, а также совместимость с Javascript для веб-разработки.
Ниже приведены проблемы Java
- Используемый синтаксис может быть немного сложным или громоздким по сравнению с другими языками, такими как C + или Python.
- С невозможно получить доступ к определенному контенту, который может быть несовместим с используемым устройством или оборудованием.
- Нелегко получить доступ к новым ИТ-усовершенствованиям в мобильной разработке.
- Иногда это вызывает проблемы с дизайном Android API.
- Разработка через тестирование, поскольку требует написания большего количества кода и сопряжена с гораздо более высоким риском программных ошибок и багов
Он немного медленнее по сравнению с другими языками программирования и занимает много системной памяти.
Ниже приведены задачи
- . .
- Он соответствует слабым шаблонам, и начальная читабельность кода становится немного трудной для чтения и понимания поначалу.
- У него небольшое сообщество поддержки, так как ts моложе его. Кроме того, в нем меньше библиотек, сообщений в блогах и учебных пособий.
- У него крутая кривая обучения, и переключение команд на него из-за лаконичного синтаксиса языка может стать настоящей проблемой.
- На рынке очень мало его разработчиков. Поэтому найти опытного наставника довольно сложно.
Приложения Java перечислены ниже:
- Spotify
- Твиттер
- Кассовое приложение
- Сигнал
- Удивительный файловый менеджер
Приложения Java перечислены ниже
- Трелло
- Эверноут
- Twidere для Twitter
- Теневые носки
Каковы ключевые особенности?
Нулевая безопасностьNullPointerException или NPE — один из основных его недостатков, и единственная возможная причина для NPE — это явный вызов для генерации NullPointerException. Некоторое несоответствие данных, связанное с инициализацией, или другие проблемы, вызванные внешним кодом. Как уже упоминалось в предыдущем разделе, в них он позволяет избежать NullPointerException. Он терпит неудачу во время компиляции всякий раз, когда может быть выброшено исключение NullPointerException.
Классы данныхВ нем есть классы данных, которые приводят к автоматической генерации шаблонов, таких как equals, hashCode, toString, геттеры/сеттеры и многое другое. Рассмотрим следующий пример: /* Код Java */
class Book { частное строковое название; частный Автор Автор; публичная строка getTitle () { вернуть заголовок; } public void setTitle (заголовок строки) { это.название = название; } публичный автор getAuthor() { вернуть автора; } public void setAuthor(Автор автор) { этот.автор = автор; } }
Но в нем тот же вышеприведенный класс можно кратко определить в одной строке — /* kotlin Code */
data class Book(var title: String, вар автор: Автор)
Функции расширения
Это позволяет нам расширять функциональность существующих классов, не наследуя от них. Это означает, что в нем предусмотрена возможность разработки класса с новой функциональностью без необходимости наследовать от класса. Функции расширения делают это. Чтобы объявить функцию расширения, нам нужно добавить к ее имени префикс типа получателя, то есть расширяемый тип. Следующее добавляет функцию подкачки в MutableList —
весело MutableList < Int > .swap (index1: Int, index2: Int) { val tmp = это[index1] это [индекс1] = это [индекс2] это [index2] = tmp }
Ключевое слово this внутри функции расширения соответствует объекту-получателю, переданному перед точкой. Теперь мы можем вызвать такую функцию для любого MutableList —
значение abc = mutableListOf(1, 2, 3) abc.swap(0, 2)
Умные трансляции
Когда дело доходит до приведения, его компилятор умен. Во многих случаях в Kotlin не нужно использовать явные операторы приведения, но в нем есть «is-проверки» на неизменяемые значения, и при необходимости автоматически вставляется приведение —
веселая демонстрация (x: любая) { если (x — строка) { print(x. length) // x автоматически преобразуется в строку } }
Определение типа
Замечательно то, что вам не нужно указывать тип каждой переменной явно (четким и подробным образом). Но если вы хотите явно определить тип данных между Android, вы также можете сделать это. Рассмотрим следующий пример: /* явно не определено */
fun main(args: Array < String > ) { val текст = 10 println(текст) } /* явно задан */ весело main(аргументы: Array < String > ) { val текст: Int = 10 println(текст) }
Функциональное программирование
Главное в производительности то, что это функциональный язык программирования. По сути, он состоит из множества полезных методов, включая функции высшего порядка, лямбда-выражения, перегрузку операторов, ленивые вычисления, перегрузку операторов и многое другое. Функциональное программирование значительно упрощает работу с коллекциями.
fun main(args: Array < String > ) { числа val = arrayListOf (15, -5, 11, -39) val nonNegativeNumbers = числа. фильтр { это >= 0 } println (неотрицательные числа) }
Выход – 15, 11 Функции высшего порядка – это функции, которые принимают функции в качестве параметра и также возвращают функцию. Рассмотрим следующий код: —
весело alphaNum(func: () -> Unit) {}
В приведенном выше коде «func» — это имя параметра, а «( ) -> Unit» — тип функции. В этом случае мы говорим, что func будет функцией, которая не получает никаких параметров и не возвращает никакого значения. Лямбда-выражение или анонимная функция — это «функциональный литерал», то есть функция, которая не объявлена, а передается сразу как выражение. Пример лямбда-выражения —
знач. сумма: (Int, Int) -> Int = { Икс, у -> х + у }
В приведенном выше примере мы просто объявляем переменную «сумма», которая принимает два целых числа, складывает их вместе и возвращает итог как целое число. Затем мы просто используем ‘ sum(2,2) ’ для его вызова. Довольно круто, да? Анонимная функция в Android — это функция, которая позволяет нам указать тип возвращаемого значения, и в ней имя функции опущено. Рассмотрим следующий пример: Либо так –
забава (x: Int, y: Int): Int = x + y или сюда весело (x: Int, y: Int): Int { вернуть а + б }
Kotlin или Java, что лучше?
Это связано с тем, что он взаимодействует с ним и предоставляет ему постепенное изменение кода и превосходящей системы типов, а также обеспечивает легкий путь миграции с него с обратной совместимостью. Благодаря таким функциям, как более декларативная, меньше кода, смешанная база данных языков, она более выразительна, чем она. Это делает его будущим языком для корпоративных приложений и мобильных устройств.
Расскажите нам о своих бизнес-задачах, и мы будем работать с вами над созданием выдающихся цифровых продуктов. Связаться с экспертами по разработке программного обеспечения
Каковы основные функции?В следующих аспектах Kotlin лучше подходит для программирования под Android:
Он компилируется в байт-код JVM или JavaScript
Байт-код также является скомпилированным форматом для программ. Байт-код означает программный код, который после сборки запускается через виртуальную машину, а не через процессор компьютера. Используя этот подход, исходный код можно запускать на любой платформе после его компиляции и запуска через виртуальную машину. После преобразования ИТ-программы в байт-код ее можно передать по сети и выполнить с помощью JVM.
Может использовать все существующие платформы и библиотеки
Да, его программы действительно могут использовать все существующие его фреймворки и библиотеки, даже продвинутые фреймворки, основанные на обработке аннотаций. Главное в этом языке то, что его можно легко интегрировать с Maven, Gradle и другими системами сборки.
Заработал быстро, доступен
Его можно быстро выучить, просто прочитав справочник по языку. Синтаксис чистый и интуитивно понятный (простой в использовании и понимании). Между ними он очень похож на Scala, но более прост.
Автоматическое преобразование
JetBrains интегрировала новую функцию в IntelliJ, которая преобразует его в Kotlin и экономит значительное количество времени. И это также заставляет Summing Things Upus перепечатывать обычный код.
Отличная защита от нуля
Теперь избавьтесь от NullPointerExceptions. Этот тип системы помогает нам избежать исключений нулевого указателя. В нем система отказывается компилировать код, который пытается присвоить или вернуть null. Рассмотрим следующий пример –
val name: String = null // пытается присвоить null, не компилируется. fun getName(): String = null // пытается вернуть null, не компилируется.
Проверка кода не проблема
Основное внимание уделяется удобочитаемому синтаксису, поэтому повторные обзоры кода не являются проблемой, их все равно могут выполнять те члены команды, которые не знакомы с языком.
Дополнительные возможности, о которых вам никто не расскажет
Ниже перечислены особенности языка Kotlin:
Требуется меньше кодаЛюбой фрагмент кода, написанный на нем, намного меньше, чем написанный на Java, поскольку он менее многословен. Итак, «меньше кода — меньше ошибок». и меньше времени, затрачиваемого на планирование и экономию затрат на проект.
Это безопасноЭто безопасно от исключения нулевого указателя, поскольку все нулевые ситуации в коде будут предупреждены во время компиляции. Пользователи должны явно указать языку, что объект может быть пустым, а затем проверить его перед использованием. Это снижает вероятность потери данных и ошибок.
Легко учитьсяОдним из наиболее значительных преимуществ этого является то, что его разработчик может понять большую часть кода, даже не написав в нем ни строчки.
Приятно использоватьХотя это очень субъективно, это очень весело использовать, пока мы говорим о них. С другой стороны, он утомляет пользователей своими ограничениями, своим шаблоном, и пользователи часто сталкиваются с ошибками из-за проблем с его дизайном.
Умные роликиКогда дело доходит до приведения, его компилятор умен. Во многих случаях в нем нет необходимости использовать явные операторы приведения типов. Тем не менее, в отличие от Java Android, в нем есть «is-checks» для неизменяемых значений и автоматически вставляется преобразование, когда это необходимо.
Определение типаЕго производительность, в нем есть отличная вещь, которая заключается в том, что вам не нужно указывать тип каждой переменной явно (четким и подробным образом). Но если вы хотите явно определить тип данных, вы также можете это сделать.
Функциональное программированиеСамое главное в них то, что это функциональный язык программирования. По сути, он состоит из множества полезных методов, включая функции высшего порядка, лямбда-выражения, перегрузку операторов, отложенное вычисление, перегрузку операторов и многое другое.
Нажмите, чтобы изучить Развертывание приложений Kotlin с помощью Docker и Kubernetes
Каковы преимущества для бизнеса?
- Принятие его представляет небольшой риск из-за его взаимодействия с ним.
- Анализ кода и кривая обучения просты, и разработчики могут быстро освоить его.
- Между ними есть сильная команда обслуживания клиентов с солидной репутацией. Так что никаких простоев.
- Это сочетание функционального и процедурного программирования.
- Предприятия могут использовать его для любой разработки, включая серверную, веб-клиент или Android.
Есть ли у него будущее?
Что ж, ответ — да. его влияние на ИТ-сектор за последние несколько лет увеличилось в геометрической прогрессии. Фактически, некоторые крупные веб-порталы, такие как Pinterest, Flipboard или Basecamp, уже используют его для поддержки основных фреймворков. Недавняя поддержка, оказанная Google, стала окончательным доказательством того, что у него есть светлое будущее и способность ему противостоять.
Заключение
Мы знаем, что чистая сборка выполняется только один раз в нашем проекте, и я думаю, что время компиляции инкрементных сборок для нас важнее, чем чистая сборка. Так что в них Kotlin почти такой же, как Java, и да, мы можем использовать его, не беспокоясь о времени компиляции.
В чем разница между @+id/ и @id/? | Тэм Х. Доан
Фото Каспара Камилла Рубина на UnsplashTL;DR: Знак плюса в «@+id/» сообщает инструментам сборки Android, что вы объявляете новый ресурс. А если его нет, добавить в файл R.java.
Но в принципе, вам не нужно думать, просто используйте «@+id/» где хотите!
В Android при работе с макетами XML мы сталкиваемся с атрибутом ID в тегах View или Layout. С самого начала мы узнаем, что это будет назначить или сослаться на идентификатор этого вида/макета. Однако вы могли заметить, что это разные варианты:
-
android:id=" @android:id /myView"
-
android:id=" @+id /myView"
33 android:id=" @id /myView"
Итак, в каких случаях они используются?
Синтаксис ресурсов AndroidВо-первых, вы должны знать, что @android: это префикс, который относится к предопределенным свойствам, макету и т. д. в ресурсах Android.
Ресурсы Android — это ресурсы, которые обычно необходимы в проектах Android, поэтому Google предопределил их для использования в нашем проекте. Не только @android:id/
, но и другие префиксы, такие как @android:color/
, @android:drawable/
, @android:layout/
,…
Например:
-
ArrayAdapter
дляListView
, мы использовали параметрandroid. R.layout.simple_list_item_1
. - Используйте
@android:color/transparent
для обозначения прозрачного цвета.
Эти ресурсы часто используются многими разработчиками, и благодаря Google все, что нам нужно, это обращаться к ним по мере необходимости.
При работе с вашими собственными ресурсами, которые вы создали , вам необходимо использовать @+id/
и @id/
.
По сути, вам не нужно думать, просто используйте «@+id/» где угодно .
Тем не менее, я расскажу вам, как это работает под капотом. Если вам нравится простота, вы можете пропустить следующие разделы.
ID-ресурс — это простой ресурс, определенный в XML, который предоставляет уникальный идентификатор для других ресурсов проекта . Ресурс идентификатора не всегда ссылается на фактический элемент ресурса, это просто уникальный идентификатор, который вы можете прикрепить к другим ресурсам проекта или использовать в качестве уникального целого числа в своем приложении.
Файл Android R.java
R.java — это автоматически созданный файл by aapt ( Android Asset Packaging Tool ) , который содержит ресурсы ID для всех ресурсов в каталоге res/
. Этот файл будет создан при сборке приложения.
Так в чем же разница между «@+id/» и «@id/»?
Как видите, они просто символом отличаются — плюс («+») .
Знак плюс сообщает инструментам сборки Android, что вы объявляете новый ресурс.
Например, когда вы указываете идентификатор XML-ресурса с помощью знака плюс — в формате android:id="@+id/myView"
— это означает, что новый идентификатор ресурса с именем «myView» необходимо создать, а если он не существует, создать для него уникальное целое число и добавить к R.java
. Затем в коде Java вы можете обратиться к этой записи с помощью View view = findViewById(R. id.myView)
.
С другой стороны, при использовании «@id/» вы ссылаетесь на существующий ресурс (уже в R.java).
Например, в макете XML:
- Если вы хотите определить идентификатор для нового представления. Вы должны добавить знак плюса, например:
android:id=@+id/myView
. - Если вы хотите сослаться на идентификатор другого представления, который предопределен, например
android:layout_below=“@id/myTextView”
, просто используйте@id/
, синтаксический анализатор автоматически поймет и свяжется с этой записью вР.ява
.
Да, если вы пишете функцию в любом месте файла Java, вы можете вызывать ее независимо от порядка. Разница в том, что в XML макет будет анализировать сверху вниз, поэтому приведенный ниже код не сможет скомпилировать , потому что не может найти существующий R.id.check
.
В этом случае у нас есть два решения.