sábado, 22 de marzo de 2014

ARCHIVO .apk

Un archivo con extensión .apk (Application PacKage File – Paquete de Programas de Aplicación-) es un paquete para el sistema operativo Android. Este formato es una variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para la plataforma Android para smartphones y tablets.
Un archivo .apk normalmente contiene lo siguiente:
  • AndroidManifest.xml
  • classes.dex
  • resources.arsc
  • res (carpeta)
  • META-INF (carpeta)
  • lib (carpeta)
El Formato APK es básicamente un archivo comprimido ZIP con diferente extensión por lo cual pueden ser abiertos e inspeccionados usando un software archivador de ficheros como 7-Zip, Winzip, WinRAR o Ark.

domingo, 16 de marzo de 2014

CONCEPTOS Y ACRÓNIMOS DE ANDROID

API (Application Programming Interface). El API Java es una Interfaz de Programación de Aplicaciones provista por los creadores del lenguaje Java, y que da a los programadores los medios para desarrollar aplicaciones Java. Como el lenguaje Java es un Lenguaje Orientado a Objetos, la API de Java provee de un conjunto de clases utilitarias para efectuar toda clase de tareas necesarias dentro de un programa. La API Java está organizada en paquetes lógicos, donde cada paquete contiene un conjunto de clases relacionadas semánticamente.
Significa Interfaz de Programación de Aplicaciones.
Google pone a disposición de los desarrolladores un plugin para Eclipse llamado Android Development Tools (ADT) que facilita en gran medida el desarrollo de aplicaciones para la plataforma.

Android Development Tools. Herramientas de desarrollo androides.

Plug-in Programa  que puede anexarse a otro para aumentar sus funcionalidades (generalmente sin afectar otras funciones ni afectar la aplicación principal).
A la hora de probar y depurar aplicaciones Android no tendremos que hacerlo necesariamente sobre un dispositivo físico, sino que podremos configurar un emulador o dispositivo virtual (Android Virtual Device, o AVD) donde poder realizar fácilmente estas tareas.

XML proviene de eXtensible Markup Language (“Lenguaje de Marcas Extensible”). Se trata de un metalenguaje (un lenguaje que se utiliza para decir algo acerca de otro) extensible de etiquetas que fue desarrollado por el Word Wide Web Consortium (W3C), una sociedad mercantil internacional que elabora recomendaciones para la World Wide Web.

Los expertos señalan varias ventajas que derivan de la utilización del XML, como por ejemplo que: es extensible (se pueden añadir nuevas etiquetas tras el diseño del documento); su analizador es estándar (no requiere de cambios para cada versión del metalenguaje); facilita el análisis y el procesamiento de los documentos XML creados por terceros.

Dado que, en gran parte, la utilidad de una herramienta depende de la creatividad de quien la utiliza, resulta imposible resumir todas las aplicaciones de XML. En pocas palabras, se puede decir que ofrece la posibilidad de estructurar y representar datos. En la actualidad, es común que los programas incluyan archivos de configuración en este formato; tal es el caso de Apache y de las aplicaciones creadas con la tecnología .NET (de Microsoft).
Cuando se desarrolla un programa con interfaz gráfica es necesario organizar todas las imágenes de manera que se vayan cargando a medida que se necesiten, y XML es de gran ayuda en estos casos: permite agruparlas, etiquetarlas, especificar su ubicación y relacionarlas con otros datos, según las necesidades de los diseñadores.

Ejemplo:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
</RelativeLayout>                                                                         http://definicion.de/xml/

 Apache
Servidor web de código abierto.
Su desarrollo comenzó en febrero de 1995, por Rob McCool, en una tentativa de mejorar el servidor existente en el NCSA. La primera versión apareció en enero de 1996, el Apache 1.0. Hacia el 2000, el servidor Web Apache era el más extendido en el mundo. El nombre «Apache» es un acrónimo de «a patchy server» -un servidor de remiendos-, es decir un servidor construido con código preexistente y piezas y parches de código. Es la auténtica «kill app» del software libre en el ámbito de los servidores y el ejemplo de software libre de mayor éxito, por delante incluso del kernel Linux. Desde hace años, más del 60% de los servidores web de Internet emplean Apache.
¿Qué es .NET?

Microsoft .NET es una plataforma de desarrollo y ejecución de aplicaciones. Esto quiere decir que no sólo nos brinda todas las herramientas y servicios que se necesitan para desarrollar modernas aplicaciones empresariales y de misión crítica, sino que también nos provee de mecanismos robustos, seguros y eficientes para asegurar que la ejecución de las mismas sea óptima. Los componentes principales de la plataforma .NET son:

•  Un entorno de ejecución de aplicaciones, también llamado “Runtime”, que es un componente de software cuya función es la de ejecutar las aplicaciones .NET e interactuar con el sistema operativo ofreciendo sus servicios y recursos.

•  Un conjunto de bibliotecas de funcionalidades y controles reutilizables, con una enorme cantidad de componentes ya programados listos para ser consumidos por otras aplicaciones.

•  Un conjunto de lenguajes de programación de alto nivel, junto con sus compiladores y linkers, que permitirán el desarrollo de aplicaciones sobre la plataforma .NET.

•  Un conjunto de utilitarios y herramientas de desarrollo para simplificar las tareas más comunes del proceso de desarrollo de aplicaciones.

•  Documentación y guías de arquitectura, que describen las mejores prácticas de diseño, organización, desarrollo, prueba e instalación de aplicaciones .NET Por otra parte, .NET representa la evolución COM (Component Object Model), la plataforma de desarrollo de Microsoft anterior a .NET y sobre la cual se basaba el desarrollo de aplicaciones Visual Basic 6 (entre otros tantos lenguajes y versiones).

Características de .NET:

Describiremos a continuación algunas de las características principales de la plataforma Microsoft .NET:

•     Se dice que es una plataforma de ejecución intermedia, ya que las aplicaciones .NET no son ejecutadas directamente por el sistema operativo, como ocurre en el modelo tradicional de desarrollo. En su lugar, las aplicaciones .NET están diseñadas para ser ejecutadas contra un componente de software llamado Entorno de Ejecución (muchas veces también conocido como “Runtime”, o “Máquina Virtual”). Este componente es el encargado de manejar el ciclo de vida de cualquier aplicación .NET, iniciándola, deteniéndola, interactuando con el Sistema Operativo y proveyéndole servicios y recursos en tiempo de ejecución.

•    La plataforma Microsoft .NET está completamente basada en el paradigma de Orientación a Objetos.
•    .NET es multi-lenguaje: esto quiere decir que para poder codificar aplicaciones sobre esta plataforma no necesitamos aprender un único lenguaje específico de programación de alto nivel, sino que se puede elegir de una amplia lista de opciones.

•    .NET es una plataforma que permite el desarrollo de aplicaciones empresariales de misión crítica, entendiéndose por esto que permite la creación y ejecución de aplicaciones de porte corporativo que sean críticas para la operación de tipos variados de organizaciones. Si bien también es muy atrayente para desarrolladores no profesionales, estudiantes y entusiastas, su verdadero poder radica en su capacidad para soportar las aplicaciones más grandes y complejas.

•    .Net fue diseñado de manera tal de poder proveer un único modelo de programación, uniforme y consistente, para todo tipo de aplicaciones (ya sean de formularios Windows, de consola, aplicaciones Web, aplicaciones móviles, etc.) y para cualquier dispositivo de hardware (PC’s, Pocket PC’s, Teléfonos Celulares Inteligentes, también llamados “SmartPhones”, Tablet PC’s, etc.). Esto representa un gran cambio con respecto a las plataformas anteriores a .NET, las cuales tenían modelos de programación, bibliotecas, lenguajes y herramientas distintas según el tipo de aplicación y el dispositivo de hardware.

Uno de los objetivos de diseño de .NET fue que tenga la posibilidad de interactuar e integrarse fácilmente con aplicaciones desarrolladas en plataformas anteriores, particularmente en COM, ya que aún hoy existen una gran cantidad de aplicaciones desarrolladas sobre esa base.

.NET no sólo se integra fácilmente con aplicaciones desarrolladas en otras plataformas Microsoft, sino también con aquellas desarrolladas en otras plataformas de software, sistemas operativos o lenguajes de programación. Para esto hace un uso extensivo de numerosos estándares globales que son de uso extensivo en la industria. Algunos ejemplos de estos estándares son XML, HTTP, SOAP, WSDL y UDDI.


Layout es un término de la lengua inglesa que no forma parte del diccionario de la Real Academia Española (RAE). El concepto puede traducirse como “disposición” o “plan” y tiene un uso extendido en el ámbito de la tecnología.

La noción de layout suele utilizarse para nombrar al esquema de distribución de los elementos dentro de un diseño. Es habitual que un diseñador que se dedica a la creación de páginas web desarrolle un layout y se lo presente a su cliente para que éste lo apruebe y decida sobre la distribución de los contenidos.

El layout, en este sentido, puede ser una especie de plantilla que presenta tablas o espacios en blanco. La idea es que, a partir del layout, la página web comience a desarrollarse con sus contenidos específicos. El layout puede estar compuesto, por ejemplo, por un rectángulo a modo de cabezal y por tres columnas. Dicho esquema es genérico y puede usarse para desarrollar múltiples sitios web.

En el cabezal puede incluirse el encabezado de la página (como el nombre de una empresa o de una publicación), en la columna de la izquierda aparecerían las secciones del sitio (Quiénes somos, Qué hacemos, etc.), la columna del medio sería destinada al desarrollo de los contenidos y la columna de la derecha, a publicidades.

Un kit de desarrollo de software o SDK (siglas en inglés de Software Development Kit) es generalmente un conjunto de herramientas de desarrollo de software que le permite al programador crear aplicaciones para un sistema concreto, por ejemplo ciertos paquetes de software, frameworks, plataformas de hardware, computadoras, videoconsolas, sistemas operativos, etc.

Es algo tan sencillo como una interfaz de programación de aplicaciones o API (del inglés application programing interface) creada para permitir el uso de cierto lenguaje de programación, o puede, también, incluir hardware sofisticado para comunicarse con un determinado sistema embebido. Las herramientas más comunes incluyen soporte para la detección de errores de programación como un entorno de desarrollo integrado o IDE (del inglés Integrated Development Environment) y otras utilidades. Los SDK frecuentemente incluyen, también, códigos de ejemplo y notas técnicas de soporte u otra documentación de soporte para ayudar a clarificar ciertos puntos del material de referencia primario.

Custom: Costumbre, tradición, hábito.

Launcher: Lanzar, lanzador.

Icon: Icono, símbolo.

Bundle: Lote, bulto, empaquetar.
Es básicamente una carpeta que contiene los archivos necesarios para un grupo de funcionalidades específicas, como por ejemplo un blog, un carrito de compras de nuestra aplicación. La idea es que yo debería poder llevar este Bundle a otro proyecto y reutilizarlo si quiero.
Manifest: Obvio, evidente, manifiesto.

APLICACIÓN NO. 1: BOTÓN CONTADOR

BOTÓN CONTADOR

1.    Crear nueva aplicación.
2.    Añadir un botón al layout. Insertar el objeto Button al layout.
3.    Seleccionar el botón y enseguida se habilita la ventana de propiedades (Properties).
Properies: Id   @+id/button1 (button1 podemos ponerle cualquier otro nombre).
4.    Dar clic en carpeta src\com.BOTON_CONTADOR_LRVbotoncontador\MainActivity.java y agregar el siguiente código después de:
@Override
             protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

AQUÍ SE AGREGA CÓDIGO…OK

//CÓDIGO PARA DEFINIR BOTÓN
             Button bt = (Button) findViewById(R.id.button1);

Importar el botón, dar clic en Import ‘Button’ (android.widget) y observamos que se anexa librería.
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;
              
5.    Seleccionar y posicionarse en findViewById y dar clic en Add cast to ‘Button’
Observamos que el código cambia a:

Button bt = (Button) findViewById(R.id.button1);

6.    Ahora habrá que agregarle funcionalidad al botón, agregar el siguiente código:

bt.setOnClickListener(new << oprimir Ctrl + barra espaciadora seleccionar el método: OnClickListener()   >>) y se agrega más código.

Button bt = (Button) findViewById(R.id.button1);
             bt.setOnClickListener(new OnClickListener() {
                   
                    @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub      Código Agregado
                                                                     Automáticamente
                    }
       Enseguida importamos un método rápido seleccionando:  OnClickListener()
      Seleccionar método: Import ‘OnClickListener’ (android.view.View)



7.    Incluir el código para la funcionalidad del botón: Irse a: main_activity.xml

8.    Seleccionar el TextView, irse a barra de propiedades, localizar Id y agregar lo siguiente: @+id/texto……texto puede ser cualquier otro nombre. Dar <enter> y guardar.

9.    Nos vamos a agregar el siguiente código después de:

NOTA:  EL CÓDIGO QUE SE VISUALIZA SUBRAYADO ES EL QUE SE VA A AGREGAR.

@Override
             protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

//CÓDIGO PARA DEFINIR BOTÓN……………… YA SE AGREGÓ ANTERIORMENTE
        Button bt = (Button) findViewById(R.id.button1);

       // FUNCIONALIDAD BOTÓN……. YA SE AGREGÓ ANTERIORMENTE
        bt.setOnClickListener(new OnClickListener() {
                   
//VISUALIZAR TEXTO………… AGREGAR ESTE CÓDIGO
        TextView tv = (TextView)findViewById(R.id.texto);
            
       //DECLARAR CONTADOR……….. AGREGAR ESTE CÓDIGO
             int contador = 0;
                   
             @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           contador++;………………………………………….AGREGAR ESTE CÓDIGO
                           // MODIFICAR TEXTO DEL TEXTVIEW
                           tv.setText("Contador: " +contador);………….. AGREGAR CÓDIGO
                          
10.  Guardamos y Borramos el resto del código y lo ejecutamos. Checar código completo.


CÓDIGO COMPLETO DE LA APLICACIÓN: BOTÓN CONTADOR


package com.BOTON_CONTADOR_LRV.botoncontador;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        //CÓDIGO PARA DEFINIR BOTÓN
        Button bt = (Button) findViewById(R.id.button1);
      
        // FUNCIONALIDAD BOTÓN
        bt.setOnClickListener(new OnClickListener() {
            
             //VISUALIZAR TEXTO
             TextView tv = (TextView)findViewById(R.id.texto);
            
             //DECLARAR CONTADOR
             int contador = 0;
                   
             @Override
                    public void onClick(View v) {
                           // TODO Auto-generated method stub
                           contador++;
                          
                           // MODIFICAR TEXTO DEL TEXTVIEW
                           tv.setText("Contador: " +contador);
                          
                                                                  
                    }
             });
       
       
    }
}