Cerca con Google

Translate

29 maggio 2012

Tutorial 32 - Creazione emulatori Android da usare con App Inventor - Parte 2


In questa seconda ed ultima parte del tutorial andiamo a vedere come collegare il nostro emulatore creato con AVD al blocks editor, e le differenze di comportamento della nostra app a seconda della risoluzione impostata.

Spesso mi riportate tramite mail o commenti dei problemi nell'apertura del blocks editor, nella prima parte del video vi mostro anche come abilitare la console Java per avere più informazioni possibili su eventuali errori nel programma.


Andremo a creare tre AVD, tutte con Ice Cream Sandwich, una con risoluzione 480x800 una 240x320 ed infine una 1280x720 che simula un tablet Android.

In questi ultimi giorni ho anche riprovato per l'ennesima volta le immagini AVD in emulazione nativa x86 che dovrebbero garantire prestazioni molto più elevate nell'emulatore, purtroppo io non vedo alcuna differenza, sicuramente sarà per il mio pc non troppo potente (Dell D630).
Vi chiedo se possibile di provare anche con un immagine x86 ICS e di riportare nei commenti i vostri risultati.

Un ultima piccolissima nota prima di passare al video, in alto a destra ho inserito un pulsante per le donazioni volontarie. Visto che mi è stato chiesto da qualche utente ho ben pensato di implementare anche questa possibilità, un modo molto "pratico" per fare vedere che apprezzate il mio lavoro :)

17 commenti:

  1. Ciao, mi dai un consiglio? vorrei creare un activitystarter che chiuda l'applicazione, non voglio usare il comando "close application" ma voglio proprio terminare con l'activitystarter

    RispondiElimina
  2. ciao Salvo,ovviamente se si chiama activitystarter serve per far partire applicazioni e non per chiuderle,potresti provare a vedere se magari con l'activity si riesce a lanciare un task killer con il nome del task che vuoi chiudere,io non ci ho mai provato ma potrebbe essere un'idea...

    RispondiElimina
  3. Ciao mi chiamo nicola...
    E' d mesi che sto facendo un programmino con app inventor utilizzando pure il servizio fusion tables di google per creare una banca dati. Ho testato sempre tutto nell emulatore standard e poi sul mio galaxy s e tutto funzionava alla grande. La finalitá però del mio programmono era di utilizzarlo su un tablet, quindi ne ho preso uno cinese (supervox con android 4.0.1). Riesco ad installare l`applicazione, si avvia l applicazione, ma nel momento in cui tucco il pulsante che avvia fusion table per raccogliere i mie dati si ferma tutto e da errore.
    Ecco io ora sono disperato. Esiste un motivo? Ho cercato ingiro su forum ecc. Ma nulla. Puó darmi un aiuto?

    RispondiElimina
    Risposte
    1. Ciao Nicola, ti consiglio di collegare il tablet al tuo pc, e di lanciare il logcat (trovi diversi tutorial in rete a riguardo)
      in questo modo dovresti riuscire a vedere nel momento in cui si genera l'errore qual'è il motivo che lo ha provocato, se vuoi mandami anche il log per email
      buona fortuna!

      Elimina
    2. Ciao Nicola che errore ti restituisce ? Io ci ho sbattuto un po la testa con fusiontable che è abbastanza semplice, ma i ho parametrizzato alcune query e quindi era un po piu complessa la cosa...ma alla fine ho risolto. Saluti Enzo .

      Elimina
    3. Ciao Enzo, l errore che mi torna é "unfortunately. Android system has stopped." Non credodo sia un problema dei nel modo in cui ho utilizzato fusiontable, perché nell emulatore e nello smartphone funziona alla grande. Tu per caso hai avuto modo di utilizzare fusion table con android 4?

      Elimina
  4. Ciao Sebastiano, volevo mandarti l'Apk tramite mail, ma non trovo la tua mail.

    RispondiElimina
    Risposte
    1. s e b logapps@gmail.com manda pure, sinceramente non ho ancora usato le fusiontables su android 4.
      Hai provato con un emulatore ICS a vedere se le fusiontables vanno,
      e i logcat? fammi sapere ciao

      Elimina
    2. Visto che siamo già in argomento:
      Volevo chiedere come è possibile leggere attraverso il comando Fusion Tables un file .csv memorizzato in locale (sull'app).
      Ho provato scrivendone il nome e l'estensione ma niente da fare riporta errore.
      Perchè dovrei memorizzare ti otto centinaia di domande e risposte e in una lista mi sa un po' dura... :D
      Alternativamente potrei provare a leggere un file .xml?

      Elimina
    3. Ciao Pino,FusionTable non legge da un file locale ma da una Fusion Table memorizzata nel web (guarda la homepage di Google fusion table per saperne di più)
      se hai molti dati da caricare che sappia io forse la soluzione migliore è metterli in un documento google spreadsheet, poi da google docs puoi pubblicare il tuo foglio di lavoro in csv e la tua app può facilmente leggere questi dati.
      Ovviamente l'app dovrà avere accesso a internet, quindi purtroppo offline non si può fare nulla (non si può leggere dalla sd card insomma...) :(

      Elimina
  5. Ciao complimenti per le tue guide, tutorial, sono molto utili. Ho installato l'emulatore android, come da te indicato sdk manager, avd manager, java se, seguendo tutte le info da te date, sun un pc acer aspire one, con sistema operativo windows7. Sembra che vada tutto bene, però quando lancio avd manager e faccio partire l'emulatore android, si apre la finestra con a destra la tastiera e a sinistra lo schermo con sfondo nero e la scritta android presente. Ora tu ne video dice che ci vuole un po per caricare, ma dopo aver aspettato un'ora, purtroppo non visualizzo nulla. Rimane cioè lo sfondo nero con la scritta android e niente più. Non va avanti. Che sarà? Grazie ciao da <francesco

    RispondiElimina
    Risposte
    1. un ora è decisamente troppo :)
      fai un pò di tentativi creando altre AVD, prova sopratutto con quelle che hanno un immagine per x86 (ora mi pare ci sia android 4.0.4 e android 4.1) che essendo in emulazione nativa intel vanno molto molto più veloci.
      Poi prova a non abilitare l'accelerazione hw e gli snapshot che ogni tanto danno problemi anche a me (spunta quindi l'opzione wipe data prima di lanciare l'AVD)
      Ma l'emulatore che viene fornito con AI ti parte? se quello va, allora per fare altre AVD è solo questione di trovare i parametri giusti

      Elimina
  6. io sono nella stessa situazione, ma ame non partiva nemmeno quello di appinventor.
    Cosa Faccio ?

    RispondiElimina
  7. Ciao, se io voglio salvare dei dati uscenti di una applicazione da me creata con app inventor in un file csv come faccio?

    Per esempio, se io ricevo questi dati su una mia applicazione:
    Automobili: 34
    Corriere: 11
    Camion: 12

    e voglio trasferirli su un file csv?

    Grazie.

    RispondiElimina
    Risposte
    1. potresti provare a scrivere i dati su google docs, oppure su una fusion table ,
      scrivere direttamente in csv non credo sia ancora possibile in AI.
      Prova a vedere questo interessante tutorial che spiega come scrivere su un google docs:
      http://puravidaapps.com/taifunGS.php
      so che non è semplice, al momento non penso di fare un tutorial a riguardo ma aspetto piuttosto che venga inserito un componente per la scrittura di file sulla sd.
      ciao

      Elimina
  8. Comunque sebastiano la curiosità del kawa:2 ed etc... te a dico io.

    In pratica il block's editor carica tutti i dati sull'emulatore o il proprio telefono una volta caricato il programma attende una risposta del dispositivo confermando che ha ricevuto i file e così attende n codice mandatogli prima cioè kawa:(variable) variabile in che senzo che ogni 2 secondi circa attende un nuovo codice maggiore del primo faccio un esempio:

    kawa:1

    dopo 2 sec

    kawa:2

    e cosi via..


    Spero di essere stato chiaro

    Onestamente non so perchè abbiano scelto come nome KAWA ma la MITaicompanion avrà i suoi motivi

    RispondiElimina
    Risposte
    1. Non esattamente, KAWA è un linguaggio di programmazione su cui hanno basato MIT App Inventor
      (http://www.gnu.org/software/kawa/index.html)
      ecco perchè scrive kawa:1 , kawa:2 , etc...
      penso siano degli "step" di controllo per verificare che tutti i componenti dell'applicazione vengano scaricati correttamente sul telefono per far girare la nostra app.
      Ad ogni modo grazie del contributo :)

      Elimina