Vistas de página en total

sábado, 12 de mayo de 2012

Programación Android con AIDE y Java 1


Mi primer programa y el de una Calculadora
VER VIDEO DE AIDE Y JAVA
El hombre inteligente es resultado de la evolución y desarrollo humano y lo ha demostrado en la ciencia y tecnología que ha creado y su inteligencia está representada en el teléfono inteligente que ha sido inventado por el hombre como una extensión de su inteligencia y donde se integran las tecnologías de electrónica, comunicaciones y de computación. Siempre el hombre busca extender sus capacidades limitadas en herramientas que le ayuden a solucionar sus problemas. Así es el caso de  la herramienta AIDE que se usa para poder programar la computadora de un teléfono inteligente. AIDE significa Android Integrated Development Environmente y es un Ambiente de Desarrollo Integrado para Android. Con este sistema se pueden desarrollar y crear programas en el mismo teléfono celular que tengan como sistema operativo android 2.2. Por lo tanto para desarrollar programas es necesario tener un teléfono inteligente o móvil celular como el que tengo, un Samsung Galaxy mini con el sistema operativo android 2.2. Para adquirir AIDE se debe usar el internet del teléfono y de conectarse al mercado o play store de android, buscar AIDE que es libre, bajarlo e instalarlo y listo se puede iniciar a programar. Fabuloso! programar en una mano la computadora de un teléfono inteligente.
P01  Mi primer programa
Después de quedar instalado AIDE buscamos su logo, que es un pequeño android verde entre llaves azules (1) lo presionamos con el dedo y entramos a AIDE (2). Presionamos Create new App Project here, para crear un nuevo proyecto (3) escribimos el nombre del proyecto p01, el nombre del paquete com.gri.p01 y presionamos Create y se crea el nuevo proyecto (4) p01.
 Al generarse el proyecto se generan varias carpetas y archivos. Los 2 puntos(..) significa regresar un nivel superior de la trayectoria de carpetas. Las carpetas creadas son settings, assets, bin (5), gen, res y src (6) y los archivos creados son classpath, project (6), proguard.cfg, Project.properties y AndroidManifiest.xml (7).


Las carpetas principales son res que contiene los recursos que utilizara el programa como menus, imágenes y archivos xml para representar las pantallas del programa. La carpeta src contiene diferentes subcarpetas y la última contiene el o los programas en java de la aplicación.

Vamos a compilar, instalar y ejecutar el proyecto p01. Primero seleccionamos el menú (8) con la tecla de menú y presionamos Run para iniciar la compilación (9), si no detecta errores, pregunta si desea instalarse la aplicación (10), le decimos que si la instale (11) y cuando termina envía el mensaje de instalada y ahora pregunta si se desea abrir o ejecutar, le decimos que la abra y se ejecuta el programa (12). Maravilloso todo el proceso se realiza en el teléfono móvil o inteligente. En mi caso en el Samsung Galaxy mini. 

P01, Mi primer programa, modificado
Ahora vamos a modificar el proyecto usando solo código de java, en lugar de usar un archivo xml para desplegar el mensaje de “Hola…mi primer programa...”,  Primero presionamos la carpeta src (6),  aparece la carpeta com (13), presionamos com y aparece la carpeta gri (14) y aparece la carpeta p01 (15) y despliega el programa principal en java MainActivity.java (16).

 
Al presionar el programa de MainActivity (16) entramos al editor de AIDE y ahora iniciamos la modificación del programa. El proyecto p01 contiene el programa MainActivity.java e inicia definiendo el nombre del paquete package com.gri.p01; a continuación importa las librerías que necesita el programa, define la clase principal de MainActivity y dentro de esta define el método de onCreate y a continuación las instrucciones que debe realizar el programa. Primero presionamos el dedo al inicio de la instrucción setContentView y la comentamos colocando dos diagonales o sea queda como (18):
//setContentView(R.layout.main);
Ahora a continuación de la línea anterior, definimos una nueva instancia u objeto ll1 de LinearLayout (17) y (18).
LinearLayout ll1 = new  LinearLayout(this);
Lo definimos como Vertical.
ll1.setOrientation(LinearLayout.VERTICAL);
Ahora definimos una nueva instancia tv1 de TextView.
TextView tv1 = new TextView(this);
Colocamos el texto de “Hola…mi primer programa…”. 
tv1.setText(“Hola…mi primer programa…”);
Ahora agregamos TextView tv1 a LinearLayout ll1.
ll1.addView(tv1);
Finalmente visualizamos todo la pantalla del teléfono con LinearLayout.
setContentView(ll1);
El programa queda completo (19).
AIDE complenta y checa  las instrucciones y si la instrucción es erronea o falta algo, como en (20) que falta ll1, detecta el error, cuando se corrige (21) queda libre de errores.

 
También se puede usar las características del editor de AIDE, se presiona y mantiene el dedo y aparecen varias opciones del editor (21) y (22). Se presiona Select para seleccionar el principio de un área y el final de esa área de texto para copiarlo o cortarlo. Si se va a copiar el área de texto, se posiciona el dedo en el lugar deseado y aparece un menú donde se selecciona Edit para copiar el área de texto (23) (24) y (25). 


El programa MainActivity .java completo queda como:
package com.gri.p01;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
public class MainActivity extends activity{
@Override
public void onCreate(Bundle saveInstancesState{
                        super.onCreate(savedInstanceState);
                        //setContentView(R.layout.main);
                        LinearLayout ll1 = new LinearLayout(this);
                        ll1.setOrientation(LinearLayout.VERTICAL);
                        TextView tv1 = new TextView(this);
                        tv1.setText(“Hola…mi primer programa…”);
                        ll1.addView(tv1);
                        setContentView(ll1);
            }//oncreate
}//class


Ahora tenemos listo el programa modificado MainActivity para compilarlo, instalarlo y ejecutarlo. Primero seleccionamos el menú (26), presionamos Run para compilar el programa (27), si no hay errores, pregunta si desea reemplazar el programa ya instalado, presionamos aceptar e inicia la instalación (28) y (29). Cuando termina de instalarse pregunta si desea abrir o ejecutarse el programa del proyecto p01 (31). Para salir se presiona el menú y la opción de más u otros se busca salir y se presiona. Se sale de AIDE y despliega el menú del sistema (32).

Programa de una calculadora simple utilizando código java
En nuestras páginas anteriores del blog hablamos de cómo podemos hacer operaciones aritméticas simples mentalmente, pero cuando aumenta el tamaño de las cantidades, es difícil hacerlo mentalmente, necesitamos un procedimiento o programa para efectuar las operaciones. Ahora veremos como con un programa de una calculadora en nuestro teléfono inteligente puede realizar operaciones simples y mucho más complicadas, cuyas soluciones son extremadamente rápidas y que se puede repetir muchas veces. Estas son  las principales diferencias de una computadora con respecto del hombre, la velocidad y la repetición.


Ahora vamos crear el programa de la calculadora. Primero creamos un nuevo proyecto  MyApp5 con el modulo com.mycompany.myapp5 y vamos a la carpeta src y  editamos el programa MainActivity.
MainActivity.java
package com.mycompany.myapp5;

import android.app.*;
import android.os.*;
import android.text.*;
import android.view.*;
import android.view.View.*;
import android.widget.*;
import android.graphics.*;

public class MainActivity extends Activity implements OnClickListener
{
            //Definimos los botones para las operaciones de suma +, resta -,
//multiplicación *, y división /
            Button b1;
            Button b2;
            Button b3;
            Button b4;
           
//Definimos los cuadros de texto donde introduciremos los datos
            EditText et1;
            EditText et2;
           
            //Definimos la vista de texto, donde veremos los resultados de las operaciones
            TextView tv2;
                       
    // Called when the activity is first created
    @Override
    public void onCreate(Bundle savedInstanceState)
            {
            super.onCreate(savedInstanceState);
                        //Comentamos la siguiente instrucción para utilizar solo código java
                        //para desplegar la información en la pantalla

            //setContentView(R.layout.main);

                        // Definimos toda la pantalla para desplegar con linearLayout ll1
                        LinearLayout ll1 = new LinearLayout(this);
                        //Definimos la pantalla como vertical
                        ll1.setOrientation(LinearLayout.VERTICAL);
                        //Creamos una instancia de TextView tv1 para el titulo de Calculadora
                        TextView tv1 = new TextView(this);
                        tv1.setText("Calculadora");
                        //Ponemos el texto del título en color azul
                        tv1.setTextColor(Color.BLUE);
                        //Ponemos el tamaño del texto a 20
                        tv1.setTextSize(20);
                        //Centramos el titulo
                        tv1.setGravity(0x01);
                        //Agregamos la instancia de TextView tv1 a LinearList ll1
                        ll1.addView(tv1);
                       
                        //Creamos LinearLayout ll2 como horizontal para alinear los botones
                        LinearLayout ll2 = new LinearLayout(this);
                        ll2.setOrientation(LinearLayout.HORIZONTAL);
                        //Creamos una instancia Button b1 para la operación suma +
                        b1 = new Button(this);
                        b1.setText("Suma");
                        ll2.addView(b1);
                        //Creamos una instancia Button b1 para la operación resta -
                        b2 = new Button(this);
                        b2.setText("Resta");
                        ll2.addView(b2);
                        //Creamos una instancia Button b1 para la operación multiplicación *
                        b3 = new Button(this);
                        b3.setText("Multiplica");
                        ll2.addView(b3);
                        //Creamos una instancia Button b1 para la operación de suma +
                        b4 = new Button(this);
                        b4.setText("Divide");
                        ll2.addView(b4);
                        //Agregamos LinearLayout ll2 en ll1
                        ll1.addView(ll2);
                       
                        //Creamos una instancia EditText et1 para introducir el primer dato1
                        et1 = new EditText(this);
                        et1.setText("Borra e Introduce un numero...");
                        ll1.addView(et1);
                        //Creamos una instancia EditText et2 para introducir el segundo dato2
                        et2 = new EditText(this);
                        et2.setText("Borra e Introduce otro...");
                        ll1.addView(et2);
                        //Creamos una instancia TextView tv2 para desplegar los resultados
                        tv2 = new TextView(this);
                        ll1.addView(tv2);
                        //Despliega toda la pantalla definida por LinearLayout ll1
                        setContentView(ll1);
                       
                        //Definimos los botones para escuchar o detectar cuando se presionan
                        b1.setOnClickListener(this);
                        b2.setOnClickListener(this);
                        b3.setOnClickListener(this);
                        b4.setOnClickListener(this);
                       
            }// oncreate

            //Método a ejecutar cuando se presiona los botónes b1 de suma,
//b2 de resta, b3 multiplicación y b4 división
            public void onClick(View view){
                        // Pregunta si se presiona b1
                        if(view == b1){
                        //Captura dato1 y dato2
                        String txt1 = et1.getText().toString();
                        String txt2 = et2.getText().toString();
                        //Convierte el texto a punto flotante
                        float num1 = Float.parseFloat(txt1);
                        float num2 = Float.parseFloat(txt2);
                        //Efectúa la operación de suma decimal
                        float res1 = num1 + num2;
                        //Despliega el resultado
                       tv2.append("Resp + : "+res1+"\n");
                        // Pregunta si se presiona b2
                        }else{if(view == b2){
                            //Captura dato1 y dato2        
                            String txt1 = et1.getText().toString();
                            String txt2 = et2.getText().toString();
                            //Convierte el texto a punto flotante
                            float num1 = Float.parseFloat(txt1);
                            float num2 = Float.parseFloat(txt2);
                            //Efectúa la operación de resta decimal
                           float res1 = num1 - num2;
                            //Despliega el resultado
                           tv2.append("Resp - : "+res1+"\n");
                                   // Pregunta si se presiona b3
                                   }else{if(view == b3){
                                    //Captura dato1 y dato2
                                    String txt1 = et1.getText().toString();
                                    String txt2 = et2.getText().toString();
                                     //Convierte el texto a punto flotante
                                    float num1 = Float.parseFloat(txt1);
                                     float num2 = Float.parseFloat(txt2);
                                     //Efectúa la operación de multiplicación decimal
                                     float res1 = num1 * num2;
                                     //Despliega el resultado
                                    tv2.append("Resp x : "+res1+"\n");
                                               // Pregunta si se presiona b3
                                               }else{if(view == b4){
                                                   //Captura dato1 y dato2        
                                                   String txt1 = et1.getText().toString();
                                                   String txt2 = et2.getText().toString();
                                                   //Convierte el texto a punto flotante
                                                  float num1 = Float.parseFloat(txt1);
                                                  float num2 = Float.parseFloat(txt2);
                                                   //Efectúa la operación división decimal
                                                 float res1 = num1 / num2;
                                                 //Despliega el resultado
                                                tv2.append("Resp / : "+res1+"\n");
                                    }//b4
                        }//b3
            }//b2
       }//b1
    }//onclick
}//class main activ

Programa de una calculadora simple utilizando código java y xml 
Programa de la calculadora simple utilizando código java y un archivo main.xml para definir la interface  de la pantalla.


Creamos un nuevo proyecto MyApp6 con el modulo com.mycompany.myapp6. Presionamos la carpeta res y a continuación layout y aparece el archivo main.xml lo editamos y ponemos todas las definiciones para la interface con la pantalla del teléfono. Para comentarios se usa <!-- Comentarios -->

Main.xml
<?xml version="1.0" encoding="utf-8"?>

<!-- Definimos la pantalla con LinearLayout para la aplicación -->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

            <!-- Creamos la instancia TextView para el titulo Calculadora y caract. -->
                       
            <TextView
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:textColor="#111199"
              android:textSize="25sp"
              android:gravity="center"
              android:text="Calculadora" />
           
            <!—LinearLayout vertical para los botones de las operaciones -->
           
            <LinearLayout
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal" >

            <!-- Instancia Button b1 para sumar y el método suma cuando se presione -->
           
            <Button
                android:id="@+id/b1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="suma"
                android:text="Sumar" />

            <!-- Instancia Button b2 para restar y el método resta cuando se presione -->

            <Button
                android:id="@+id/b2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="resta"
                android:text="Restar" />

            <!-- Instancia Button b3 para multiplicar y el método multiplica cuando se presione -->
           
            <Button
                android:id="@+id/b3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="multiplica"
                android:text="Multiplicar" />

<!-- Instancia Button b4 para dividir y el método divide cuando se presione -->
           
            <Button
                android:id="@+id/b4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="divide"
                android:text="Dividir" />                  
                       
            </LinearLayout>

            <!—Crear instancia de EditText et1 para introducir dato1 -->
           
            <EditText
                 android:id="@+id/et1"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:numeric="integer"
                 android:inputType="numberDecimal"
                 android:text="Borra e introduce 1 decimal: " />

        <!—Crear instancia de EditText et2 para introducir dato2 -->
                         
        <EditText
                 android:id="@+id/et2"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:numeric="integer"
                 android:inputType="numberDecimal"
                 android:text="Borra e introduce otro 2 decimal: " />

         <!-- Crear instancia de TextView tv1 para desplegar resultados -->
                       
          <TextView
                 android:id="@+id/tv1"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:textColor="#119911"
                 android:text="Resultados \n" /> 
          
</LinearLayout>

Ahora seleccionamos la carpeta src y seleccionamos y editamos el programa MainActivity donde  se agregan e introducen las siguientes instrucciones.

MainAtivity.java

package com.mycompany.myapp6;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class MainActivity extends Activity
{
            //Crear las instancias de Button b1, b2, b3 y b4 para las operaciones de
            //suma, resta, multiplicación y división
            Button b1;
            Button b2;
            Button b3;
            Button b4;
            EditText et1;
            EditText et2;
            TextView tv1;
           
    // Called when the activity is first created
    @Override
    public void onCreate(Bundle savedInstanceState)
            {
        super.onCreate(savedInstanceState);

              //Importante, No se comenta la siguiente instrucción
             setContentView(R.layout.main);

                        //Se buscan las definiciones de los botones en main.xml
                        b1 = (Button)findViewById(R.id.b1);
                        b2 = (Button)findViewById(R.id.b2);
                        b3 = (Button)findViewById(R.id.b3);
                        b4 = (Button)findViewById(R.id.b4);
                       
                        //Se buscan las definiciones de los textos de edición, en main.xml
                        et1 = (EditText)findViewById(R.id.et1);
                        et2 = (EditText)findViewById(R.id.et2);

                        //Se buscan las definiciones de la vista del texto en main.xml
            tv1 = (TextView)findViewById(R.id.tv1);
   }//oncreate

   //Método de suma cuando se presiona botón sumar
   public void suma(View view){
              //Captura dato1 y dato2          
              String s1 = et1.getText().toString();
              String s2 = et2.getText().toString();
              //Convierte el texto a punto flotante
              float f1 = Float.parseFloat(s1);
              float f2 = Float.parseFloat(s2);
              //Efectúa la operación suma decimal
              float f3 = f1+f2;
              //Despliega el resultado
              tv1.append("Res de + : "+f3+"\n");
  }
  //Método de resta cuando se presiona botón restar
  public void resta(View view){
              //Captura dato1 y dato2          
              String s1 = et1.getText().toString();
              String s2 = et2.getText().toString();
              //Convierte el texto a punto flotante
              float f1 = Float.parseFloat(s1);
              float f2 = Float.parseFloat(s2);
              //Efectúa la operación resta decimal
              float f3 = f1-f2;
              //Despliega el resultado
              tv1.append("Res de - : "+f3+"\n");                                
            }
  //Método de multiplica cuando se presiona botón multiplicar
  public void multiplica(View view){
              //Captura dato1 y dato2          
              String s1 = et1.getText().toString();
              String s2 = et2.getText().toString();
              //Convierte el texto a punto flotante
              float f1 = Float.parseFloat(s1);
              float f2 = Float.parseFloat(s2);
              //Efectúa la operación multiplicación decimal
              float f3 = f1*f2;
              //Despliega el resultado
              tv1.append("Res de x : "+f3+"\n");
            }
  //Método de divide cuando se presiona botón dividir
  public void divide(View view){
              //Captura dato1 y dato2          
              String s1 = et1.getText().toString();
              String s2 = et2.getText().toString();
              //Convierte el texto a punto flotante
              float f1 = Float.parseFloat(s1);
              float f2 = Float.parseFloat(s2);
              //Efectúa la operación división decimal
              float f3 = f1/f2;
              //Despliega el resultado
              tv1.append("Res de / : "+f3+"\n");
            }
}//class

Esta introducción a AIDE y java con los programas de la Calculadora es complicado para las personas que nunca han programado una computadora, pero se debe de tener en cuenta que la computadora es solo una herramienta que ayuda al hombre en solucionar problemas y ahora tienen la oportunidad de poder programar la computadora de su teléfono inteligente. Para cualquier aprendizaje se debe poner mucha voluntad y esfuerzo, además de seguir un entrenamiento, en este caso en el lenguaje de java y que veremos en las siguientes páginas del blog de la Evolución y Desarrollo Humano y demostrar que la inteligencia de cualquier hombre de esta época de la información y del conocimiento, puede programar un teléfono inteligente o móvil. Para programar, primero es necesario que las personas sepan lo que la computadora va a realizar, en este caso las operaciones matemáticas sencillas y se debe instruir a la computadora por medio de un programa que tiene una secuencia de instrucciones para que realicen las operaciones. Para eso es necesario aprender los principios básicos del lenguaje java. En la siguiente página del blog veremos los principios del lenguaje java.