venerdì 19 giugno 2015

Aggiungere directory raw in Android Studio


La directory /raw non e' creata di default da Android Studio.
Per includerla si deve cliccare destro sull'albero del progetto /New/Android resource directory



e poi selezionara rae dal secondo menu a tendina



Includere librerie aar in Android Studio

In questo post viene descritto come includere librerie Android in formato aar in un progetto di Android Studio. Per questo esempio viene indicato come installare Android Beacon Library

1) Esempio 1 : partendo dal file aar

In questo caso si scarica in locale il file aar dal sito del produttore


Dal progetto precedentemente create si clicca destro per New/Module


Selezionando Import Jar or Aar Package


Per selezionare il file si usa il quadratino all'estrema destra della prima casella di testo

Al termine si osserva che compare la nuova libreria nell'albero del progetto

Per includere la nuova libreria nella catena di compilazione di Gradle si deve editare il file build.gradle relativo al Modulo app (attenzione, esistono diversi file build.gradle all'interno di un progetto Android Studio) come indicato dalla riga evidenziata

-----------------------------------------------
apply plugin: 'com.android.application'

android {
    compileSdkVersion 21    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId "luca_innocenti.nearbeewear"        minSdkVersion 21        targetSdkVersion 21        versionCode 1        versionName "1.0"    }
    buildTypes {
        release {
            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.support:wearable:1.2.0'    compile 'com.google.android.gms:play-services-wearable:7.5.0'    compile 'org.altbeacon:android-beacon-library:2+'}
-----------------------------------------------

1) Esempio 2 : usando un repository remoto

al posto di installare la libreria in locale si puo' richiederla al momento della compilazione da un server remoto. Per ottenere cio' basta indicare l'indirizzo del server remoto ed il nome della libreria che si vuole includere sempre nel file build.gradle del modulo dell'applicazione (vedi parti in giallo)
Per seguire questa strada e' necessario che la macchina di sviluppo sia sempre connessa con Internet

-----------------------------------------------
apply plugin: 'com.android.application'

android {
    compileSdkVersion 21    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId "luca_innocenti.beacontrasmitter"        minSdkVersion 21        targetSdkVersion 21        versionCode 1        versionName "1.0"    }
    buildTypes {
        release {
            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }
    }
}
final def var = repositories {
    jcenter{
        url "http://jcenter.bintray.com/"    }
}
var

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.support:wearable:1.2.0'    compile 'com.google.android.gms:play-services-wearable:7.5.0'}dependencies {
    compile 'org.altbeacon:android-beacon-library:2+'}




Crash su sottomissione ad Apple Store


Oggi una sorpresa. Mandando in verifica una app su Apple Store con la stessa procedura che ho fatto solo un paio di giorni fa XCode ha crashato in modo non recuperabile


Chiudere ed aprire Xcode non serve a niente e nemmeno reinstallarlo

La soluzione arriva da questo link: si deve archiviare l'applicazione, lanciare Organizer, chiudere il progetto nella finestraa principale di XCode lasciando aperto Organizer e solo a questo punto si effettua l'upload su Apple Store

Ancora devo capire perche' continuo a pagare soldi per questo tipo di servizio....

giovedì 18 giugno 2015

Settare il tempo su Centos 7

Un piccolo promemoria su come settare il tempo su Centos
Per prima cosa si deve settare/modificare la propria timezone mediante il comando


timedatectl set-timezone Europe/Rome (Italia)
timedatectl set-timezone Etc/UTC (UTC)


per sincronizzare l'orologio con un servizio NTP si deve configurare il file /etc/ntp.conf con l'indirizzo di un timeserver ed aggiornare la regola del firewall

firewall-cmd --add-service=ntp --permanent 
firewall-cmd --reload
systemctl start ntpd

Disinstallare applicazioni da Android Wear

Per disinstallare applicazione da Android Wear non esiste un sistema integrato all'interno dell'orologio.




Se si ha l'applicazione/installer sul telefono basta agire sul telefono che la modifica si replica anche sull'orologio ma se si sta per esempio sviluppando una applicazione in proprio questa strada non risulta applicabile

Ci viene quindi in aiuto adb ma si deve conoscere il nome reale del pacchetto installato (e non il nome dell'applicazione)

Per listare le applicazioni installazione sull'orologio si puo' digitare

adb shell
pm list packages

diciamo che il pacchetto che si vuole disinstallare luca_innocenti.soundwear si esce dalla shell e si digita

adb uninstall luca_innocenti.soundwear

queste istruzioni funzionano se l'orologio e' collegato via USB (ovvero se e' collegato sulla sua basetta). Se invece il debug e' avviato via bluetooth si deve procedere con


adb forward tcp: 4444 local abstract: / adb hub 
adb connect localhost: 4444 
adb devices a
db-s localhost: 4444 shell 
pm list packages 
adb -s localhost: 4444 uninstall luca_innocenti.soundwear

lunedì 15 giugno 2015

Android Wear con Eclipse


Ho un vecchio progetto (vecchio per modo di dire ... ma nell'informatica un anno ha una valenza un po' particolare) in Eclipse a cui volevo aggiungere il supporto ad Android Wear senza trasportare tutto in Android Studio

La procedura per impostare l'ambiente di sviluppo non e' molto lineare e deriva da quanto descritto a questo link

Per prima cosa da Sdk Manager deve essere aggiunto il Google Repository


Una volta terminato il download si deve andare nella directory del proprio SDK ed in particolare in

./extras/google/m2repository/com/google/android/support/wearable/1.0.0/wearable-1.0.0.aar
copiare il file .aar, rinominarlo in .zip e decomprimerlo (attenzione esiste anche un file wearable-1.0.0.jar da non usare)
Dopo lo scompattamento si entra nella cartella, si crea un directory libs e vi si copia il file classes.jar



Si apre quindi Eclipse e si importa la directory con File/New/Project/Android Project From Existing Code
Dopo l'importazione si clicca destro sulla directory wearable-1.0.0. /Properties/Android, si flagga IsLibrary, Apply, Ok e da questo punto in poi e' stato aggiunto il supporto di Android Wear ad Eclipse



Per aggiungere il supporto ad Android Wear ad un progetto si clicca sulle proprieta' del progetto/Android e si aggiunge la libreria wereable




giovedì 4 giugno 2015

ISS Spotting 1 giugno 2015

Grazie ad un passaggio quasi zenitale, l'assenza di nuvole ed un orario non impossibile (22:30) ho provato a riprendere la ISS (dopo i tentativi del 2013 e 2014)

Questa volta mi sono organizzato con una Pentax Mz con un tempo di apertura di 30 secondi e sensibilita' a 3200 ASA ed un Fuji Lumix DMC LS 5 in modalita' ripresa video (la prima montata su cavalletto la seconda semplicemente appoggiata per terra rivolta verso l'alto)

Pentax modificata aumentando il contrasto

video da Fuji (da vedere a tutto schermo alla massima qualita')

Opencv camera calibration in cpp

Oltre che con uno script Python come visto qui la calibrazione della camera si puo' fare anche con il programma in CPP Questo il proce...