2013-08-14 19 views
5

Desidero creare un'app di grandi dimensioni, da distribuire a un gruppo specifico di utenti all'esterno del Play Store. Ho intenzione di installare questo tramite ADB, ma non riesco a trovare informazioni difficili sui limiti di dimensione.Limiti di installazione APK al di fuori di Google Store

Ho creato un semplice apk di test e scaricato 1.8 GB di contenuto nella cartella delle risorse. ADB lancia il seguente errore:

could not allocate buffer for 'sizetest.apk' 

Ho provato questo su un dispositivo con 7 GB di spazio libero, quindi mi chiedo che fine questo errore proviene. È la memoria del dispositivo/memoria di sistema/memoria del dispositivo/memoria del mio PC/ADB stesso e c'è un rimedio?

+0

Inoltre, ho provato a copiare il file direttamente sul dispositivo e installarlo tramite un file manager. Questo è riuscito (anche se ci voleva un'età). Quindi è un problema con ADB in particolare? –

+0

Hai controllato la quantità di memoria interna disponibile sul dispositivo? –

risposta

4

Questo era un problema con ADB. Utilizzare ADB per verificare che il file fosse un APK e leggere l'intero file in memoria prima dell'installazione. Ciò potrebbe causare mallac per restituire NULL, chiudere la sessione ADB (vedere file_sync_client.c righe 335-341).

Questo è stato risolto here.

Remove support for verifying APK before sending across wire, since it was reading the entire APK into memory (!) before sending.


Ho creato un progetto semplice ciao mondo e ha creato un file di grandi dimensioni (1,8 GB) e ha aggiunto il file al patrimonio. ADB ha installato correttamente l'APK sul mio dispositivo.

Fintantoché lo spazio disponibile sul dispositivo è sufficiente, l'APK deve essere installabile. Se ricevi ancora l'errore could not allocate buffer for 'APK', aggiorna adb.

limiti

DEX:

L'unica limitazione di dimensione che conosco è la dimensione del file dex. Se un file dex (classes.dex nel tuo APK) supera i 5 MB e deve essere installato su Froyo o Gingerbread, l'installazione fallirà. Le versioni recenti di Android utilizzano un buffer da 8 o 16 MB. È possibile utilizzare multidex per risolvere questo problema. Tuttavia, probabilmente non dovrai preoccuparti delle dimensioni del tuo file dex (more info).

0

Questa potrebbe non essere una buona risposta o quello che stai cercando. Ma potrebbe essere un lavoro decente in giro. Potresti impacchettarlo come parte di una rom Android personalizzata, quindi flashare la rom sui dispositivi su cui hai intenzione di installarlo.

+0

In fin dei conti è quello che finirò per fare. Per l'interim, per i test interni e la distribuzione limitata ho bisogno di un metodo di installazione affidabile. –

+0

utilizzando la VM Android fornita con ADK non funziona? Io uso il plugin ADK Eclipse che richiama l'applicazione su una VM semplicemente premendo F5 o il pulsante Esegui. –

+0

Ci deve essere un modo per far lampeggiare una ROM personalizzata sulla VM. Onestamente sono davvero più curioso di sapere che tipo di app è questa. –

0

controlla questo link, potrebbe aiutare: Android and the strange world of APK sizes

+0

Grazie, ma che si riferisce principalmente alla distribuzione del negozio. Avevo preso in considerazione i file di espansione ma da ciò che ho letto qualsiasi risorsa in questi sono disponibili per altre applicazioni. –

Problemi correlati