martes, 16 de abril de 2013

apuntes de libreta



Trabajos


TRANSCRITO DE APUNTES

DOCUMENTOS
Marcas
Las  marcas delimitan el tamaño y los elementos de un documento como cabeceras, párrafos, etc. Y son utilizados para dar un tratamiento diferente al texto que se encuentre entre las marcas.
->HTML: las marcas de debilitan con signos para cubrir menor que y cubrir mayor que, (abrir < inferior a y cerrar > superior a).
Atributos de las marcas   
Algunas marcas pueden admitir atributos pudiendo tener cada uno de estos atributos un valor como por ejemplo ancho, alto, color, formato, estilo. Este valor ira entre comillas su dicho valor es alfanumérico.
Estructura de los números
Cabecera: se emplea para facilitar información acerca del documento y esté delimitada por: <HEAD>…texto… </HEAD>. Dentro de la cabecera podemos destacar el título que indica el nombre del documento.
Ejemplo:
<HTML>
      <HEAD>
          <TITLE> Bienvenido </TITLE>
      </HEAD>
</HTML>

Cuerpo
El resto del documento recibirá entre las marcas <BODY> y  </BODY>

Ejemplo: 
<HTML>
   <HEAD>
      <TITLE>...Bienvenida…</TITLE>
   </HEAD>
       <BODY>
         .
         .
         .
       </BODY>
</HTML>

Encabezado
Los encabezados se emplean para dividir los documentos en secciones para marcar los títulos de esas secciones. Las marcas son entre 1 y 6 donde el uno tiene mayor tamaño.

Ejemplo:
<H1> Tamaño mayor </H1>
.
.
.
<H6> TAMAÑO MENOR </H6>

Definición de bloques

Para definir y separar bloques de texto se emplea una serie de marcas que definen párrafos, texto pre formateado o bloques con significado especial como direcciones o citas:
<P> y </P>: se utiliza para separar párrafos. Dado que para el HTML todo el texto es        continuo, necesitamos algún mecanismo para indicar el principio y el fin de un párrafo.La marca inicial y final son … <P> y </P>
<PRE>: el texto insertado entre las marcas <PRE> y </PRE> será visualizado respetando el formato con el que fue escrito en el fichero fuente HTML.
<ADDPESS>: Empleada para aplicar que un texto representa una dirección o una firma. Generalmente se activa en cursiva y suele estar tabulado.
<BLOCK QUOTE>: Se suele representar con tabulaciones a la izq. y der. y en cursiva. En sistemas que no permiten representar en cursiva se puede emplear algún tipo de símbolo al principio de las líneas.
<BR>: Este elemento solo tiene marca inicial e indica un salto de línea.
<HR>: Solo tiene marca inicial y se emplea para representar una línea horizontal.

COMENTARIOS
Todo texto que empiece por </… comentario…> será ignorado por el buscador por lo tanto no será visible esto sirve al autor del documento para comentar en su archivo fuente.

FONDOS Y COLORES DE TEXTO
Un cierto numero de atributos de la marca <BODDY>, permite controlar el color de fondo de la ventana, el color de los caracteres del texto y finalmente el color de los enlaces: atributo <BGCOLOR>; este atributo permite escoger un color para el formato de la pagina.
<BODY  BGCOLOR=”#rrggbb”>  donde:”rr””gg” y ”bb”” son valores hexadecimales entre 00 y FF.

ATRIBUTO BACKGROUND
Este atributo especifica una imagen recidente en el servidor la cual se utilizara como fondo de pagina <BODY BACKGROUND=”archiv.gif”>

TEXT
Permite controlar el color del texto estándar es decir todo texto que no especifique un enlace <BODY TEXTO=”#rrggbb”>

LINK
Color de enlace que aun no  ha sido visitado <BODY LINK=”#rrbbgg”>

ALINK
Color muy fugaz que aparece cuando se hace clic sobre el enlace <BODY ALINK=”#rrggbb”>.

VLINK
Es el color de un enlace que ya ha sido visitado <BODY VLINK=”#rrggbb”>

LETRA
Es la marca que asigna el tamaño de los caracteres, donde “n” varía del 1 a 6. Los más grandes tiene valor uno y los más pequeños valor 6. El texto entre estas marcas se trata en negrita <Hn>

TAMAÑO DE LETRA Y COLOR
La marca FONT permita actuar sobre bloques distintos de caracteres situados en la misma línea. El atributo SIZE: regula la altura de los caracteres entre el rango de (1 - 7).
El atributo COLOR: especifica el color de los caracteres. Ejemplo. <FONT SIZE=3COLOR=#008000>…TEXTO…</FONT>

ESTILO FISICO O ESTILO DE CARACTERES

<B>Negrita    <b>hola!</b> hola!
<I>Cursiva     <i>hola!</i>    hola!
<V>Subrayado      <v>hola!</v>  hola!


Estilos lógicos, estilo de párrafo

<CITE> Cita
<CODE> Codigo fuente
<DFN> Definido
<EM> Enfatiza
<KDB> Palabra clave
<SAMP> Ejemplo
<STRONG> Resalta
<VAR> Variable
Combinacion de tamaño y estilo

La ventana trabaja bajo el efecto de solo un parcerrado de marcas ejemplo:
<i>
<font size=5>
<b> Hola, </b> como
<Font size=6> estas? </font>
</font>
</i>


HIPERENLACE
El lector explira un docuento en el WEB  haciendo clic sobre las zonas activas para asi hacer aparecer nuevos documentos. El <HTMLL> definimos una zona activa (que puede ser un texto o una imagen) que se asocia al URL (protocolo de direccionamiento) del documento que sustituirá al documento visuallizado cuando se haga clic sobre esta zona.  Un ancla por loo tanto sirve para especificar la partida y la llegada de un enlace hipertexto <A>.
El atributo HREF, ancla de partida hacia un enlace externo crea un  enlace hacia un servidor situado en algún punto de internet hacia un documento propuesto por dicho servidor. La marca especifica el atributo HREF cuyo valor precisa URL del documento a recuperar: <AHREF=”URL_D_DESTINO”> zona_activable </A>

1.El atributo HREI, ancla de partida a un enlace interno; crea a un enlace a un punto determinado del fichero en ejecucion. Para ello hay que colocar un ancla activa (ancla de partida) y un ancla de inactiva (ancla de llegada). El ancla de partida se  define de la siguiente forma:
3 una activable con atributos visibles <AHAREF=#etiqueta> zona_activable_con_atributo_visuales </A>.

2. El atributo NAME, ancla de llegada define el ancla de llegada, lugar que se podrá acceder haciendo clic sobre un ancla de partida.
3 una no activable sin atributos visuales:
<ANAME=”Label”> zona_no_activable_sin_atributos_visuales </A>
…………………………………………………………………………………………………………………………………….

TABLA
Una tabla se define entre las marcas entre <TABLE> y </TABLE>. Esta primer amarca regula a presentación general de la tabla mediante tres atributos:
*BORDER: define el grosor del marco exterior.
*CELPADDING: define el espacio alrededor del texto de una celda.
*CELLPACING: define el espacio entre celdas.
*WIDTH: define la anchura de la tabla relativa a la ventana.

MARCAS
Las marcas que definen una nueva fila son:
<TR> y </TR> que admiten los siguientes atributos de alineación del texto en el interior de todas las celdas de la fila:
*VALIGN (alineación vertical): que puede tomar los valores.
        -TOP: coloca el texto en la parte superior de la celda.
        -BOTTOM: colca el texto en la parte inferior de  la celda.
        -MIDDLE: coloca ell texto en el centro de la celda.
*ALIGN (alineación horizontal): que puede tomar los valores.
        -RIGHT: coloca el texto a la derecha de la celda.
        -LEFT: coloca el texto a la izquierda de la celda.
        -CENTER: centra el texto en la celda.

La marca <TD> es el elementyo del inicio de una columna. Puede completarse con los atributos <VALIGN> y <ALIGN> que será entonces prioritarios sobre los mismos valores definidos en la marca <TR>.

La marca <TH> esta marca funciona de forma similar a <TD> admitieno los mismos atributos pero se considera como una marca de titulo de celda. Atomaticamente  centra el texto y lo pone en negrita.

La marca <IMG> permite incluir una imagen. Esta marca ira siempre complementada con el atributo <SCR>  que permite dar la dirección del fichero grafico (imagen, foto, animacion) que contiene la imagen.

El valor del atributo <SCR> permite especificar un URL y es por tanto correcto encontra imágenes definidas como  sigue.
<IMG SCR:”http//img/rosa.gif”>

ALINEACION DE IMAGENES
La marca <IMG> admite el atributo ALIGN que permite situar la imagen en relacion a la linea de texto actual y permite tomar los siguientes valores.

*TOP: para alinear la parte superior de la imagen.
*MIDDLE: para alinear el centro de la imagen.
*BOTTM: para alinear la base de  la imagen.
        Ejemplo:
<IMG SRC=”new.gif” align=top>

IMAGENES EXTERNAS
Este tipo de imagines no aparecen en la pantalla cuando se carga la pagina, si no se crea  un enlace hipertexto cuyo extremo podrá ser una imagen.
Ejemplo:
<A HREF=”imagen/new.gif”> hacer clic aqui </A>

IMAGENES COMO ANCLAS
Se pueden reemplazar el texto de una ancla por marca que define una imagen. En este caso la imagen tiene un borde de color para indicar que se trata de un enlace hipertexto, sobre el que se puede hacer un clic.
        Ejemplo:
<A HREF=”image/new.gif”><IMG SRC=”image/info.gif”></A>


FORMULARIOS
Un formulario es una pantalla para representar un conjunto de datos y generar en la pantalla cuadros de dialogo con el lector. Como un formulario en papel, se podrán tener zonas en las que se introducirá, casillas de verificación, listas de seleccion, etc.
     El ususario rellenara zonas en su formulario que se identifican con un nombre simbolico. Cuando el formulario se envía  al programa que lo va a tratar, este recibe identificador de cada zona y es el valor introducido.
 Es importante señalar que la utilidad de los formularios esta limitada al uso de las paginas junto con sus servidores, ya que las acciones asociadas son programas (generalmente scripts de CGI) estos programas deben funcionar en un servidor al que se le proporcioan los datos de un formulario para  ser procesados.

DECLARACION DEL FORMULARIO
La marca <FORM> y </FORM> define un formulario y entre ellos se situara todas las marcas que genera los diversos elementos que componen un formulario. Esta maraca debe de ir acompñada obligatoriamente por dos …..

1.El atributo METHOD esta dirigido al programador codifica el script. Al que pueden darse el valor POST o GET que define en le modo de transferencia de los datos hacia el script.
2. El atributo ACTION que define el URL de un programa (script) encargado de tratar los datos adquiridos desde el formulario.





MARCAS
Todas las marcas que se definirán tienen los siguientes atributos comunes :
1.El atributo “NAME” define el nombre que permitirá al script identificar el origen de los datos. Este nombre de ser único NAME=nombre_d_la_variable_asociado.
2.El atributo “VALUE” definido pára un campo de 2 puntos de un texto; permite definir el contenido del campo.
3.El botón “SUBMINT” indica el texto a escribir en el botón.
4.El botón “RADIO” y “CHECXBOX”: valor asociado al botón cuando esta pulsado. “NAME” identifica el bloque de botones.

CAMPOS DE ENTRADA
La marca INPUT servirá para definir campos para encontrar un texto y botones que permiten escoger opciones.

El atributo “TYPE” asociado a la marca <INPUT> permite la selección del elemnto de entrada. Puede tomar los siguientes valores:
*SUBMINT:de ser cadena el envío del formulario hacia el script; el texto definido en “VALUE” se escribirá en el botón:
                Ejemplo:
salida
        <form>
                 <input type=”submint value”=”salida”>
        </form>

        *RESET: permite borrar los datos ya entrados.
                Ejemplo:
        Borrar
       <form>
                 <input  type=”reset”value=”borrar”>

        *PASSWORD: permite entrar un palabra de forma clave confidencial.
                Ejemplo:
        Contraseña
        <form>
           <input type=”password” name=”pwd”>
        </form>

        *CHECXBOX: cea un bloque de botones que permiten una seleccion multiple de opciones.
                Ejemplo:
        <form>
                <input type=”checxbox” name=”micro” value=”mac”> Macintosh
             
 < <input type=”checxbox” name=”micro” value=”pc”> PC
        </form>
       
        *RADIO: crea un bloque de botones que permiten una selección exclusiva entre varias opciones.
                Ejemplo:
        <from>
           <input type=”radio” name=”media” value=”cd” checked> CD-ROM
           <input type=”radio” name=”media” value=”disquete” checked> DISQUETE

        *HIDDEN: sirve para pasar datos adquiridos de un formularios a otro sin que aparezca nada en pantalla.
                Ejemplo:
        <input type=”hidden” name=”nombre_de_variable” value=”valor_de_la_variable”>

CAMPOS DE SELECCIÓN
La marca <SLECT> permite genera listas de selección simple o de selección variable. Seprograma con una lista en la que los ítems se especifica mediante la marca <OPTION>. La presentación de la lista depende del atributo <SIZE>; si su valor es inferior a dos o esta ausente la lista se interpreta como u menu despegable (pop-list), en caso contrario la lista se visulizara en una ventana con barra de desplazamiento. El valor dado entonces al atributo <SIZE>  dan entonces el numero de líneas visibles en la ventana. La opción de selección multiple se deriva de la presencia del atributo MULTIPLE.
        Ejemplo:

 “MENÚ DESPEGABLE”
        <form>
                   <select Name:”sede”>
                  <option> entrada indirecta
                  <option> entrada lateral
                  <option SELECTED> entrada directa
                  </selct>
        </form>

“VENTANA CON BARRA DE DESPLAZAMIENTO”
        <form>
                     <select MULTIPLE NAME=”leunguaje” SIZE=”3”>
                           <option SELECTED> Ada
                     <option>C++
                     <option>Clipper
                    <option>
                    <option>
                    <option>
                </select>
        </form>

AREA DE TEXTO
La marca <TEXTAREA> permite crear una venta con barras de desplazamiento horizontales y verticales en la que se podrá escribir texto. El valor dado a los atributos Rows (lineas) y Cols (columnas) delimita el tamaño de esta ventana.
        Ejemplo:
<form>
        <textarea names=”comment” rows=5 cols=40>
        Intoduzca aqui sus comentarios
</textarea>
</form>

martes, 12 de marzo de 2013

android


¿que es android?
Este mes, Movistar está lanzando en el Perú los primeros celulares con el sistema operativo Android. Este artículo, servirá para explicar exactamente qué es Android, y qué ventajas nos ofrece frente a otros sistemas operativos.
En el pasado, calificar como “smartphone”, o teléfono inteligente implicaba algunas cosas: la posibilidad de ver (y editar) documentos de Oficina (Word, Excel, etcétera), una buena aplicación para revisar correos electrónicos, un navegador Web y, por lo general, mejores características (un procesador más rápido, más memoria de almacenamiento). Características que los separaban del resto de teléfonos que simplemente se dedicaban a llamadas, quizás una cámara, y por supuesto, reproducir música.
Hoy en día, la idea de un smartphone ha cambiado. Ya no son teléfonos sólo para empresarios, o personas de negocios. Ya no se trata sólo de poder revisar documentos de Oficina, o poder escribir uno que otro correo. Hoy, todos queremos estar conectados siempre, ya sea a las redes sociales, a los blogs que seguimos, a la mensajería instantánea, y mucho más. Hoy, las funciones y posibilidades que nos dan los smartphones los acercan mucho más a lo que acostumbramos a hacer con una computadora.
Lo cierto es que estos “smartphones” dejarán de ser denominados como tales, para reemplazar, por completo, a los teléfonos existentes. El uso de smartphones y sus funciones se extienden mucho más que a empresarios, pues cualquier persona puede sacarles provecho. En pocas palabras, ya no se trata de simples teléfonos, sino prácticamente, computadoras de bolsillo. Y Android, es uno de los encargados de llevar este concepto, a la realidad.
¿Pero qué es Android?
Android es la respuesta de Google para este nuevo mercado. Es un sistema operativo para dispositivos móviles muy avanzado, pero con una amigable interfaz que nos permite hacer mucho más que simples llamadas por teléfono, enviar mensajes de texto, escuchar música, o tomar fotos.
Es, en pocas palabras, una plataforma donde podemos ver aplicaciones capaces de realizar todo tipo de funciones, donde el límite de funcionalidad está limitado sólo por nuestra imaginación (o bueno, la de los desarrolladores de aplicaciones). Es un concepto, como les mencionaba, que se acerca más a las posibilidades alcanzables con una PC, que las de un simple teléfono.
Ejemplos de uso
En lugar de poner situaciones puntuales, creo que el mejor ejemplo que puedo dejarles, es cómo uso yo mi teléfono, un smartphone, en estas semanas que he estado probando los diferentes modelos que ha lanzado Movistar.
En la mañana, por supuesto, funciona como despertador (nada nuevo). Mientras me cepillo los dientes, abro Mail y empiezo a revisar los correos, dándoles prioridad mentalmente para ser respondidos luego.
Durante el desayuno, abro el navegador Web y empiezo a revisar las noticias más relevantes del día (¿periódico? ¿Qué es eso?), ya sea a través de Google News o mi favorito, Google Reader. Si me sobra un poco de tiempo, abro DailyHoroscope, que también me da el horóscopo del día.
Luego, paso a sincronizarlo con la PC, copiando unos cuantos Mp3 para escuchar en el camino al gimnasio. En el gimnasio, lanzo la aplicación BodyFitness, que no sólo me permite ver y calcular el peso diario, sino que además, me recomienda qué ejercicios realizar para ciertos músculos del cuerpo. ¡Incluso puede recomendarnos rutinas a seguir!
Durante el día, quizás me llegue algún documento que tengo que revisar por algun motivo u otro. Pues basta con abrir Gmail, descargar el documento, y simplemente utilizar QuickOffice para saber de qué se trata, o qué cambios serán necesarios.
Si tengo que ir al banco o a hacer alguna transacción en algún lugar, el smartphone con Android es el perfecto aparato de entretenimiento; tengo una saludable colección de juegos juegos gratuitos que definitivamente hacen que las colas en bancos u otros lugares pasen volando.
Si voy de compras y encuentro un DVD que me interesa, con Google Goggles simplemente puedo tomarle una foto a la carátula o al código de barras, e inmediatamente Android buscará información al respecto, dándome reseñas de la película (para saber si vale la pena o no), quién la dirigió, qué actores participan, y mucho más. Y esto no sólo se aplica a películas o carátulas. Una reciente actualización a Google Goggles lo ha convertido en el perfecto compañero para el viajero: simplemente apuntamos la cámara a cualquier texto (un menú de restaurante, por ejemplo) y tras unos segundos, ¡Goggles nos ofrecerá la opción de traducir el texto!
Finalmente, en la noche, antes de dormir, sufro de la manía de tener que leer un libro y, adivinaron, el teléfono con Android es el que cumple de lector de libros. En la tienda de aplicaciones encontrarán no sólo un montón de libros gratuitos, sino programas que nos permitirán leer los que ya tenemos guardados.
A lo que voy con todo esto, es que el mundo ha cambiado. Y por lo tanto, los celulares, quizás los dispositivos tecnológicos más importantes en nuestras vidas, también tenían que evolucionar. Android es parte de esta evolución, y es gracias a las aplicaciones, que podemos tenerlo como un verdadero asistente digital personal, como veremos en las ventajas que el aparato ofrece.
Ventajas de Android
Android Marketplace - Al ser comparable ya a lo que podemos realizar con una PC, uno de los aspectos más importantes de un sistema operativo tan avanzado, es la cantidad de aplicaciones disponibles. Si bien el Android Marketplace todavía no cuenta con la misma cantidad de aplicaciones que el iPhone, por ejemplo, el número de “Apps” disponibles está aumentando considerablemente con el tiempo.
Tanto así, que la mayoría de redes sociales importantes (Facebook, Foursquare, LinkedIn, Twitter), cuentan con clientes disponibles para la aplicación. Todos se integran de manera transparente a Android, por lo que podemos recibir notificaciones instantáneas apenas alguien comenta en nuestro perfil, por ejemplo. Y eso no es todo; con cada aplicación, podemos sincronizar diferentes detalles de diferentes redes sociales, con nuestros contactos existentes. ¿Tenemos un amigo que tiene cuentas en Facebook, Twitter, LinkedIn, y además está en nuestra libreta de direcciones? Todo esto quedará sincronizado automáticamente, anexando la información proporcionada en cada una de las redes sociales, y unificándola bajo un solo contacto.
Y todo esto, está disponible bajo “Market”. Atrás quedaron los días de ir cazando aplicaciones en diferentes páginas web, porque ahora tenemos a todas disponibles bajo un mismo techo.
Es simple. Pero poderoso – En los primeros días de los smartphones, éstos ofrecían muchas funciones pero, a la vez, traían algo más: complicaciones innecesarias. No era raro, por ejemplo, tener que saltar menú tras menú para realizar una función tan simple, como leer nuestros SMS. Seguramente han escuchado a personas decir, en el pasado (o quizás sean ustedes mismos los que lo hagan) que prefieren un teléfono Nokia por lo simple que resultaba navegar entre menús, ¿verdad? Pues bien, uno de los puntos centrales de Android, es mantener esta simplicidad en todas las opciones.
No importa qué modelo de Android compremos, todos tendrán menús idénticos para llegar a la mayoría de opciones. Todos los teléfonos con Android tienen, por defecto, cuatro botones: el botón de retroceder, el botón de menú, el botón “Home”, que nos lleva a la pantalla principal, y el de “búsqueda” (es un sistema operativo de Google, después de todo; este botón de búsqueda no sólo busca entre nuestras aplicaciones y archivos, sino que además, puede buscar en la web directamente).
Y esta simplicidad en el manejo, se refleja también en todas las opciones de la interfaz. La mayoría de tareas, está a un par de “taps” (porque ya no podemos llamarlos “clicks”) de distancia.
Es un sistema simple, pero gracias a las aplicaciones, tan poderoso, como una PC de escritorio.
El más elegante sistema de multitasking. Otros teléfonos limitan las aplicaciones que podemos correr simultáneamente. Es decir, si estamos jugando algún juego, por ejemplo, y queremos saltar a revisar nuestro correo, en otros sistemas operativos tenemos que cerrar una aplicación, ir a nuestra aplicación de correo electrónico, volver a cerrar la aplicación de correo, para finalmente poner a cargar nuevamente el juego. En Android, es posible mandar al juego “a dormir”, poniéndolo en pausa, mientras saltamos al correo. Basta con volver a abrir el juego para continuar donde nos quedamos.
De hecho, con Android ni siquiera tenemos que estar abriendo la aplicación de correo: el teléfono automáticamente nos avisará, por ejemplo, cuando lleguen nuevos mensajes, o cuando alguien nos deje un mensaje instantáneo. Simplemente deslizamos el dedo por la parte superior de la pantalla hacia abajo, y veremos todo tipo de notificaciones.
En que se utiliza android
Actualmente, hay dos grandes plataformas que lideran los teléfonos móviles o Smartphone:IOS y Android. Según varios estudios y la propia de experiencia de cada uno, al final se pueden extraer muchas conclusiones del tipo de persona que usa un sistema operativo u otro, leyendo entre líneas y analizando ciertos aspectos como la edad, ocupación, situación económica, etc. 
usuario android 

Eso es precisamente lo que vemos en esta infografía, donde se nos muestran los resultados de un estudio que nos dice cómo se usa Android y que perfil de usuario es más común en la plataforma. 

Según podemos ver, el 45% de los usuarios de Android ha optado por el OS en su primera experiencia con un Smartphone. Un 8% del total vienen de iPhone y, curiosamente, resulta que un 60% de los usuarios de Android tienen menos de 34 años. 

infografia android usuarios 

Con respecto a cómo se usa Android, los datos apuntan a que el 37% del tiempo, el usuario lee el email, gasta un 31% en juegos y un 8% en navegar por mapas o usar el GPS. Según parece, los usuarios de Android instalan 17 aplicaciones (como media) en su teléfono, frente a 28 aplicaciones de los usuarios de iPhone.
Que software desarrolla paginas web android
n ocasiones crear una aplicación basada en una arquitectura mixta entre una aplicación nativa y una aplicación web y comunicarlas en base a nuestras necesidades puede ser muy adecuado y ahorrarnos mucho tiempo de desarrollo.
Todos estaremos deacuerdo en que:
  1. Una aplicación web (html, javascript, css, etc) tiene la ventaja de que no hay que distribuir la aplicación cuando hay un cambio en la misma, con cambiar el código en el servidor bastaría.
  2. Una aplicación web no puede acceder directamente a los recursos del dispositivo: GPS, camara de fotos, agenda, etc.
Y digo yo, ¿por qué no una mezcla que aproveche ambas ventajas?.. pues bien, de eso se trata este pequeño tutorial.. ver como comunicarnos entre ambas partes web y nativa
Si quieres trastear, puedes descargarte el código fuente desde clic aquí. Si quieres probarlo directamente en tu dispositivo puedes descargarte la aplicación desde clic aquí
Construcción de una aplicación mixta en Android
El código fuente está autocomentado, no creo que tengas problemas si tienes una base de programación en Android.
Captura de pantalla de la aplicación a construir:
Captura de pantalla de la aplicación
assert/carlos-garcia.html
única página web que compone la aplicación, aunque podría haber sido generada dinámicamente en un servidor, en este ejemplo está ubicada como un estático en la carpeta assert del proyecto.
1.  <html>  
2.      <head>  
3.          <title>Android WebView y NativeApp</title>  
4.          <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
5.          <script language="javascript">  
6.              function callFromAndroidToJS(texto) {  
7.                  document.getElementById("target").innerHTML=texto;  
8.              }  
9.              function callFromJSToAndroid() {  
10.                 jsNativeInterface.metodoDemo1();  
11.             }  
12.             function callFromJSToAndroidForReadJson() {  
13.                 var datosJson = eval('(' + jsNativeInterface.metodoDemo2() + ')');  
14.                 document.getElementById("target").innerHTML=datosJson.timestamp;  
15.             }     
16.         </script>  
17.         <style type="text/css">  
18.             a { color: green; text-decoration: underline;}    
19.         </style>  
20.     </head>  
21.     <body>  
22.         <h1>carlos-garcia.es</h1>  
23.         <ul>  
24.             <li><p>Prueba 1: <a onclick="callFromJSToAndroid();">Haga clic aquí</a> para invocar desde el JavaScript a la aplicación Android</p></li>  
25.             <li><p>Prueba 2: <a onclick="callFromJSToAndroidForReadJson();">Haga clic aquí</a> para invocar desde el JavaScript a la aplicación Android y leer JSON</p></li>  
26.             <li><p>Prueba 3: <span id="target">Este texto será sustituido desde la aplicación nativa</span></p></li>  
27.         </ul>  
28.     </body>  
29. </html>  
Ten mucha precaución con la parte de javascript, pues si tienes un error como por ejemplo poner "var" en los parámetros de los métodos no ves errores en los los, simplemente NO funciona la comunicación.
res/layout/main.xml
Interface gráfico de la aplicación, observe que abajo hay un WebView que será donde se muestre la parte web.
1.  <?xml version="1.0" encoding="UTF-8"?>  
2.  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3.      android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">  
4.        
5.      <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">  
6.          <EditText android:id="@+id/txt1" android:hint="Escribe algo y acepta" android:layout_width="wrap_content" android:layout_height="wrap_content"/>  
7.          <Button   android:id="@+id/btn1" android:text="Aceptar"                android:layout_width="wrap_content" android:layout_height="wrap_content"/>  
8.      </LinearLayout>  
9.        
10.     <WebView  android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent"/>  
11. </LinearLayout>  
es.carlosgarcia.android.MyAndroidToJsInterface
Interface de comunicación entre la parte web y la parte no web (nativa).
1.  package es.carlosgarcia.android;  
2.    
3.  /** 
4.   * Pequeño ejemplo de aplicación mixta: Web y Nativa. Invocar desde JavaScript a la parte Nativa y viceversa.   
5.   * @author Carlos García Pérez. 
6.   * @see    http://carlos-garcia.es 
7.   */  
8.  public interface MyAndroidToJsInterface {  
9.      public void   metodoDemo1();  
10.     public String metodoDemo2();  
11. }  
es.carlosgarcia.android.WebDemoActivity
Actividad de la aplicación.
1.  package es.carlosgarcia.android;  
2.    
3.  import org.json.JSONException;  
4.  import org.json.JSONObject;  
5.    
6.  import android.app.Activity;  
7.  import android.os.Bundle;  
8.  import android.view.KeyEvent;  
9.  import android.view.View;  
10. import android.view.View.OnClickListener;  
11. import android.webkit.WebView;  
12. import android.widget.Button;  
13. import android.widget.EditText;  
14. import android.widget.Toast;  
15.   
16. /** 
17.  * Pequeño ejemplo de aplicación mixta: Web y Nativa. Invocar desde JavaScript a la parte Nativa y viceversa.   
18.  * @author Carlos García Pérez. 
19.  * @see    http://carlos-garcia.es 
20.  */  
21. public class WebDemoActivity extends Activity implements MyAndroidToJsInterface, OnClickListener {  
22.     private WebView  browser;  
23.     private EditText txt1;  
24.       
25.     @Override  
26.     public void onCreate(Bundle savedInstanceState) {  
27.         super.onCreate(savedInstanceState);  
28.         this.setContentView(R.layout.main);  
29.           
30.         browser = (WebView) findViewById(R.id.webview);  
31.         Button btn1 = (Button) findViewById(R.id.btn1);  
32.         txt1 = (EditText) findViewById(R.id.txt1);  
33.           
34.         browser.getSettings().setJavaScriptEnabled(true);  
35.         browser.addJavascriptInterface(this"jsNativeInterface");  
36.         browser.loadUrl("file:///android_asset/carlos-garcia.html");  
37.         btn1.setOnClickListener(this);  
38.     }  
39.       
40.     @Override  
41.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
42.         if ((keyCode == KeyEvent.KEYCODE_BACK) && browser.canGoBack()) {  
43.             browser.goBack();  
44.             return true;  
45.         }  
46.         return super.onKeyDown(keyCode, event);  
47.     }     
48.       
49.     /** 
50.      * Llamamos desde Android a Javascript 
51.      * android.view.View.OnClickListener 
52.      */  
53.     public void onClick(View v) {  
54.         browser.loadUrl("javascript:callFromAndroidToJS('" + txt1.getText().toString() + "')");  
55.           
56.     }     
57.       
58.     /** 
59.      * Este método es invocado desde JavaScript => Muestra un mensaje por pantalla 
60.      * MyAndroidToJsInterface 
61.      */  
62.     public void metodoDemo1() {  
63.         Toast.makeText(this"Invocado el metodo: metodoDemo1", Toast.LENGTH_SHORT).show();  
64.     }  
65.       
66.     /** 
67.      * Este método es invocado desde JavaScript => Devuelve un objeto JSON desde la aplicación Nativa  
68.      * MyAndroidToJsInterface 
69.      */  
70.     public String metodoDemo2() {  
71.         String toReturn = null;  
72.           
73.         try {  
74.             JSONObject json = new JSONObject();  
75.             json.put("timestamp", System.currentTimeMillis());  
76.             json.put("autor",     "http://www.carlos-garcia.es");  
77.             toReturn = json.toString();  
78.         } catch (JSONException e) {  
79.             // no se dará  
80.         }  
81.   
82.         return toReturn;  
83.     }  
84.    
85. }  
AndroidManifest.xml
Archivo de configuración de la aplicación.
1.  <?xml version="1.0" encoding="UTF-8"?>  
2.  <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
3.        package="es.carlosgarcia.android"  
4.        android:versionCode="1"  
5.        android:versionName="1.0">  
6.    
7.      <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">  
8.          <activity android:name=".WebDemoActivity" android:label="@string/app_name">  
9.              <intent-filter>  
10.                 <action android:name="android.intent.action.MAIN" />  
11.                 <category android:name="android.intent.category.LAUNCHER" />  
12.             </intent-filter>  
13.         </activity>  
14.     </application>  
15.       
16.      <uses-sdk android:minSdkVersion="3" />  
17.     <uses-permission android:name="android.permission.INTERNET"/>  
18. </manifest>