Q:

Как работает система покупки андроид?

Как работает система покупки андроид?
Допустим, есть прога, весит 200 метров, и в ней есть система покупки, если что-то покупаю, то файлы открываются, так должно быть?
Или же файл весит 50 метров, после покупки скачивается и весит 200 метров?
Где про это можно почитать?

A:

Система покупки Google работает двояким образом:

Платное приложение (paid application): перед скачиванием предлагается купить приложение, далее можно скачать приложение. При запуске приложения проверяется на сервере Google, куплено приложение или нет (покупка привязывается к GoogleId пользователя). Если куплено, то приложение запускается, если нет, то нет. Существуют способы обхода проверки факта покупки, равно как и способы защиты от хакерства. Многое зависит от кода проверки, который закладывает программист. В любом случае, APK файл платного приложения достаточно просто выцепить после скачивания и выложить в открытый доступ, что не отменяет того, что при запуске APK будет проверять факт купли-продажи. Библиотека проверки факта покупки называется Licensing Verification Library - LVL. В двух словах, проверка происходит с использованием сервиса Android Play Market, по умолчанию установленном в любом Google сертифицированном Android устройстве.
Покупка в приложении (in-app billing): приложение свободно скачивается, но для совершения какого-либо действия (на усмотрение программиста) необходимо купить платный контент, который опять-таки привязан GoogleId пользователя. Покупка платного контента может как быть сопряжена со скачиванием некоего контента (части приложения - APK Expansion), так и без такового. Механизм работы in-app billing похож на описанную выше библиотеку LVL, разве что добавлены понятия SKU - товарной единицы покупки и понятия подписок (subscription), также работает через сервисы предоставляемые приложением Android Play Market.

Похожим образом работают и другие сервисы покупок, например Amazon AppStore, Samsung AppStore и даже (вы будете смеяться) - MTS и Beeline апсторы (или они уже умерли?).

