0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Android application package

Содержание

Как устанавливать мобильные приложения и игры с помощью APK и XAPK файлов

Что такое файлы APK?

APK файл (Android Package) — это стандартный формат приложений для Android. По сути, APK файл это сжатый архив, который включает ресурсы и код мобильного приложения. Разработчики приложений и игр загружают эти файлы в Google Play Маркет, а в дальнейшем, пользователи могут устанавливать эти приложения на свой смартфон и планшет.

Для одного приложения определённой версии, может быть доступно несколько файлов APK, каждый из которых предназначен для устройств определённой архитектуры, версии операционной системы и с различными разрешениями экрана. Чем больше вариантов APK файлов предоставляет разработчик, тем меньше данных будет скачено при установке или обновлении приложения, так как будет загружаться файл не содержащий кода и данных, предназначенных для других устройств.

В настоящий момент, выпускаются APK для четырёх архитектур: armeabi-v7a (arm), arm64-v8a (aarch64), x86 (i386) и x86_64. Многие разработчики выпускают и комплексный установочный файл, включающий поддержку нескольких архитектур, но имеющий больший размер. Если открыть страницу приложения в Play Маркете, вы увидите номер версии и размер приложения для вашего устройства. На устаревших устройствах могут предлагаться более старые версии приложения, если обновление не поддерживается или ещё не выпущено для вашего устройства.

Зачем устанавливать приложения с помощью APK файлов?

Иногда, установка с использованием APK является единственным способом получить приложение или игру на своё устройство. Например, приложение не соответствует правилам Google и не доступно в магазине Play Маркет. В таких случаях, их можно скачать на сайтах и форумах, на которых их разместил автор, и установить вручную.

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

Также, некоторые приложения могут быть не доступны в вашем регионе, и вы не сможете установить их из Play Маркета.

У опытных пользователей или мастеров по ремонту мобильных устройств, может возникнут необходимость установить антивирус на заражённое устройство, и часто APK файл может быть единственным вариантом запустить проверку и лечение системы. Многие вирусы для Android могут заполнять экран рекламными баннерами или блокировать интернет, и в таком случае, чтобы не прибегать к сбросу или перепрошивке устройства и потере всех данных, установка антивируса для Android с помощью APK файла будет хорошим вариантом лечения системы.

Как устанавливать приложения и игры с помощью APK файлов?

Поскольку APK является стандартным форматом приложений в операционной системе Android, их установка проста и не требует дополнительных программ. Вам нужно просто скачать файл на смартфон или планшет, найти его расположение в любом файловом менеджере, нажать по нему и выбрать «Установить».

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

В Android 7 и ниже:

  1. В любом файловом менеджере нажмите по файлу APK.
  2. В окне предупреждения «Установка заблокирована», нажмите «Настройки».
  3. В открывшемся окне настроек, найдите пункт «Неизвестные источники» и активируйте ползунок.
  4. В окне подтверждения, нажмите «OK».
  5. Вернитесь к файлу APK и нажмите «Установить».

В Android 8 и выше:

  1. В файловом менеджере или браузере нажмите по файлу APK.
  2. В окне предупреждения, нажмите «Настройки».
  3. В открывшемся окне настроек, активируйте ползунок «Разрешение для этого источника» или «Разрешить установку приложений».
  4. Вернитесь назад и нажмите «Установить».

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

Что такое файлы XAPK?

Из-за некоторых ограничений, введённых Google для публикации приложений в Play Маркет, размер приложения для Android не может превышать определённый размер. Разработчики больших приложений, например мобильных игр, могут использовать дополнительные файлы с ресурсами, которые необходимы для работы приложения или игры и будут скачиваться после её установки и первого запуска.

Сообщество разработчиков и пользователей придумали новый формат распространения мобильных приложений, который позволяет в одном файле хранить все необходимые ресурсы и файлы. XAPK — это архив, который может включать несколько APK файлов и дополнительные ресурсы (кэш). Этот формат набирает популярность на софт порталах и форумах, особенно для скачивания мобильных игр.

Как устанавливать приложения и игры с помощью XAPK файлов?

Есть несколько способов установки мобильных приложений и игр с помощью XAPK файлов. Рассмотрим три варианта.

Вариант 1 — использование мобильных приложений. Для установки XAPK можно использовать мобильное приложение APKPure для Android.

Для установки XAPK с помощью APKPure для Android:

  1. Откройте приложение APKPure для Android.
  2. Перейдите в главное меню, щелкнув по значку в правом верхнем углу.
  3. Переключитесь на вкладку «Управление APK / XAPK».
  4. Приложение просканирует память устройства и отобразит список найденных установочных файлов APK и XAPK. Нажмите «Установить» напротив нужного вам приложения и дождитесь распаковки и копирования файлов кэша.
  5. После этого начнётся установка извлечённого APK установщика. Подтвердите действие, нажав «Установить» и следуйте инструкции по установке AKP, написанной выше.

Также, после установки приложения APKPure для Android, файлы .xapk будут ассоциированы с приложением APKPure, что позволит устанавливать их в несколько кликов, щёлкнув по ним в любом файловом менеджере.

Вариант 2 — использование USB кабеля и компьютера. Для установки XAPK можно использовать приложение Pure APK Install для Windows.

Для установки XAPK с помощью Pure APK Install:

  1. Включите на мобильном устройстве отладку по USB (найдите в интернете инструкцию для вашей версии Android).
  2. Подключите мобильное устройство к компьютеру с помощью USB-кабеля.
  3. Откройте на компьютере приложение Pure APK Install.
  4. Перетащите .xapk или .apk файл в окно программы Pure APK Install, или используйте кнопку «Open APK file» и укажите путь к файлу.
  5. Появится информация о выбранном приложении: название, версия, размер и минимальные требования. Выберите место установки приложения: встроенное хранилище (Internal android memory), карта памяти (External SD card) или оставьте «Auto select».
  6. Нажмите кнопку «Install».
  7. На мобильном устройстве дождитесь сообщения и подтвердите доступ с компьютера.
  8. Дождитесь завершения установки и нажмите «OK».
Читать еще:  Diskussionsplattform Реальная рыбалка

Вариант 3 — извлечение APK файла из XAPK. Скачайте нужный вам файл XAPK и откройте его архиватором, например WinRAR или 7-Zip. Для удобства, можно предварительно изменить расширение файла с .xapk на .zip.

Извлеките из него файл с расширением .apk и установите его, следуя выше написанной инструкции. Также, скопируйте содержимое папки «Android», в которой находится кэш приложения, в соответствующую папку на вашем устройстве.

Set the application ID

Every Android app has a unique application ID that looks like a Java package name, such as com.example.myapp. This ID uniquely identifies your app on the device and in Google Play Store. If you want to upload a new version of your app, the application ID (and the certificate you sign it with) must be the same as the original APK—if you change the application ID, Google Play Store treats the APK as a completely different app. So once you publish your app, you should never change the application ID.

Your application ID is defined with the applicationId property in your module’s build.gradle file, as shown here:

When you create a new project in Android Studio, the applicationId exactly matches the Java-style package name you chose during setup. However, the application ID and package name are independent of each other beyond this point. You can change your code’s package name (your code namespace) and it will not affect the application ID, and vice versa (though, again, you should not change your application ID once you publish your app). However, changing the package name has other consequences you should be aware of, so see the section about how to change the package name.

And although the application ID looks like a traditional Java package name, the naming rules for the application ID are a bit more restrictive:

  • It must have at least two segments (one or more dots).
  • Each segment must start with a letter.
  • All characters must be alphanumeric or an underscore [a-zA-Z0-9_].

Note: The application ID used to be directly tied to your code’s package name; so some Android APIs use the term «package name» in their method names and parameter names, but this is actually your application ID. For example, the Context.getPackageName() method returns your application ID. There’s no need to ever share your code’s true package name outside your app code.

Caution: If you are using WebView , consider using your package name as a prefix in your application ID; otherwise you might encounter problems as described in issue 211768.

Change the application ID for build variants

When you build an APK for your app, the build tools tag the APK with the application ID defined in the defaultConfig block from the build.gradle file (as shown below). However, if you want to create different versions of your app to appear as separate listings on Google Play Store, such as a «free» and «pro» version, you need to create separate build variants that each have a different application ID.

In this case, each build variant should be defined as a separate product flavor. For each flavor inside the productFlavors block, you can redefine the applicationId property, or you can instead append a segment to the default application ID using applicationIdSuffix , as shown here:

This way, the application ID for the «free» product flavor is «com.example.myapp.free».

You can also use applicationIdSuffix to append a segment based on your build type, as shown here:

Because Gradle applies the build type configuration after the product flavor, the application ID for the «free debug» build variant is now «com.example.myapp.free.debug». This is useful when you want to have both the debug and the release build on the same device, because no two APKs can have the same application ID.

Remember that APKs with different application IDs are treated as different apps in Google Play Store. So if you instead want to use the same app listing to distribute multiple APKs that each target a different device configuration (such as the API level), then you must use the same application ID for each build variant but give each APK a different versionCode . For more information, read about Multiple APK support.

Caution: For compatibility with previous SDK tools, if you do not define the applicationId property in your build.gradle file, the build tools use the package name from the AndroidManifest.xml file as the application ID. In that case, refactoring your package name also changes your application ID.

Tip: If you need to reference the application ID in your manifest file, you can use the $ placeholder in any manifest attribute. During a build, Gradle replaces this tag with the actual application ID. For more information, see Inject Build Variables into the Manifest.

Change the application ID for testing

By default, the build tools apply an application ID to your instrumentation test APK using the application ID for the given build variant, appended with .test . For example, a test APK for the com.example.myapp.free build variant has the application ID com.example.myapp.free.test .

Although it shouldn’t be necessary, you can change the application ID by defining the testApplicationId property in your defaultConfig or productFlavor block.

Change the package name

Although your project’s package name matches the application ID by default, you can change it. However, if you want to change your package name, be aware that the package name (as defined by your project directory structure) should always match the package attribute in the AndroidManifest.xml file, as shown here:

The Android build tools use the package attribute for two things:

    It applies this name as the namespace for your app’s generated R.java class.

Example: With the above manifest, the R class will be com.example.myapp.R .

It uses it to resolve any relative class names that are declared in the manifest file.

Example: With the above manifest, an activity declared as is resolved to be com.example.myapp.MainActivity .

As such, the name in the package attribute should always match your project’s base package name where you keep your activities and other app code. Of course, you can have sub-packages in your project, but then those files must import the R.java class using the namespace from the package attribute, and any app components declared in the manifest must add the missing sub-package names (or use fully-qualified package names).

If you want to refactor your package name completely, be sure you update the package attribute as well. As long as you use Android Studio’s tools to rename and refactor your packages, then these automatically stay in sync. (If they don’t stay in sync, your app code can’t resolve the R class because it’s no longer in the same package, and the manifest won’t identify your activities or other components.)

Читать еще:  Почему не приходят СМС на МегаФон — описание и решение проблемы

You must always specify the package attribute in your project’s main AndroidManifest.xml file. If you have additional manifest files (such as for a product flavor or build type), be aware that the package name supplied by the highest-priority manifest file is always used in the final merged manifest. For more information, see Merge multiple manifest files.

One more thing to know: Although you may have a different name for the manifest package and the Gradle applicationId , the build tools copy the application ID into your APK’s final manifest file at the end of the build. So if you inspect your AndroidManifest.xml file after a build, don’t be surprised that the package attribute has changed. The package attribute is where Google Play Store and the Android platform actually look to identify your app; so once the build has made use of the original value (to namespace the R class and resolve manifest class names), it discards that value and replaces it with the application ID.

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 ApplicationId vs PackageName

You might wonder what is the difference between package name we have in AndroidManifest.xml file and ApplicationId we see in build.gradle. They seem to be the same thing, but actually they are 2 different things. So if you didn’t know what is the difference between these 2 properties, you can find out now.

  • represents the package name used to identify your application in Google Play store and is used to build your apk’s manifest.
  • once an app has been published to Gooogle Play store, the ApplicationId should never be changed
  • it is declared in app/build.gradle file
  • you can specify different applicationId for different versions of your app (flavors)
  • if you do not declare the ApplicationId, it will have as default value, the name from AndroidManifest.xml, but this is not recommended as this way they will be coupled and any refactor on package name from manifest will lead to a rename in ApplicationId also (which is exactly what we want to avoid)
  • represents the package name used in your source code to refer to your R class and imports.
  • it is declared in AndroidManifest.xml file and is mandatory
  • if you have multiple manifest files (like when using flavors) it is optional, but if you want to declare it, it must be the same as the one declared in the default AndroidManifest.xml.
  • if you rename the package name from manifest file, it will have NO impact on the ApplicationId even if they have the same name.

You can read more about this from here:

Related

Search In Blog

Want to donate?

Categories

Like Us On Facebook

Recent Posts: My Android Solutions

Android Parse JSON file from Assets

If you ever wondered how to read and parse a simple JSON file stored in the assets directory of your Android project, here is a way to do it.

Android Simple Section RecylerView

In this tutorial I will create a simple Sectioned RecyclerView that will show 2 sections and a few items in each section and how to move an item from one section to another. Note: For RecyclerView I used AndroidX imports and not android.support.v7.widget.RecyclerView! Setup We need to import the recycler view from AndroidX. The build.gradle…

Android Squared CardView

Recently, I had to add a perfect square CardView and I wanted to achieve this without hardcoding its width and height. I happily discovered the power of ConstraintLayout and this is how I managed to create a perfect square which should work on every dimension. In my project I created a RecyclerView with 2 columns,…

Android application package

Creating multiple APKs for different purposes.

PackageName vs ApplicationId

Nowadays, many times we come to the situation that we need the APK with another different package name. Most of us do it easily, but sometimes we got stuck because of applicationId and packageName.We must know the difference between packageName and applicationId. And the other thing is Java package.

The following are the three which keeps us confusing:

  1. applicationId: BuildConfig.APPLICATION_ID
  2. packageName: getApplicationContext().getPackageName()
  3. Java package: BuildConfig.class.getPackage().toString()

Let’s see with an example

The following is the snippet from the gradle of a sample Android application.

Here we will be having two different APKs.

  1. Release APK with com.mindorks.example.release
  2. Debug APK with com.mindorks.example.debug

The following is the snippet from manifest of the same sample Android application.

The following is the project package snippet of the same sample Android application.

So, let’s create a debug APK and see what are the values of all the three.

Read the values carefully.

The following shows the final AndroidManifest file after APK creation.

getPackageName gives the same applicationId which is created at the final moment from the gradle file and it overrides the AndroidManifest package. So the final AndroidManifest contains the same applicationId. So, the getPackageName is the same as the applicationId as the applicationId overrides the packageName in the AndroidManifest at the final moment.

But for the Java code, the package is same as the project structure. The package that is used in your source code to refer to your R class, and to resolve any relative activity, service registrations, continues to be called the package as defined in your manifest. So, the AndroidManifest should have the package same as Java package to resolve relative activity, service.

So, with the same java package, we can create any number of APKs with all unique applicationId.

But the final AndroidManifest contains the package as the unique applicationId only.

If you have to actually change the structure of your project, then you have to change your packageName in Manifest.xml.

If you rename the package name from manifest file, it will have NO impact on the applicationId even if they have the same name.

We can also create multiple APKs through productFlavors like above.

Remember, once an app has been published to Google Play store, the ApplicationId should never be changed.

Получение списка приложений в Android

Android SDK предоставляет много средств для работы с системой. В том числе он позволяет получать список приложений, которые установлены на устройстве. Это может быть полезно, когда нужно получить сведения о сторонних приложениях (размер APK, путь до приложения, имя пакета и т.д.). Например, в наших приложениях получение списка, содержащего сторонние приложения, играет большую роль: в GreenBro с помощью этого списка выводятся сведения о приложениях, а также выполняются различные действия.

Читать еще:  Kino HD 2.4.8 [Professional MOD]

В Менеджере системных приложений и APK Extractor же список приложений необходим, чтобы удалять приложения и извлекать APK из приложений соответственно.

В этой статье мы рассмотрим, как можно получать список приложений, установленных на устройстве, а также как происходит установка приложений на устройство.

Класс PackageManager

PackageManager предоставляет API, который фактически управляет установкой, удалением и обновлением приложений. Когда мы устанавливаем файл APK, PackageManager анализирует этот APK и выводит результат.

Получить экземпляр класса PackageManager можно с помощью метода getPackageManager(). PackageManager предоставляет методы для запросов к установленным пакетам и соответствующим разрешениям.

Где хранятся файлы APK на Android?

В зависимости от типа данных, на Androiid файлы могут храниться в следующих местах:

  • Предустановленные и системные приложения (Камера, Браузер и т.д.) хранятся в /system/app/
  • Установленные пользователем приложения хранятся в /data/app/
  • PackageManager создаёт каталог /data/data/ / для хранения базы данных, файлов с предпочтениями, нативных библиотек и кеша.

Как PackageManager хранит информацию о приложении?

Менеджер пакетов хранит информацию о приложении в трёх файлах, расположенных в /data/system.

packages.xml

Этот XML-файл содержит список разрешений и пакетыприложения. Он хранит две вещи: разрешения и пакет. Например:

Разрешения хранятся в теге

. Каждое разрешение имеет три атрибута: name, package и protection. Атрибут name это имя разрешения, которое мы используем в AndroidManifest.xml. Атрибут package указывает на пакет, которому принадлежит разрешение, в большинстве случаев это «android». Атрибут protection указывает на уровень безопасности.

содержит 10 атрибутов и несколько подтегов.

Подтеги же здесь следующие:

  • представляет собой информацию о сигнатуре, атрибут count — количество тегов .
  • это ключ сертификата, атрибут index представляет собой глобальный индекс сертификата.

содержат разрешения, которые разработчик установил в AndroidManifest.xml

packages.list

Это простой текстовый файл, содержащий имя пакета, идентификатор пользователя, флаги и каталог data.

package-stopped.xml

Этот файл содержит список пакетов, которые были остановлены. Остановленные приложения не могут принимать широковещательные сообщения.

Получаем список приложений

Рассмотрим получение списка установленных приложений на примере GreenBro.

При запуске приложения запускается AsyncTask, внутри которого получаем экземпляр PackageManager и затем копируем в список List все данные об установленных приложениях.

Метод getInstalledApplications() принимает в качестве параметра флаг GET_META_DATA, который определяет, что нам нужные метаданные каждого пакета.

Результатом является список объектов ApplicationInfo для каждого установленного приложения. Класс ApplicationInfo предоставляет подробную информацию о пакете, собранную из тега в AndroidManifest.xml, нам оттуда нужны лишь самые важные данные.

Поэтому в цикле проверяем каждый объект из полученного списка и записывать данные в собственный класс AppInfo, чтобы затем использовать в основном потоке.

Здесь с помощью метода getPackageInfo() класса PackageManager мы получаем общую информацию о приложении по заданному имени пакета. После эта информация объединяется с информацией, полученной от getInstalledApplications() и сохраняется в объекте AppInfo со следующими полями:

  • title — название приложения
  • packageName — имя пакета
  • sourceDir — полный путь до APK приложения
  • publicSourceDir — путь до общедоступных частей sourceDir
  • versionName — имя версии
  • isSystem — определяет, является ли приложение системным
  • size — размер приложения (в удобной форме)
  • longSize — размер приложения в long
  • dataDir — полный путь к каталогу data
  • nativeLibraryDir — путь до нативных библиотек
  • modified — дата последнего изменения
  • firstInstallTime — дата установки
  • lastUpdateTime — дата последнего обновления
  • enabled — определяет, включено ли приложение

Чтобы узнать название приложения, можно также воспользоваться PackageManager, как показано ниже.

Проверка же на то, является ли приложение системным, тоже достаточно проста и показана ниже.

В конце работы AsyncTask возвращает результат обратно в основной поток. Вот и всё, мы загрузили себе список всех установленных на устройстве приложений и можем продолжить с ним работу.

Получение списка приложений в Android : 2 комментария

Подскажите пожалуйста, в конструкции:
final PackageManager pm = context.getPackageManager();
List apps = new ArrayList();
List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
Чем является «context»?

Это локальная переменная, Вы можете передавать контекст из активити или фрагмента

Build Android application package file (APK) using Eclipse IDE

Posted by: Nikos Maravitsas in core June 4th, 2013 0 Views

Android application package file (APK) compressed file that is used to install and distribute Android Applications. Remember when you install an new Application in your Android Phone (or when you run your Application in an emulator) the APK file of your project is installed on your device. APK files are really ZIP archive files. You may open APK files using any Archive program. You can also think of APK files as JAR files in Java.

In this example we’ll see how to create .apk file ready to be installed in Android device. For this tutorial, we will use the following tools in a Windows 64-bit platform:

  • JDK 1.7
  • Eclipse 4.2 Juno
  • Android SKD 4.2

1. Create a new Android Project

Here, we are going to use an existing Android Handler Project in Eclipse. In the link you are going to find details on how to create and code the project.

2. Export Unsigned Application Package

Go to the Package Explorer and locate the Project you want to export. Right Click on the Project -> Android Tools ->Export Unsigned Application Package :

Then select the destination folder and the name of the exported package (.apk) and then save the file. When you’re done you will notice a Warning pop up. That is because android devices and emulators allow installations of digitally singed APK files (digitally signed Applications) only:

2. Export Signed Application Package

This, has an extra step of signing the APK file with a certificate. In this example we are going to create our own self signed certificate. You will see how Eclipse IDE helps us do that really quick and easy. As before, go to the Package Explorer and locate the Project you want to export. Right Click on the Project -> Android Tools ->Export Signed Application Package . The specify the project you want to sign and export and click Next.

2.1. Select/create a new Keystore

In the next form you can choose to use an already created certificate (or keystore), or you can select to create a new one on the fly. As we said, for this example we are going to create a new one. So go ahead and:

  • Choose “Create new Keystore”.
  • Specify the location of the Keystore.
  • And provide a password for the Keystore. You will need this password to sign other applications with that specific Keystore.

2.2. Create a new Keystore

In the next window you have to fill up the form that populates the arguments of the Keystore. It’s actually pretty much the same procedure when creating a self-signed certificate (with openssl for instance).

And click Next. Now you have to specify the name of the .apk file and the destination folder. You will also be informed on how the certificate will be used:

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector