Создание Android проекта
Подготовка к созданию проекта
Проект Android содержит все файлы, которые содержат исходный код для вашего Android приложения. Инструменты Android SDK позволяют легко создать новый Android проект с набором каталогов проекта и файлами по умолчанию..
Этот урок показывает, как создать новый проект в среде разработки Android Studio, либо с помощью среды разработки Eclipse (с плагином ADT), или с помощью инструментов командной строки из SDK.
Примечание: Вы должны установить Android Studio и пакет SDK. Если у вас его нет, следуйте руководству Установка Android SDK прежде чем начать этот урок.
Если вы используете Eclipse, вы также должны иметь установленный ADT плагин (версии 22.6.2 или выше).
Как создать проект в Android Studio
В Android Studio, чтобы создать новый проект:
- Если у вас нет открытого проекта, в Welcome экране приглашения, нажмите Start a new Android Studio Project.
- Если у вас открыт проект, в меню File, выберите New> New Project.
- На первом экране Choose your project на вкладке Phone and Tablet выберите Empty Activity:
В этом случае среда разработки создаст пустой основной экран-activity.
Activity (их еще называют деятельность или активность) являются одной из отличительных особенностей Android framework. По сути, активити — это экраны андроид приложения. Когда пользователь запускает приложение, стартует основной экран-activity например, со списком писем в почтовой программе, а когда пользователь выбирает некоторый контент для просмотра, например, письмо в списке, то оно открывается на другом экране-activity. Смотрите Activities для получения дополнительной информации.
- Нажмите Next
- На следующем экране Configure your project , заполните поля:
Name это имя приложения, которое отображается для пользователей. Например, «My First App.»
- Package name — Полное название проекта (согласно правилам именования пакетов в Java). Ваше имя пакета должно быть уникальным среди всех пакетов, установленных в системе Android. Вы должны установить свое значение, с учетом имени приложения и вашего домена. Домен может быть любой, не обязательно реально существующий.
- Save location это каталог вашей системы, содержащий файлы проекта. Можно изменить на ваше усмотрение.
- Language это язык программирования, Java или Kotlin, например.
- Minimum API level указывает минимально поддерживаемую версию Android. Ниже информация о том, какой процент приложений ее поддерживает.
Minimum API level — это самая ранняя версия Android, которую поддерживает ваше приложение. В будущем, когда вы станете опытными разработчиками, чтобы охватить максимальное количество поддерживаемых устройств, можно будет установить параметр Minimum API level в наименьшей доступной версии, которую позволяет система вашему приложению (версии становятся доступными после загрузки в SDK Менеджере), чтобы обеспечить основной набор функций. Если какой-либо объект из приложения доступен только на более новых версиях Android, и это не критично для основного функционала приложения, вы можете включить эту функцию только при работе на версии, которые поддерживают его (как обсуждалось в Supporting Different Platform Versions).
- Нажмите кнопку Finish для создания проекта.
Как создать андроид проект в Eclipse
- Нажмите New
на панели инструментов.
- В появившемся окне, откройте Android папку, выберите Android Application Project, и нажмите Next.
- Заполните форму, которая появилась:
- Application Name это имя приложение, которое отображается пользователям. Для этого проекта, используйте «My First App».
- Project Name это имя в каталога проекта и название видимое в Eclipse.
- Package Name является пространством имен пакета для вашего приложения (следуйте тем же правилам для пакетов языка программирования Java). Ваше имя пакета должно быть уникальным среди всех пакетов, установленных на Android системе. По этой причине, как правило лучше, если вы используете имя, которое начинается с записанного в обратном порядке доменного имени вашей организации или издателя. Для этого проекта, вы можете использовать что-то вроде «com.example.myfirstapp». Однако, вы не можете опубликовать ваше приложение на Google Play, используя пространством имен «com.example».
- Minimum Required SDK является самой низкой версий Android, которую ваше приложение поддерживает, указывается используя Уровень API. Для поддержки как можно больше устройств, вы должны установить ее в самую маленькую доступную версию, что позволяет вашему приложению обеспечить основной набор функций. Если любая функциональность вашего приложения возможна только на более новых версиях Android, и она не является критической для основного набора функций приложения, вы можете включить функцию для платформ, работающий на версиях, которые её поддерживают (как описано в разделе Поддержка различных версий платформы). Оставьте значение по умолчанию для этого проекта.
- Target SDK указывает на самую высокую версию Android (также использую Уровень API) , с которой вы проверили ваше приложение.По мере появления новых версий Android, когда они становятся доступными, вы должны протестировать приложение на новой версии и обновить это значения в соответствии с последними уровнем API для того, чтобы воспользоваться новыми функциями платформы.
- Compile With является версией платформы, на которой вы будете компилировать приложение. По умолчанию этот параметр установлен на последнюю версию Android, доступную в вашем SDK. (Она должна быть Android 4.1 или выше, если у вас такая версии не доступна, необходимо установить её используя SDK менеджер). Вы все еще можете построить ваше приложение для поддержки старых версий, но установка целевой версии в значение последней версии позволяет включить новые функции и оптимизировать ваше приложение для замечательного опыта пользователя на последних устройствах.
- Theme определяет применяемый стиль пользовательского интерфейса Android для вашего приложения. Вы можете оставить параметр по умолчанию.
- Нажмите Next.
Ваш Android проект в настоящее время является базовым «Hello World» приложение, которое содержит некоторые файлы по умолчанию. Для запуска приложения читайте cледующий урок.
Создание проекта с помощью инструментов командной строки
Если вы не используете Eclipse с ADT плагином, вы можете вместо этого создать свой проект с помощью инструмента командной строки из SDK:
- Перейдите в каталог в Android SDK tools/ .
- Выполните:
Если вы не видите ни одной цели, необходимо установить некоторые из них с помощью помощью SDK менеджера Android. Смотрите Добавление платформ и пакетов.
Выполните:
Замените идентификатором из списка целей (из предыдущего шага) и замените
на расположение, в котором вы хотите сохранить ваш Android проект.
Ваш Android проект в настоящее время является базовым «Hello World» приложение, которое содержит некоторые файлы по умолчанию. Для запуска приложения читайте cледующий урок.
Полезный совет: Добавьте platform-tools/ а также tools/ каталог в PATH переменную среды.
Источник
Каким должно быть имя пакета приложения Android?
Я хочу знать, что должно быть имя пакета приложения для android? Значит обычно мы использовали com.appname или com.имя_организации.appName, но когда мы отправляем наше приложение на рынок, иногда он показывает ошибки, связанные с именем пакета, которые — пожалуйста, измените имя пакета. Его не следует запускать с com и т. д..
Я хочу знать, почему это happnes? И как правильно название пакета для Android?
Если кто знает причина или ответ на этот вопрос, пожалуйста, дайте мне знать.
6 ответов
Как указано здесь: имена пакетов записываются в нижнем регистре, чтобы избежать конфликтов с именами классов или интерфейсов.
компании используют свое обратное доменное имя Интернета, чтобы начать свои имена пакетов-например, com.example.mypackage for a package named mypackage created by a programmer at example.com .
коллизии имен, которые происходят в одной компании, должны обрабатываться соглашением внутри этой компании, возможно, путем включения региона или имени проекта после названия компании (например, com.образец.регион.пакета mypackage).
пакеты на самом языке Java начинаются с java. или javax.
в некоторых случаях имя домена интернета может быть недопустимым именем пакета. Это может произойти, если имя домена содержит дефис или другой специальный символ, если имя пакета начинается с цифры или другого символа, который незаконно использовать в качестве начала имени Java, или если имя пакета содержит зарезервированное ключевое слово Java, такое как «int». В этом случае предлагаемое соглашение заключается в добавлении подчеркивания. Например:
Android следует тем же соглашениям об именах, что и Java,
Именования
имена пакетов записываются в нижнем регистре, чтобы избежать конфликтов с именами классов или интерфейсов.
компании используют свое обратное доменное имя Интернета, чтобы начать свои имена пакетов-например, com.образец.mypackage для пакета с именем mypackage, созданного программистом на example.com.
конфликты имен, которые происходят в пределах одного компания должна обрабатываться по соглашению внутри этой компании, возможно, путем включения региона или названия проекта после названия компании (например, com.образец.регион.пакета mypackage).
пакеты на самом языке Java начинаются с java. или javax.
в некоторых случаях имя домена интернета может быть недопустимым именем пакета. Это может произойти, если имя домена содержит дефис или другой специальный символ, если имя пакета начинается с цифры или другого символа, который запрещено использовать в качестве начала имени Java, или если имя пакета содержит зарезервированное ключевое слово Java, такое как «int». В этом случае предлагаемое соглашение должно добавить подчеркивание. Например:
Легализация Имен Пакетов:
Как вы заявили, имена пакетов обычно находятся в форме ‘com.имя_организации.appName’ — все строчные и без пробелов. Похоже, имя пакета, которое вы ввели при загрузке приложения, отличалось от имени, объявленного в AndroidManifest.
В настоящее время имя пакета, начинающееся с «com.пример » не разрешается загружать в app-store. В противном случае все остальные имена пакетов, начинающиеся с «com», разрешены .
имя пакета с 0 может вызвать проблему для sharedPreference.
(OK) con = createPackageContext(«com.example.android.sf1», 0);
(проблема, но без ошибок)
посетить https://developers.google.com/mobile/add и попробуйте заполнить «имя пакета Android». В некоторых случаях он может написать ошибку: «недопустимое имя пакета Android».
и хотя идентификатор приложения выглядит как традиционный пакет Java имя, правила именования для идентификатора приложения немного больше ограничительный:
- он должен иметь по крайней мере два сегмента (одну или несколько точек).
- каждый сегмент должен начинаться с буквы.
- все символы должны быть буквенно-цифровыми или подчеркиванием [a-zA-Z0-9_].
Итак, «0com.образец.app » и » com.1example.приложение» ошибки.
Источник
Полный список
— разбираемся, что такое Package для приложения
Package можно перевести как пакет. Этот вариант перевода я и буду использовать в уроке.
Пакет приложения мы прописываем в визарде создания приложения.
Потом его можно найти в манифесте.
Он же по дефолту становится пакетом для Java-классов
Как-то не особо значимая цель .
Может быть он используется как-то еще? Оказывается да. Более того, пакет — это крайне важная вещь при создании приложения. Пакет является идентификатором приложения в системе. Т.е. когда вы устанавливаете приложение, система смотрит его пакет и ищет уже установленное приложение с таким пакетом. Если не нашлось, то все ок и приложение устанавливается.
А вот если нашлось, то тут в дело вступает механизм подписи приложения ключом, который мы рассмотрели на прошлом уроке. Система проверяет, если установленное и устанавливаемое приложения подписаны одним и тем же ключом, то, вероятнее всего, это означает, что оба приложения создал один автор. И устанавливаемое приложение является обновлением установленного, т.к. их пакеты и ключи одинаковы. Система устанавливает новое приложение, заменяя старое — т.е. обновляет старое.
Если же система определила, что приложения были подписаны разными ключами, то это значит, что приложения были созданы разными авторами, пакеты совпали случайно, и новое вовсе не является обновлением старого. В этом случае при установке нового, старое было бы заменено, а значит потеряно (а не обновлено), т.к. приложения абсолютно разные. И система не дает поставить новое приложение, пока не будет вручную удалено старое.
Проведем пару тестов. Я создам два приложения Package1 и Package2 с одинаковым пакетом.
Установлю первое. Оно появилось в списке.
Теперь не удаляя первое, установлю второе.
Первое исчезло. Осталось только второе.
Система решила, что второе является обновлением первого (т.к. пакеты и ключи совпадают), поэтому первое благополучно снесла и заменила вторым. Собственно, это и происходит при обычном обновлении.
Теперь подпишу Package2 другим ключом, чем оно было подписано изначально и попробую обновить через adb.
Параметр r здесь означает, что приложение надо переустановить, если оно уже существует.
Видим ошибку Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]. Система сверила ключи у установленного и устанавливаемого приложений, увидела, что они разные и решила, что это будет не обновление, а просто приложение от другого разработчика ломится с тем же пакетом. И вполне разумно решила не удалять имеющееся приложение, а предупредить пользователя, что не совпадают ключи.
Если закинуть это приложение на эмулятор и поставить через файловый менеджер, получим примерно то же сообщение.
Из вышесказанного можно сделать следующий вывод: ваш ключ, которым вы подписываете приложение ни в коем случае нельзя терять или давать кому-либо.
Если вы ключ потеряете, то ваше приложение навсегда потеряет возможность быть обновленным. Даже если вы создадите новый ключ с тем же алиасом, паролем и данными владельца, это все равно будет другой ключ. И подписанная им следующая версия приложения будет рассматриваться системой не как обновление, а как попытка приложения от другого разработчика заменить ваше приложение и не даст его установить, пока не удалите установленное.
Если же вы ключ кому-то предоставите, то этот человек сможет сделать обновление для вашего приложения без вашего участия. И если этот человек имеет доступ и к вашей учетке разработчика в маркете, то он сможет залить туда свою версию вашего приложения.
Также не забывайте пароли от хранилища и от ключа. Это будет равносильно тому, что вы потеряли ключ. В общем, относитесь к вашим ключам со всей серьезностью.
И в конце урока небольшой ликбез. Пакет имеет еще одно значение. Как вы уже наверно заметили по вкладке Devices в Eclipse, пакет используется в качестве имени процесса, в котором запускается приложение. При этом, под каждое приложение система создает пользователя. Это позволяет разграничить доступ к данным. Каждое приложение запускается и работает со своими данными в отдельном процессе под отдельным пользователем. Соответственно, другие приложения не имеют к этим данным доступа, т.к. запущены под другими пользователями.
На следующем уроке:
— разбираемся с ViewPager
Присоединяйтесь к нам в Telegram:
— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.
— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование
— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня
— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме
Источник