Giter Site home page Giter Site logo

play-apk-expansion's Introduction

NOTE
====

Support for this library as been discontinued after the launch of Play Asset Delivery (https://developer.android.com/guide/app-bundle/asset-delivery).
Play Asset Delivery is a better solution that requires much less developer effort and is compliant with all SDK versions.

As announced in [August 2020](https://android-developers.googleblog.com/2020/08/recent-android-app-bundle-improvements.html), new apps and games will be required to be published on Google Play using the Android App Bundle format in [August 2021] (https://android-developers.googleblog.com/2020/11/new-android-app-bundle-and-target-api.html).

Play Asset Delivery is an integral part in this roadmap and it should be preferred over APK Expansion files for new projects.

====

Client library for the Google Market APK Expansion files.

Changelog
---------
Version 5
* Removed pre-V14 compatibility (preparing for more changes)

Version 4
* Updated for Marshmallow
   - No longer uses Apache HTTP
   - No longer relies on removed Notification methods
* Changed to refer to Google Play
* Notifications now rely on support-v7 22.+ and support-v4 22.0.+.

Version 3
* Directory structure corrected in distribution. No code changes.

Version 2
* Patch file now gets downloaded.
* Honeycomb devices now supported with ICS-like notifications
* CRC check (from sample) now supports compressed Zip files
* Use of reflection removed to allow easy obfuscation
* Service leak fixed
* Unprintable character removed from ZipResourceFile
* Minor formatting changes
* Additional comments and edits to this file

Packages
--------

downloader_library
A library that works with the google_market_licensing library to download APK Expansion files in a background service.  This library depends on the licensing library, and must be built as a library project.
zip_file
A library that uses multiple zip files as a virtual read-only filesystem with hooks to support APK Expansion files. This also must be built as an Android library project. 
downloader_sample
A sample application that assumes that zip format files have been uploaded as the main/patch file(s) on Android Market.  It downloads these files and then validates that the CRC's for every entry in the zip match.  This application depends on the downloader_library and the zip_file library. Because of dependency issues involving multiple libraries, you may have to do a clean build after creating each project.

IMPORTANT THINGS TO KNOW
------------------------

1) Do not plan to extract the contents of an APK Expansion file.  They are intended to be used in-place.  By not compressing audio and video files and storing them in a Zip file they can be played from within an expansion file.
2) See com.google.android.vending.expansion.downloader/Constants.java to turn on verbose logging in the library.  Please turn it off when you publish
3) You must add your SALT and Public key to the SampleDownloaderService and update the xAPKS structure in SampleDownloaderActivity in order to test with the sample code
4) There is no strong need to include the validator with your Android applications.  It is included as a demonstration, and can be used if you wish.
5) When using the APEZProvider for retrieving Zip files via "content://" URIs, you may wish to leave them uncompressed. Otherwise the content provider may return null due to failing to grab ahold of a file descriptor.

For more information, see the documentation at http://developer.android.com/guide/market/expansion-files.html

This library requires the Android License Verification Library.

See the licensing documentation at http://developer.android.com/guide/publishing/licensing.html

play-apk-expansion's People

Contributors

codingjeremy avatar dagalpin avatar johngoren avatar jugutier avatar keyboardsurfer avatar pfmaggi avatar tjohns avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.