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.IOException
org.apache.hc.client5.http.ClientProtocolException
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
javax.crypto.NoSuchPaddingException
java.security.InvalidKeyException
java.security.InvalidAlgorithmParameterException
org.apache.hc.client5.http.HttpResponseException
public java.io.InputStream openPatch() throws org.apache.hc.client5.http.HttpResponseException, java.io.IOException
org.apache.hc.client5.http.HttpResponseException
java.io.IOException
public 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.HttpResponseException
java.io.IOException
public 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.HttpResponseException
java.io.IOException
public 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.HttpResponseException
java.io.IOException
public 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.HttpResponseException
java.io.IOException