Android set apk name

Публикация приложения

Создание подписанного apk

После создания приложения, его тестирования и отладки мы можем приступить к его публикации. Суть публикации заключается в создании файла с расширением .apk, которое будет представлять приложение, и его последующее размещение в Google Play Market или на других внешних сайтах. По умолчанию в процессе отладки и создания приложения файл apk уже создается, и мы можем его найти в папке проекта по пути Название_проекта\app\build\outputs\apk. По умолчанию файл называется app-debug.apk и представляет debug-версию.

Но для полноценно публикации данного файла может оказаться недостаточно. И нам еще дополнительно надо произвести некоторую подготовку проекта к релизу. Для это следует указать в файле манифеста у элемента установлены атрибуты android:versionCode и android:versionName . Также в файле манифеста элемент не должен содержать атрибута android:debuggable

Кроме того, на этом этапе можно установить иконку для приложения, которая будет отображаться на рабочем экране гаджета, название приложения (атрибут android:label у элемента), а также можно задать лицензионное соглашение.

В файле манифеста также следует определить название пакета (атрибут package элемента ), которое будет использоваться для приложения в дальнейшем. По умолчанию при разработке в Android Studio пакеты приложений начинаются с com.example. Не стоит оставлять данное название, так как название пакета будет служить уникальным идентификатором вашего приложения. Например, ниже в моем случае названием пакета служит «com.maverics.eugene.telephonelist»:

При этом если в файлах кода java название пакета в начале файла также должно соответствовать пакету приложения.

Установка требований

На этапе подготовки к релизу также можно установить требования к API. Например, наше приложение имеет определеную минимальную версию ОС Android, поэтому мы можем установить в файле манифеста соответствующие атрибуты у элемента

android:minSdkVersion — минимальная версия Android

android:targetSdkVersion — оптимальная версия API

android:maxSdkVersion — максимальная версия системы

Например, пусть минимальная версия Jelly Beans 4.1.2, а оптимальная KitKat 4.4.4:

Подпись приложения

Когда все уже готово, приложение для Android должно быть подписано сертификатом, благодаря которому можно идентифицировать автора приложения. Когда мы тестируем приложение, устанавливая его через Android Studio на устройство, то оно подписывается автоматически. Но для создания релиз-версии нам надо произвести дополнительно ряд действий.

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

Во-первых, в Android Studio выберем в меню пункт Build -> Generate Signed APK . После этого нам откроется окно мастера:

Нажмем на кнопку Create new. . После этого нам откроется окно создания ключа:

Введем в поле Key store path путь к файлу сетификата, который будет создан. Если указанной папки не существует, то ее надо создать или определить существующую папку.

В поле Password/Confirm указываем пароль.

В поле Alias указываем псевдоним. Можно поставить произвольное название.

В поле First and Last Name вписываем имя и фамилию. И далее пишим подразделение, организацию, город, страну и код страны.

В конце нажимаем OK.

После этого автоматически обновится первое окошко:

Далее нажмем на кнопку Next:

Финальное окно покажет нам путь к каталогу, где будет находиться подписанное приложение apk в release-версии. Нажмем на Finish.

Теперь по указанному пути можно будет найти подписанный apk, который будет иметь название app-release.apk:

Мы можем переименовать файл, сохранив его расширение и выложить в Play Market или на любой сайт или сразу загрузить на мобильное устройство. После загрузки на телефон/планшет достоточно нажать на него, и с помощью стандартного установщика пакетов приложение будет установлено. Правда, здесь также надо учитывать, что если мы устанавливаем приложение не из Play Market, то в настройках надо разрешить установку из других источниках — Безопасность->Неизвестные источники (Разрешить установку приложений из других источников)

Читайте также:  Android button click animation

Источник

apksigner

The apksigner tool, available in revision 24.0.3 and higher of the Android SDK Build Tools, allows you to sign APKs and to confirm that an APK’s signature will be verified successfully on all versions of the Android platform supported by those APKs. This page presents a short guide for using the tool and serves as a reference for the different command-line options that the tool supports. For a more complete description of how the apksigner tool is used for signing your APKs, see the Sign your app guide.

Caution: If you sign your APK using apksigner and make further changes to the APK, the APK’s signature is invalidated. Therefore, you must use tools such as zipalign before signing your APK.

Usage

Sign an APK

The syntax for signing an APK using the apksigner tool is as follows:

When you sign an APK using the apksigner tool, you must provide the signer’s private key and certificate. You can include this information in two different ways:

  • Specify a KeyStore file using the —ks option.
  • Specify the private key file and certificate file separately using the —key and —cert options, respectively. The private key file must use the PKCS #8 format, and the certificate file must use the X.509 format.

Usually, you sign an APK using only one signer. In the event that you need to sign an APK using multiple signers, use the —next-signer option to separate the set of general options to apply to each signer:

Verify the signature of an APK

The syntax for confirming that an APK’s signature will be verified successfully on supported platforms is as follows:

Rotate signing keys

The syntax for rotating a signing certificate lineage, or a new sequence of signatures, is as follows:

Options

The following lists include the set of options for each command that the apksigner tool supports.

Sign command

General options

The following options specify basic settings to apply to a signer:

—out The location where you’d like to save the signed APK. If this option isn’t provided explicitly, the APK package is signed in-place, overwriting the input APK file. —min-sdk-version The lowest Android framework API level that apksigner uses to confirm that the APK’s signature will be verified. Higher values allow the tool to use stronger security parameters when signing the app but limit the APK’s availability to devices running more recent versions of Android. By default, apksigner uses the value of the minSdkVersion attribute from the app’s manifest file. —max-sdk-version The highest Android framework API level that apksigner uses to confirm that the APK’s signature will be verified. By default, the tool uses the highest possible API level. —v1-signing-enabled Determines whether apksigner signs the given APK package using the traditional, JAR-based signing scheme. By default, the tool uses the values of —min-sdk-version and —max-sdk-version to decide when to apply this signature scheme. —v2-signing-enabled Determines whether apksigner signs the given APK package using the APK Signature Scheme v2. By default, the tool uses the values of —min-sdk-version and —max-sdk-version to decide when to apply this signature scheme. —v3-signing-enabled Determines whether apksigner signs the given APK package using the APK Signature Scheme v3. By default, the tool uses the values of —min-sdk-version and —max-sdk-version to decide when to apply this signature scheme. —v4-signing-enabled Determines whether apksigner signs the given APK package using the APK Signature Scheme v4. This scheme produces a signature in an separate file ( apk-name .apk.idsig ). If true and the APK is not signed, then a v2 or v3 signature is generated based on the values of —min-sdk-version and —max-sdk-version . The command then produces the .idsig file based on the content of the signed APK. Use only to generate only the v4 signature without modifying the APK and any signatures it had before the invocation; only fails if the APK doesn’t have a v2 or v3 signature already, or if the signature used a different key than the one provided for the current invocation. By default, the tool uses the values of —min-sdk-version and —max-sdk-version to decide when to apply this signature scheme. -v , —verbose Use the verbose output mode.

Читайте также:  Flash alerts для андроид

Per-signer options

The following options specify the configuration of a particular signer. These options aren’t necessary if you sign your app using only one signer.

—next-signer Used for specifying different general options for each signer. —v1-signer-name The base name for the files that comprise the JAR-based signature for the current signer. By default, apksigner uses the key alias of the KeyStore or the basename of the key file for this signer.

Key and certificate options

The following options specify the signer’s private key and certificate:

—ks The signer’s private key and certificate chain reside in the given Java-based KeyStore file. If the filename is set to «NONE» , the KeyStore containing the key and certificate doesn’t need a file specified, which is the case for some PKCS #11 KeyStores. —ks-key-alias The name of the alias that represents the signer’s private key and certificate data within the KeyStore. If the KeyStore associated with the signer contains multiple keys, you must specify this option. —ks-pass

The password for the KeyStore that contains the signer’s private key and certificate. You must provide a password to open a KeyStore. The apksigner tool supports the following formats:

– Password provided inline with the rest of the apksigner sign command.

  • env: – Password is stored in the given environment variable.
  • file: – Password is stored as a single line in the given file.
  • stdin – Password is provided as a single line in the standard input stream. This is the default behavior for —ks-pass .
  • Note: If you include multiple passwords in the same file, specify them on separate lines. The apksigner tool associates passwords with an APK’s signers based on the order in which you specify the signers. If you’ve provided two passwords for a signer, apksigner interprets the first password as the KeyStore password and the second one as the key password.

    —pass-encoding Includes the specified character encodings (such as, ibm437 or utf-8 ) when trying to handle passwords containing non-ASCII characters.

    Keytool often encrypts keystores by converting the password using the console’s default charset. By default, apksigner tries to decrypt using several forms of the password: the Unicode form, the form encoded using the JVM default charset, and, on Java 8 and older, the form encoded using the console’s default charset. On Java 9, apksigner cannot detect the console’s charset. So, you may need to specify —pass-encoding when a non-ASCII password is used. You may also need to specify this option with keystores that keytool created on a different OS or in a different locale.

    The password for the signer’s private key, which is needed if the private key is password-protected. The apksigner tool supports the following formats:

    – Password provided inline with the rest of the apksigner sign command.

  • env: – Password is stored in the given environment variable.
  • file: – Password is stored as a single line in the given file.
  • stdin – Password is provided as a single line in the standard input stream. This is the default behavior for —key-pass .
  • Note: If you include multiple passwords in the same file, specify them on separate lines. The apksigner tool associates passwords with an APK’s signers based on the order in which you specify the signers. If you’ve provided two passwords for a signer, apksigner interprets the first password as the KeyStore password and the second one as the key password.

    Verify command

    Examples

    Sign an APK

    Sign an APK using release.jks , which is the only key in the KeyStore:

    Sign an APK using a private key and certificate, stored as separate files:

    Sign an APK using two keys:

    Verify the signature of an APK

    Check whether the APK’s signatures are expected to be confirmed as valid on all Android platforms that the APK supports:

    Check whether the APK’s signatures are expected to be confirmed as valid on Android 4.0.3 (API level 15) and higher:

    Rotate signing keys

    Enable a signing certificate lineage that supports key rotation:

    Читайте также:  Подключение android по блютузу

    Rotate your signing keys again:

    Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.

    Источник

    Пишем и собираем приложения для Android в linux консоли

    В данной статье я покажу как можно собрать apk файл в Ubuntu используя лишь
    утилиты командной строки.

    Обычно для создания приложений для Adroid используется Android Studio. Но для сборки небольших программ можно обойтись командной строкой. Например, когда ресурсы компьютера ограничены и ваше приложение очень простое.

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

    Введение

    Разработка под Android не является основным направлением моей деятельности, я иногда делаю какие-то небольшие приложения для своих нужд.

    Раньше я использовал QPython, но он достаточно тяжел и неудобен в работе. Поэтому я перешел к разработке нативных программ. Даже при поверхностном знании Java
    это не составляет больших трудностей.

    Данное руководство в большой степени базируется на этом документе: Building an Android App
    from the Command Line. Кому интересны подробности, обращайтесь к первоисточнику.

    Похожая статья: Пишем, собираем и запускаем HelloWorld для Android в блокноте уже встречалась на этом ресурсе, но в ней было рассмотрена разработка в Windows.

    Здесь же я рассмотрю, как можно собрать приложение в linux.

    Железо

    Тестирование проводилось на стареньком нетбуке с процессором Атом, 1Гб ОЗУ
    и 8Гб SSD диска.

    Операционная система

    Я тестировал приложение на Ubuntu 17.04. Начиная с Ubunu 16.04 android-sdk можно установить через пакетный менеджер.

    В принципе, тот же SDK можно
    скачать с сайта.
    Качать файл из раздела ‘Get just the command line tools’
    По сути это не сильно меняет процесс, но через пакетный менеджер все гораздо проще.
    Разница будет лишь в путях и установке дополнительных пакетов «android-platform».

    Установка пакетов

    Итак, приступим к установке.

    Будет установлено большое количество пакетов, включая Java.

    Далее, в зависимости от требуемой версии Android, необходимо установить нужную
    версию пакетов. Для lolipop 5.1 необходимо ставить:

    Так же необходимо установить дополнительный пакет.

    Если вы планируете устанавливать apk-пакет через adb, то необходимо немного дополнительных настроек.

    Настройка adb

    С помощью lsusb найти подключенное устройство

    И создать файл с правилом:

    В файл добавить одну строку:

    Здесь «1782» взято из вывода lsusb.

    После подключения через adb, на устройстве необходимо подтвердить соединение.

    Теперь все готово к работе.

    Постановка задачи

    Приложение, которое будем собирать немного сложнее, чем ‘Hello world’.

    • Требуется по нажатию кнопки взять строку из буфера обмена.
    • Вырезать подстроку
    • Записать подстроку обратно в буфер.
    • С помощь Toast вывести подстроку или сообщение об ошибке.

    В общем-то все просто.

    Я подготовил пример который возьмем за основу.

    Создание подписи

    Сначала создадим ключ для подписи файла:

    Это нам пригодится позже.

    Манифест

    Здесь указываем имя приложения в атрибуте «android:label». Так же приложение будет использоваться свою иконку, она указана в атрибуте «android:icon». Сама иконка лежит в каталоге «res/drawable-mdpi» файл «icon.png». В качестве иконки можно взять любой небольшой png файл.

    Layout

    Файл с расположением элементов находится в каталоге «/res/layout/».

    В него можно добавлять виджеты, если вы захотите расширить функционал.

    Исходный код приложения

    Исходный код приложения находится здесь «java/ru/kx13/extractvidid»

    Код весьма прост и примитивен, но этот шаблон можно использовать в других приложениях.

    Скрипт для сборки

    Я не стал использовать утилит сборки типа make или ant, т.к. весь код находится в одном файле и особых преимуществ это не даст. Поэтому это обычный shell скрипт:

    Некоторые замечания по поводу путей.

    • По умолчанию, переменная BASE указывает на путь, в который пакетный менеджер сохраняет файлы. Если вы ставите SDK вручную, то путь надо будет изменить.
    • Если вы используете версию API отличную от 22, то вам надо подправить переменные BUILD_TOOLS и PLATFORM

    Сборка и установка

    Для сборки просто запустите

    Если все настроено правильно никаких сообщений не будет выведено, а в каталоге «build» появится файл «Extractor.apk»

    Теперь надо установить наше приложение

    Если все прошло нормально, на устройстве появится новое приложение. Можно запускать и пользоваться.

    В общем случае можно перекинуть файл apk на устройство любым удобным способом.

    Заключение

    Как видно из статьи начать разработку в консоли совсем несложно.

    Консольные утилиты позволяют разрабатывать программы при весьма небольших ресурсах.

    Источник

    Оцените статью