Manuales

Control de dispositivos VISA a través de Ethernet en Linux

Gran parte de los equipos utilizados en sistemas de telecomunicaciones como los analizadores de espectros, osciloscopios, etc. han utilizado mayormente el sistema GPIB para comunicarse entre ellos y un PC.

GPIB es un estándar de bus digital con corto alcance diseñado por HP para conectar dispositivos de teste y medidas con PCs. Este sistema fue diseñado para ser robusto y fiable en entornos industriales, pero tiene el problema que en sistemas GNU/Linux su integración no es trivial (instalación de módulos en el kernel…) y su mantenimiento es cuestionable. Aparte como se he comentado, es un bus de corto alcance, lo cual establece ciertas limitaciones lógicas que no permite aprovechar el nivel tecnológico actual, como podría ser controlar un analizador de espectro remoto a través de una conexión 3G.

Es por eso que cada vez mas equipos disponen de una interfaz Ethernet que ofrecen nuevas funcionalidades de control y diseño de infraestructuras de control y medida.

El protocolo utilizado para controlar dichos dispositivos es conocido como VXI11. aunque en muchos caso lo mas fácil es buscar por Ethernet VISA (Virtual Instrument Software Architecture) que es el estándar que engloba todo los protocolos de control de hardware de medida.

En esta pagina encontrareis mas información sobre VXI11 y referencias a las empresas implicadas en el desarrollo y mantenimientos de estas tecnologías. Además se encuentra el código fuente en el que nos basaremos para nuestro howto.

El código que podéis descargar aquí es el mismo que esta en la pagina anterior, salvo que se han añadido los archivos libvxi11.cpp y libvxi11.h y se ha modificado el Makefile para generar la librería libvisa.so

http://dl.dropbox.com/u/15629561/ikeralbeniz.net/libvisa_src.zip

El contenido de libvxi11.cpp es el siguiente:


#include "libvxi11.hpp"

#define BUF_LEN 100000

using namespace std;

CLINK		*clink;

extern "C" int visaConnect(const char * device_ip)
{
    clink = new CLINK;
    int response = -1;
    try {
        response=vxi11_open_device(device_ip,clink);
    }catch( char * str ) {
      cout << "Exception raised: " << str << '\n';
    }
    return response;
}

extern "C" int visaSend(const char * command)
{
    int response= vxi11_send(clink, command);
    return response;
}

extern "C" long visaReceive(char buffer[], int buffer_length)
{
    long bytes_returned = vxi11_receive(clink, buffer, BUF_LEN);
    return bytes_returned;
}

extern "C" int visaClose(const char * device_ip)
{
    int response=vxi11_close_device(device_ip,clink);
    return response;
}

Lo único que hacemos es exponer cuatro funciones básicas para el manejo de equipos de medida a través de Ethernet/VXI11.

En caso de querer utilizar esta librería en c++ solo seria necesario incluir el archivo libvxi11.h y la librería libvisa.so.

#ifndef LIBVXI11_HPP_INCLUDED
#define LIBVXI11_HPP_INCLUDED

#include <iostream>
#include "vxi11_user.h"

using namespace std;

extern "C" int visaConnect(const char * device_ip);
extern "C" int visaSend(const char * command);
extern "C" long visaReceive(char buffer[], int buffer_length);
extern "C" int visaClose(const char * device_ip);



#endif // LIBVXI11_HPP_INCLUDED

En caso de querer usarlo en .Net deberíamos crear una clase VISA y mediante DLLImport exponer los mismos métodos.

using System;
using System.Text;
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.IO;

namespace MyProject
{
	public class VISA
	{
		public const string libpath = "libvisa.so";
			
		[DllImport(libpath)]
		public static extern int visaConnect(string device_ip);		
			
		[DllImport(libpath)]
		public static extern int visaSend(string command);
			
		[DllImport(libpath)]
		public static extern int visaReceive(byte[] buffer, int buffer_length);
			
		[DllImport(libpath)]
		public static extern int visaClose(string device_ip);
	}
}

Espero que este post os sea de gran ayuda.

Configura tu propio Servidor de Streaming como Spotify

En muchas oficinas es más que habitual ver trabajadores usando Spotify desde el ordenador de trabajo. En otras muchas, este servicio esta capado ya que en caso de que muchos usuarios usen el servicio a la vez, puede no ser despreciable el consumo de ancho de banda que realiza esta aplicación. Como apunte decir, que aunque mucha gente no lo sepa, Spotlfy es un servicio P2P es decir, tu además de descargar sirves música que has escuchado y que esta cacheada en tu ordenador, y así, Soptify no tiene que hacer frente a todo el trafico de streaming y, por tanto, tampoco tiene que hacer frente a ese coste.

Por todo estoy y muchos mas, es probable que en muchos entornos (o incluso en tu propia casa) sea interesante disponer de un servidor de streaming propio dentro de la red local. Para eso usaremos FireFly Media Server (antes llamado mt-daapd) que hace uso del protocolo DAAP desarrollado por Apple y usado por iTunes para compartir música. El protocolo DAPP no es abierto, ya que Apple nunca lo ha liberado, pero mediante ingeniería inversa ha sido posible conocer su funcionamiento y desarrollar una implementación compatible.

Además el protocolo DAAP es soportado, aparte de por iTunes, por un gran numero de reproductores multimedia, con lo que es posible usar este servicio desde distintas plataformas:

  • GNU/Linux
    • Rhythmbox
    • Banshee
    • Exaile)
    • Frostwire
    • Amarok
  • OS X
    • iTunes
    • Frostwire
  • Windows

    • Winamp
    • iTunes
    • Frostwire

      Instalar y Configurar FireFLy

      Lo más cómodo y sencillo para instalar nuestro servidor de streaming es usa como sistema operativo una distribución de Unbuntu, a poder ser, que sea una Ubuntu Server. No vamos a explicar como instalar una distribución de Ubuntu Server, ya que el proceso es bastante sencillo y existe bastante material en Internet.

      Lo primero que vamos a hacer es instalar SSH para que los usuarios puedan acceder a sus directorios HOME mediante SFTP con clientes como WinSCP para Windows. De esta manera cada usuario tendrá su música en el directorio /Home/Usuario.

      [code lang="bash"]
      apt-get install ssh
      [/code]

      Esta configuración tiene lo bueno de que puedes asignar una cuota de disco a cada usuario y así no haya problemas de comparición de espacio. Pero por otro lado corres el riesgo de que mucha música este duplicada, por tanto, si sois pocos o es para ti solo, puedes utilizar un único usuario (la configuración es la misma).

      Ya solo nos queda instala el FireFly que a través de apt-get hay que instalarlo a través del nombre antiguo mt-daapd.

      [code lang="bash"]
      apt-get install mt-daapd
      [/code]

      Una vez finalizada la instalación ya tenemos el servicio de streaming activo y funcionando, es mas, si abrimos atunes veremos que ya nos aparece una lista vacía. Pero nos faltara cambiar la configuración para indicarle de donde leer la musica, nombre de la lista, etc.. para lo cual editaremos el archivo de configuración de mt-daapd:

      [code lang="bash"]
      vi /etc/mt-daapd.conf
      [/code]

      [code lang="bash"]
      # $Id: mt-daapd.conf.templ 1660 2007-09-12 13:08:04Z rpedde $
      #
      # This is the mt-daapd config file.
      #
      # If you have problems or questions with the format of this file,
      # direct your questions to rpedde@users.sourceforge.net.
      #
      # Questions and discussions about the format and content of this
      # config file can probably be obtained by consulting the wiki:
      #
      # http://wiki.fireflymediaserver.org/Config_File
      #
      # Or by asking questions on the forums at
      #
      # http://forums.fireflymediaserver.org
      #
      #

      [general]

      #
      # web_root (required)
      #
      # Location of the admin web pages.
      #
      # If you installed from .RPM, .deb, or tarball with --prefix=/usr, then
      # this is correct.
      #
      # If you installed from tarball without --prefix=/usr, then the correct
      # path is probably /usr/local/share/mt-daapd/admin-root.
      #

      web_root = /usr/share/mt-daapd/admin-root

      #
      # port (required)
      #
      # What port to listen on. It is possible to use a different
      # port, but this is the default iTunes port
      #

      port = 3689

      #
      # admin_pw (required)
      #
      # This is the password to the administrative pages
      #

      admin_pw = mt-daapd

      #
      # db_type (required)
      #
      # This is what kind of backend database to store the song
      # info in. Valid choices are "sqlite" and "sqlite3".
      #

      db_type = sqlite3

      #
      # db_parms
      #
      # This is any extra information the db needs to connect.
      # in the case of sqlite and sqlite3, this is the name
      # of the directory to store the database in
      #
      # If you installed from RPM or .deb, this path likely already
      # exists. If not, then you must create it. The directory itself
      # must be writable by the "runas" user.
      #

      db_parms = /usr/var/cache/mt-daapd

      #
      # mp3_dir (required)
      #
      # Location of the mp3 files to share. Note that because the
      # files are stored in the database by inode, these must be
      # in the same physical filesystem.
      #

      mp3_dir = /home

      #
      # servername (required)
      #
      # This is both the name of the server as advertised
      # via rendezvous, and the name of the database
      # exported via DAAP. Also know as "What shows up in iTunes".
      #

      servername = MyMusic

      #
      # runas (required)
      #
      # This is the user to drop privs to if running as
      # root. If mt-daapd is not started as root, this
      # configuration option is ignored. Notice that this
      # must be specified whether the server is running
      # as root or not.
      #
      # This is also ignored on Windows.
      #

      #runas = mt-daapd
      runas = root

      #
      # password (optional)
      #
      # This is the password required to listen to MP3 files
      # i.e. the password that iTunes prompts for
      #

      #password = mp3

      #
      # extensions (optional)
      #
      # These are the file extensions that the daap server will
      # try to index and serve. By default, it only indexes and
      # serves .mp3 files. It can also server .m4a and .m4p files,
      # and just about any other files, really. Unfortunately, while
      # it can *attempt* to serve other files (.ogg?), iTunes won't
      # play them. Perhaps this would be useful on Linux with
      # Rhythmbox, once it understands daap. (hurry up!)
      #
      # Failing that, one can use server-side conversion to transcode
      # non-standard (.ogg, .flac) music to wav on the server side.
      # See the ssc_* options below.
      #
      # To be able to index .ogg files, you'll need to have configured
      # with --enable-oggvorbis. For .flac, --enable-flac, for .mpc,
      # --enable-musepack.
      #

      extensions = .mp3,.m4a,.m4p,.ogg,.flac,.mpc

      #
      # ssc_codectypes (optional)
      #
      # List of codectypes for files that the daap server should
      # perform internal format conversion and present to clients
      # as WAV files. The file extensions that these codectypes correspond
      # to must also be present in 'extensions'
      # configuration value, or files are not probed in the first
      # place.
      #
      # Valid codectypes:
      #
      # mp4a - for AAC (.aac, .mp4, .m4a, .m4p)
      # mpeg - for mp3
      # wav - for wav
      # wma - for wma
      # ogg - for ogg
      # flac - for flac (.flac, .fla)
      # mpc for musepack (.mpc, .mpp, .mp+)
      # alac for alac (.m4a)
      #

      # Not needed because ffmpeg is enabled (all file types transcoded to wav.
      # If this behavior is undesired, see the [plugins] section and disable it,
      # or selectively disable codecs below with the never_transcode option.)
      # -joshk
      # ssc_codectypes = ogg,flac,alac

      # never_transcode (optional)
      # Comma separated list of formats to never transcode. (Nothing by default)
      # never_transcode = ogg

      #
      # ssc_prog (optional)
      #
      # Program that is used in server side format conversion.
      # Program must accept following command line syntax:
      # ssc_prog filename offset length ...
      # Parameter filename is the real name of the file that is
      # to be converted and streamed, offset is number of bytes
      # that are skipped from the beginning of the _output_ file
      # before streaming is started, length is length of the song
      # in seconds (or zero). All other possible arguments must
      # be ignored. The resulting wav file (or the rest of
      # the file after initial seek) is written to the standard
      # output by the ssc_prog program. This is typically
      # a script that is a front end for different conversion tools
      # handling different formats.
      #

      # ssc_prog = /usr/bin/mt-daapd-ssc.sh

      #
      # logfile (optional)
      #
      # This is the file to log to. If this is not configured,
      # then it will log to the syslog.
      #
      # Not that the -d switch will control the log verbosity.
      # By default, it runs at log level 1. Log level 9 will churn
      # out scads of useless debugging information. Values in between
      # will vary the amount of logging you get. However, you must log
      # to a file to see this debugging information (debug information will
      # not appear in syslog.)
      #

      #logfile = /var/log/mt-daapd.log

      #
      # rescan_interval
      #
      # How often to check the file system to see if any mp3 files
      # have been added or removed.
      #
      # if not specified, the default is 0, which disables background scanning.
      #
      # If background rescanning is disabled, a scan can still be forced from the
      # "status" page of the administrative web interface
      #
      # Setting a rescan_interval lower than the time it takes to rescan
      # won't hurt anything, it will just waste CPU, and make connect times
      # to the daap server longer.
      #
      #

      #rescan_interval = 300

      # always_scan
      #
      # The default behavior is not not do background rescans of the
      # filesystem unless there are clients connected. The thought is to
      # allow the drives to spin down unless they are in use. This might be
      # of more importance in IDE drives that aren't designed to be run
      # 24x7. Forcing a scan through the web interface will always work
      # though, even if no users are connected.

      # always_scan = 0

      #
      # scan_type
      #
      #
      # This sets how aggressively mp3 files should be scanned to determine
      # file length. There are three values:
      #
      # 0 (Normal)
      # Just scan the first mp3 frame to try and calculate size. This will
      # be accurate for most files, but VBR files without an Xing tag will
      # probably have wildly inaccurate file times. This is the default.
      #
      # 1 (Aggressive)
      # This checks the bitrates of 10 frames in the middle of the song.
      # This will still be inaccurate for VBR files without an Xing tag,
      # but they probably won't be quite as inaccurate as 0. This takes
      # more time, obviously, although the time hit will only happen the
      # first time you scan a particular file.
      #
      # 2 (Painfully aggressive)
      # This walks through the entire song, counting the number of frames.
      # This should result in accurate song times, but will take the most
      # time. Again, this will only have to be incurred the first time
      # the file is indexed.
      #

      scan_type = 2
      logfile = /var/log/mt-daapd.log

      #
      # compress
      #
      # Whether to use gzip content-encoding when transferring playlists etc.
      # This was contributed as a patch by Ciamac Moallemi just prior to the 0.2.1
      # release, and as such, hasn't gotten as much testing as other features.
      #
      # This feature should substantially speed up transfers of large databases
      # and playlists.
      #
      # It will eventually default to 1, but currently it defaults to 0.
      #

      #compress = 0

      [plugins]
      plugin_dir = /usr/lib/mt-daapd/plugins
      plugins = rsp.so,ssc-ffmpeg.so

      [scanning]

      # should playlists be processed at all?
      #
      process_playlists = 1

      # should itunes xml files be processed?
      #
      process_itunes = 1

      # should m3u files be processed?
      #
      process_m3u = 1
      [/code]

      Las partes mas importante son:

      • port: el puerto en el que accederemos a la consola web (http://ipdelamaquina:3639/)
      • admin_pw: la contraseña de admin (para acceder a la cosola web, user: mt-daapd)
      • servername: el nombre de la lista que nos aparecera en Itunes
      • mp3_dir: directorio de donde leer los mp3 u otros formatos.. En nuestro caso cada usuario alojara la música en su /home/usuario por lo que indicaremos que el directorio donde deberá buscar la música será /home

      El resto de parámetros no es necesario que los toquéis para un primer servidor funcional.

      Ya solo nos queda subir las canciones y acceder a la consola web para forzar el escaneo pulsando “Start Scan“. Si abrimos Itunes (si ya lo tenia abierto cierra y ábrelo o recarga la lista).

      En próximas entradas os explicaré como crear listas de reproducción y os presentare un software para generar listas cómodamente que estoy terminando.

Curso sobre “Introducción a la programación en Android” en la universidad de Deusto

Los pasados día 1,2 y 3 de septiembre impartí un curso sobre “Introducción a la programación en Android” en la universidad de Deusto, dentro de los cursos de Julio Septiembre que el e-ghost y otros grupos de la universidad celebran cada año. A continuación voy a dejar un resumen de lo que se hizo y algunas referencias de webs para el que quiera seguir avanzando un  poco mas.

Introducción a la programación en Android


Día 1



El primer día se hizo una introducción de la plataforma Android: estado actual, situación del mercado, cosas a tener en cuenta a la hora de realizar una aplicación y por ultimo una breve introducción a la estructura de las aplicaciones Android. Las transparencias se pueden encontrar en los siguientes enlaces:

A pesar de que la sdk estaba prácticamente instalada (para no perder tiempo) se enseño a manejar las herramientas de la sdk y se termino de realizar la instalación de Eclipse. Podéis encontrar mas info de cómo instalar la SDK de Android en eclipse en los siguientes posts:

Dentro de los ejercicios prácticos empezamos a desarrollar un cliente sencillo de Twitter, para lo cual usando DroidDraw diseñamos la base de nuestra aplicación.

El primer día no dio para más y el código de la aplicación como quedó el día 1 esta disponible aquí.

Día 2



Seguimos con la practica del cliente Twitter, en este caso empezamos a crear las clases necesarias para rellenar el elemento ListView con los Twitts que contienen el hashtag #android (utilizando la APi de Twitter – http://search.twitter.com/search.atom?q=%23android  - ).

Por tanto creamos la clase Twitt para almacenar la información del Twitt (imagen, nombre de usuario y comentario) y convertimos el xml en un array de elementos Twitt (lo idea seria usando un parser de XML – SAXParser – pero por no perder tiempo en la practica lo hicimos a mano). Luego creamos una clase ListViewAdapter que se encargaría de recoger los elementos del array e insertarlos en el ListView utilizando una plantilla twitt.xml diseñada previamente).

El código de la aplicación como quedó el día 2 esta disponible aquí.

Día 3



Se completo la aplicación mostrando como crear menús y lanzar otros Activitys mediante Itents.

El código de la aplicación como quedó el día 3 esta disponible aquí.

Para el que quiera más…



Para el que quiera seguir avanzando les recomiendo que prueben estos ejemplos (que estaban pensados para el curso pero no dio tiempo):

Puede ser interesante que intentéis crear una aplicación con dos Tabs, en uno de los Tabs un ListView y en el segundo un mapa. Si tenéis alguna pregunta no dudéis en comentar este post para que así todas las dudas sean públicas. Si, ya, necesitáis algún ejemplo de código o algo mas completo, podéis enviarme un correo a Iker [at] ikeralbeniz [dot] net.

Crear un cliente de Gtalk con Adobe Air

Según comentan en Barrapunto Adobe lanza Flex y Air para Linux. A mi no me decía mucho, ya que conocía estas tecnologías de oídas, y la verdad es que no tenia ni idea de que se trataban.

En el artículo comentan que Air es algo similar al Prism de Mozilla, por lo que me he podido hacer una idea inicial y no he tardado en intentar hacer algún script de ejemplo.

Instalando la SDK

Lo primero que tienes que hacer es instalar el “interprete” de AIR para poder ejecutar tus aplicaciones.

http://get.adobe.com/air/
o
http://airdownload.adobe.com/air/win/download/1.0/AdobeAIRInstaller.exe

Una vez instalado el intérprete tienes que instalar la SDK que es posible descargar desde este enlace:

http://airdownload.adobe.com/air/win/download/1.0/AdobeAIRSDK.zip

Descomprimimos el ZIP y añadimos al PATH el directorio /bin

Creando un Ejemplo Básico

Creamos un Directorio llamada GTalk y dentro de este dos archivos: GTalk-app.xml y GTalk.html

Gtalk-app.xml

<?xml version=”1.0″ encoding=”UTF-8″?>
<application xmlns=”http://ns.adobe.com/air/application/1.0″>
<id>google.gmail.GTalk</id>

<version>0.1</version>
<filename>Googel Talk</filename>
<initialWindow>
<content>GTalk.html</content>

<visible>true</visible>
<width>300</width>
<height>600</height>
</initialWindow>

</application>

Donde Indicamos propiedades como el nombre de la aplicación o las dimensiones de la ventana de la aplicación.

GTakl.html

<html>
<head>
<title>Google Talk</title>
</head>

<body>
<iframe src =”http://talkgadget.google.com/talkgadget/popout” width=”100%” height=”100%” name=”gtalk” frameborder=”0″> </iframe>

</body>
</html>

Es un archivo HTML normal. En el head editamos la etiqueta titulo para definir el titulo que aparecerá en la ventana. En el body editamos una etiqueta iframe que se enlazara con el cliente flash de Gtalk propio de Google.

Si abrimos GTakl.html podemos ver que el cliente funciona correctamente.

GTalk.html en Firefox

Por tanto es hora de probar que funciona nuestro scripr de AIR. Por tanto ejecutaremos el comando ADL

$~ [ruta_air_sdk]\adl.exe GTalk-app.xml

Y veremos ejecutarse nuestra aplicación de AIR.

Gtalk ejecutandose en Adobe AIR

Finalmente “compilaremos” nuestra aplicación para generar un .air instalable y redistribuible.

Para ello deberemos primero crear un certificado.

$~ [ruta_air_sdk]\adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword

Y finalmente generar a instalador.

$~ [ruta_air_sdk]\adt -package -storetype pkcs12 -keystore sampleCert.pfx GTalk.air
GTalk-app.xml GTalk.html

Ya disponemos de una aplicación GTalk basada en Adobe AIR multiplataforma.

Instalando ANDROID + ECLIPSE en WINDOWS (2000 o XP)

En el artículo anterior explicábamos como instalar ANDROID y ECLIPSE en UBUNTU. Ahora toca el turno a Windows y puesto que la configuración de eclipse es la misma en ambos sistemas operativos solo se explicara como se instalan el SDK y ECILPSE en el ordenador.

El primer paso es instalar el SDK, para lo cual nos lo descargaremos de esta dirección:

http://dl.google.com/android/android_sdk_windows_m3-rc20a.zip

Una vez descargado y descomprimida cambiamos el nombre de la carpeta “android_sdk_windows_m3-rc20a” por “android_sdk” y la movemos a nuestro C:\Archivos de Programa\.

Para terminar la instalación solo falta añadir la ruta del SDK al path, para lo cual vamos a INICIO> Configuración > Panel de Control y entramos en Sistema.

Dentro del panel de Sistema vamos a la pestaña Opciones Avanzadas y pulsamos en Variables de Entorno

Se nos mostraran dos listas de variables: Variables de usuario para usuario y variables del sistema. En nuestro caso añadiremos una variable y cambiaremos el path en la lista de Variables del sistema para que todos los usuarios tengan acceso al SDK.

Por tanto pulsaremos en Nueva y nos aparecerá un cuadro de dialogo donde meteremos el nombre de la variable y su ruta. En el caso del SDK pondremos como nombre SDK_ROOT y la ruta C:\Archivos de Programa\android_sdk y pulsamos Aceptar. La nueva variable se añadirá a la lista.

Ya solo falta añadir la ruta al path, por tanto, buscamos la variable PATH de la lista de Variables del sistema, y pulsamos sobre ella dos veces. Se nos aparecerá el mismo cuadro de dialogo de antes peor esta vez completo con el nombre PATH un montón de rutas que están añadidas al path separadas por “;”. Por tanto añadiremos los siguiente al final del campo Valor de la variable: ;%SDK_ROOT%\tools

NOTA: no olvidar el “;” ni los “%”

Pulsamos Aceptar a todas las ventanas hasta cerrarlas todas y ya tenemos el SDK instalado.

Y asolo faltaría instalar Eclipse. Para instalar eclipse solo hay que descargarse eclipse del siguiente enlace, descomprimirlo y mover la carpeta a C:\Archivos de Programa\. (para que esté todo mas ordenado..)

A partir de aquí faltaría configurar y plugin de android para eclipse. Los pasos son idénticos que en Ubuntu así que podéis seguir los mismos pasos que se indican en el articulo anterior.

Instalando ANDROID + ECLIPSE en UBUNTU

En este artículo vamos a explicar mas detalladamente la instalación de ANDROID SDK, ECLIPSE y el PLUGIN DE ANDROID para eclipse en UBUNTU. Básicamente son las mismas instrucciones que aparecen en la pagina de google pero un poco mas comentadas y con imágenes, para que aquellos que siempre se os atraviesan las instalaciones lo tengáis mas fácil.

NOTA: En esta guía supondremos que hacemos una instalación para el usuario de nombre “user”.

Lo primero descargar ABDROID SDK, podes hacerlo con vuestro navegador o por consola con wget. Por tanto abrimos una consola y nos situamos en nuestro home. Descomprimimos y cambiamos en nombre del directorio “android_sdk_linux_m3-rc20a” por “android_sdk”

user@ubuntu:~$ wget http://dl.google.com/android/android_sdk_linux_m3-rc20a.zip
user@ubuntu:~$ unzip android_sdk_linux_m3-rc20a.zip
user@ubuntu:~$ mv android_sdk_linux_m3-rc20a android_sdk

Finalmente para terminar la instalación tendremos que añadir el SDK al path, por tanto editaremos el archivo .bashrc de nuestro /home con cualquier editor de texto (vi, gedit, kate…) y añadiremos las siguientes des lineas al final del documento:

user@ubuntu:~$ vi /home/user/.bashrc

export SDK_ROOT=/home/user/android_sdk
export PATH=$SDK_ROOT/tools:$PATH

Y atenemos el SDK instalado y es posible acceder a sus aplicaciones desde consola, por tanto ahora nos queda instalar un IDE para programar cómodamente nuestras aplicaciones. Para eso el IDE idóneo es ECLIPSE ya que existen plugins para trabajar con ABDROID de forma sencilla.

Por tanto, en caso de que no lo hubiéramos instalado, pasamos a instalar ECLIPSE:

user@ubuntu:~$ apt-get install eclipse

Tras descargarse, se instalara automáticamente gracias a APT por lo que una vez finalizada la instalación ya podremos lanzar eclipse. En caso de que no dispongas de ningún acceso directo a la aplicación podéis acceder por consola.

user@ubuntu:~$ eclipse

Una vez iniciado eclipse nos vamos al menú Help > Software Updates > Find and Install….

Seleccionamos Search for new features to install y pulsamos Next.

Pulsamos New Remote Site y se nos mostrara un dialogo que nos pedirá una URL y un nombre para identificar el “repositorio”. Por nombre podemos poner “Android” y en la URL introducimos la siguiente dirección:

https://dl-ssl.google.com/android/eclipse/

y pulsamos OK.

Se nos añadirá un repositorio a la lista, lo seleccionamos (si no lo esta) y pulsamos Finish.

Nos aparecerá ahora un árbol con la siguiente estructura: Android Plugin > Eclipse Integration > Android Development Tools, los seleccionamos todos y pulsamos Next.

Aceptamos las condiciones de la licencia y pulsamos Next.

Finalmente nos aparecerá una lista de tareas a instalar, y nos aparecerá “Android Developm..”, y pulsamos Finish.

El instalador descargara el paquete y lo instalara automáticamente.

NOTA: El plugin ADT no esta firmado por lo que deberemos aceptar su instalación a pesar de ello.. por lo que pulsaremos Install All.

Ya esta el plugin completamente instalado, y solo falta reiniciar eclipse.

Una vez reiniciado solo falta configurar el plugin indicándole la ruta al SDK, por lo tanto accedemos al menú Window > Preferences…

seleccionamos ANDROID e introducimos la ruta a nuestro SDK, que en nuestro ejemplo era /home/user/android_sdk/.

Finalmente pulsamos Apply y nos aparecerá una ventana con un aviso de que el plugin ya esta instalado y configurado correctamente.

Ya tenemos nuestro entorno de desarrollo completamente instalado. En siguientes artículos explicaremos como hacer pequeñas aplicaciones paso a paso!!!

 Scroll to top