2013-03-08 19 views
20

Sono interessato a realizzare app Android su richiesta. A seconda della richiesta dei clienti, il mio sito web mi invierà un file JSON diretto a un'applicazione Windows che ho creato in Delphi. Questo salverebbe il file all'interno della cartella sorgente dell'app Android e poi, eseguirà una riga di comando che dice al compilatore Android di generare il file APK e inviarlo al mio client, tutto ciò senza la mia presenza.Come compilare l'APK dalla riga di comando?

Il progetto Android è stato creato con MotoDev. E usa l'SDK di Android che è nella mia radice.

Come devo configurare la riga di comando per ottenere questo dall'interno del mio programma Delphi?

Devo anche modificare il manifest per inserire un nuovo numero di versione in modo che non sia in conflitto con la versione di altri client.

risposta

31

Android utilizza il sistema di build Ant, quindi è possibile creare un file build.xml e build.properties per il progetto.

È necessario creare il file build.xml prima però:

android update project -p . 

Questo genererà un file build.xml. Probabilmente dovresti personalizzare i passi e i target di costruzione per il tuo progetto. Una buona idea nel tuo caso sarebbe quella di avere il file build.properties generato dal tuo sito web per la build specifica ... Quindi includerlo tramite il file build.xml. In particolare, sarà necessario specificare nel file build.properties in cui le chiavi di firma sono, e ciò che la password è:

Build.Properties:

key.store=keystore.dat 
key.alias=signing_key 
key.store.password=password123 
key.alias.password=password123 

Il processo di generazione usando ant consente inoltre di fare sostituzioni variabili nei file Java, che potrebbe essere un'altra idea. Ti permetterebbe di personalizzare ulteriormente il processo di costruzione su un cliente per cliente.

Per impostazione predefinita, la build è innescato da:

ant clean 
ant release 

Un'altra idea pulito: Hanno Ant copiare il file risultante APK in una condivisione di rete accessibile dal sito inserendo una linea < copy ... /> nella sezione < target name="release" >.

+0

Quindi, questo build.properties è anche un file XML? Mi mostreresti un esempio completo di questi due file? – PSyLoCKe

+0

Come fare lo stesso in PHP Server? @Andrew –

+2

Non vedo alcun file build.xml nella mia directory di progetto esistente ... Si dice 'Dovrai creare il file build.xml' ma perché non sarebbe già stato creato se ho già compilato attraverso, diciamo ... Eclipse/ADT? – Michael

5

Creare build.xml al progetto momento della creazione

Se si avvia un nuovo progetto con:

android create project \ 
    --target 1 \ 
    --name MyName \ 
    --path . \ 
    --activity MyActivity \ 
    --package com.yourdomain.yourproject 

il file build.xml usato da ant verrà generato.

Lo strumento android è presente nella directory tools/ dell'SDK che è stato scaricato.

Creare versioni di debug

inoltre:

ant release 

per le versioni finali, è anche possibile creare versioni di debug con:

ant debug 

Location di generato apk

Gli apk generati sono posizionati sotto bin/.

Le uscite più importanti sono:

MyName-debug.apk 
MyName-release.apk 

ma alcuni apks intermedi vengono generati, in particolare le versioni non allineate e senza segno.

Ma la maggior parte del tempo si può dimenticare dove sono stati creati e basta eseguire:

ant debug install 
ant release install 

per farli installato. Ma assicurarsi che sta lavorando con adb prima: adb devices command not working

testato su Ubuntu 15.10, Android 23.