AspectJ e Android: usare la AOP in Android

La possibilità di iniettare pezzi di codice in classi e metodi compilati (diventata nota con il nome di Aspect Oriented Programming), sia in modo statico che a tempo di esecuzione, può rivelarsi qualcosa di molto utile. Pensiamo ad esempio a quelle situazioni in cui non è possibile utilizzare un debugger o un profiler, come nel caso di librerie proprietarie dove il codice sorgente non è disponibile o ai cosiddetti “crosscutting concerns” come il logging ed il performance monitoring.

Trovare informazioni su questo argomento e sui suoi possibili utilizzi, vantaggi e svantaggi ormai è solo questione di una piccola ricerca su Google, per cui non mi ci dilungherò (vi consiglio a tal proposito l’articolo da cui ho tratto la mia introduzione).

La libreria di riferimento è possibile trovarla al sito http://code.google.com/p/android-aspectj/, dove c’è anche il link ad un articolo che spiega come utilizzarla in un’applicazione Android modificando il file “build.xml”.

Quello che volevo segnalare però con questo post è un’altra tecnica basata sulla modifica del file “.project”. Tale tecnica è molto più semplice e permette di avviare direttamente da Eclipse il nostro progetto Android-AspetcJ. Vi riporto qui un esempio di file “.project”:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ExampleProject</name>
<comment></comment>
<projects></projects>

<buildSpec>

<buildCommand>
<name>org.eclipse.ajdt.core.ajbuilder</name>
<arguments></arguments>
</buildCommand>

<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments></arguments>
</buildCommand>

<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments></arguments>
</buildCommand>

<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments></arguments>
</buildCommand>
</buildSpec>   

<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.ajdt.ui.ajnature</nature>
</natures>

</projectDescription>

Buona sperimentazione! :-)

Cancellare ricorsivamente le directory .svn

Questo piccola riga di comando permetterà di rimuovere da una cartella e tutte le sottocartelle le directory .svn create dal controllo versione subversion

rm -rf `find . -type d -name .svn`

Qui potete trovare l’articolo originale.

Certificati WPA-Enterprise su Android

Ecco la mia nuova applicazione che permette di installare certificati per reti WPA-Enterprise su Android in modo facile. Si chiama “Android Certificate Installer”.

La potete trovare qui.

Buon divertimento!

Kolor For Kids

Un’altra mia release su Google Play.

https://play.google.com/store/apps/details?id=it.nicola_amatucci.android.kolor_for_kids

Prendete un’immagine da colorare per il vostro bambino (o anche per voi :-P ) e caricatela sul vostro smartphone o tablet e… lasciatelo colorare :-D

Buon divertimento! :-D

Le mie prime app pubblicate sull’Android Market

Ecco le mie prime app pubblicate sull’Android Market, oggi noto come Google Play.

Ecco il link a cui potete trovarle:

https://play.google.com/store/apps/developer?id=Nicola+Amatucci

Mentre il loro codice sorgente è disponibile su GitHub:

https://github.com/nicola-amatucci/Game-Progress-Backup

https://github.com/nicola-amatucci/Market-Large-Apps-Download-Fix

:-)

Ubuntu GNOME Shell Remix 12.04 Released

Con l’uscita di Ubuntu 12.04 Precise Pangolin ecco uscire anche la versione personalizzata con Gnome 3! La consiglio a chi di Unity ne ha fin sopra ai capelli o come alternativa a Kubuntu!

La potete scaricare da qui!

Buon divertimento!!!

Eclipse, Android e @Override

A qualcuno è mai capitato che dopo aver importato un progetto Android in Eclipse ed utilizzato “Fix Project Properties”, sebbene fosse al 100% corretto, venissero segnalati centinaia e centinaia di errori in corrispondenza dell’annotazione @Override?

Certo! La risposta è degna di Capitan Ovvio, eppure è un dubbio che assilla tanti e tanti programmatori, anche non alle prime armi (aggiungo, pigri :-P ). Dunque, eccola!

Root del Galaxy Tab 10.1 WiFi 7510 e calibrazione della sensibilità dello schermo con TouchScreenTune per supportare un pennino capacitivo

Ho fatto il root di un Galaxy Tab 10.1 7510 per renderlo adatto all’utilizzo con un pennino capacitivo, mediante un’applicazione che, grazie ai permessi di root, permette di configurare appositamente il touch screen.

Libreria Android per scoperta di server su rete locale tramite UDP

Mi sono trovato ad affrontare il problema di dover scoprire automaticamente i server disponibili in rete locale da un dispositivo Android. Ne è venuta fuori un libreria che può rappresentare una buona base di partenza per le vostre applicazioni; la potete trovare qui:

https://github.com/nicola-amatucci/Android-UDP-Auto-Discovery

Spero vi sia utile. Have Fun! :-)

JVM Monitor – Java profiler integrated with Eclipse

 

Perché il mio processore corre al 100%? C’è qualcosa che non va con la mia memoria? Se queste sono alcune delle domande che vi assillano, JVM Monitor può essere un’adeguata risposta.