public class AppStreamer
extends java.lang.Object
Important: always remember to close streams when using pooled connections!
| Modifier and Type | Field and Description |
|---|---|
static int |
MAIN_OBB
Applies to
AppFileMetadata.getFileType() |
static int |
PATCH_OBB
Applies to
AppFileMetadata.getFileType() |
| Constructor and Description |
|---|
AppStreamer(ClientProvider provider,
java.lang.String userAgent,
boolean compress,
de.onyxbits.raccoon.proto.AndroidAppDeliveryData aadd) |
AppStreamer(org.apache.hc.client5.http.classic.HttpClient client,
java.lang.String userAgent,
boolean compress,
de.onyxbits.raccoon.proto.AndroidAppDeliveryData aadd)
Construct a streamer for downloading a single app.
|
| Modifier and Type | Method and Description |
|---|---|
int |
countFiles()
Sum up the total number of individual files to download.
|
java.util.List<de.onyxbits.raccoon.proto.AppFileMetadata> |
getAdditionalFiles()
List OBB Files
|
de.onyxbits.raccoon.proto.AndroidAppDeliveryData |
getAndroidAppDeliveryData() |
java.util.List<de.onyxbits.raccoon.proto.SplitDeliveryData> |
getSplitFiles()
List split APKs
|
java.io.InputStream |
open()
Stream the (base) APK.
|
java.io.InputStream |
open(de.onyxbits.raccoon.proto.AppFileMetadata afm)
Stream an extension file (OBB).
|
java.io.InputStream |
open(de.onyxbits.raccoon.proto.SplitDeliveryData sdd)
Stream a split delivery file (Android App Bundle).
|
java.io.InputStream |
openPatch()
Stream base APK patch
|
java.io.InputStream |
openPatch(de.onyxbits.raccoon.proto.AppFileMetadata afm)
Stream an OBB Patch
|
java.io.InputStream |
openPatch(de.onyxbits.raccoon.proto.SplitDeliveryData sdd)
Stream a patch for a split APK file.
|
long |
sizeOf()
Size of the base APK
|
long |
sizeOfAdditionalFiles()
Combined size of all additional files (OBB)
|
long |
sizeOfSplitFiles()
Combined size of all split APK files
|
public static final int MAIN_OBB
AppFileMetadata.getFileType()public static final int PATCH_OBB
AppFileMetadata.getFileType()public AppStreamer(org.apache.hc.client5.http.classic.HttpClient client,
java.lang.String userAgent,
boolean compress,
de.onyxbits.raccoon.proto.AndroidAppDeliveryData aadd)
client - client to use for downloadinguserAgent - User Agent string. Obtainable from
MockUtil.toDownloadAgent(de.onyxbits.raccoon.mockup.Device)
. May be null.compress - use compression if available. Compression is handled
transparently.aadd - the raw download parameters.public AppStreamer(ClientProvider provider, java.lang.String userAgent, boolean compress, de.onyxbits.raccoon.proto.AndroidAppDeliveryData aadd)
public long sizeOf()
public long sizeOfAdditionalFiles()
public long sizeOfSplitFiles()
public int countFiles()
public de.onyxbits.raccoon.proto.AndroidAppDeliveryData getAndroidAppDeliveryData()
AndroidAppDeliveryData, this streamer was configured
with.public java.util.List<de.onyxbits.raccoon.proto.AppFileMetadata> getAdditionalFiles()
public java.util.List<de.onyxbits.raccoon.proto.SplitDeliveryData> getSplitFiles()
public java.io.InputStream open()
throws java.io.IOException,
org.apache.hc.client5.http.HttpResponseException,
java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException,
javax.crypto.NoSuchPaddingException,
java.security.InvalidKeyException,
org.apache.hc.client5.http.ClientProtocolException,
java.security.InvalidAlgorithmParameterException
java.io.IOExceptionorg.apache.hc.client5.http.ClientProtocolExceptionjava.security.NoSuchAlgorithmExceptionjava.security.NoSuchProviderExceptionjavax.crypto.NoSuchPaddingExceptionjava.security.InvalidKeyExceptionjava.security.InvalidAlgorithmParameterExceptionorg.apache.hc.client5.http.HttpResponseExceptionpublic java.io.InputStream openPatch()
throws org.apache.hc.client5.http.HttpResponseException,
java.io.IOException
org.apache.hc.client5.http.HttpResponseExceptionjava.io.IOExceptionpublic java.io.InputStream openPatch(de.onyxbits.raccoon.proto.AppFileMetadata afm)
throws org.apache.hc.client5.http.HttpResponseException,
java.io.IOException
afm - should be obtained by iterating over
#getAdditionalFiles()org.apache.hc.client5.http.HttpResponseExceptionjava.io.IOExceptionpublic java.io.InputStream open(de.onyxbits.raccoon.proto.AppFileMetadata afm)
throws org.apache.hc.client5.http.HttpResponseException,
java.io.IOException
afm - should be obtained by iterating over
#getAdditionalFiles()org.apache.hc.client5.http.HttpResponseExceptionjava.io.IOExceptionpublic java.io.InputStream open(de.onyxbits.raccoon.proto.SplitDeliveryData sdd)
throws org.apache.hc.client5.http.HttpResponseException,
java.io.IOException
sdd - should be obtained by iterating over
#getSplitFiles()org.apache.hc.client5.http.HttpResponseExceptionjava.io.IOExceptionpublic java.io.InputStream openPatch(de.onyxbits.raccoon.proto.SplitDeliveryData sdd)
throws org.apache.hc.client5.http.HttpResponseException,
java.io.IOException
sdd - should be obtained by iterating over
#getSplitFiles()org.apache.hc.client5.http.HttpResponseExceptionjava.io.IOException