|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

60.- Caducidad de una aplicación. Fecha, hora. Ofuscación.

- Vamos a ver una manera elemental de poner una fecha de caducidad a un programa, de tal manera que a partir de esa fecha no pueda seguir funcionando, incluso se desinstale.

________________
- Designer.

Para ello va mediante el Designer creamos un Layout, lo llamaremos "Layout" y contendrá:


RadioButton1 ....... Text: Jerez de la Frontera

RadioButton2 ....... Text: Puerto Real

RadioButton3 ....... Text: El Puerto de Santa María

 

Label1

________________
- Código.

Copia y pega este código en un nuevo proyecto
Sub Process_Globals
' Juan Antonio Villapando
' juana1991@yahoo.com

End Sub

Sub Globals
    Dim Label1 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout")

    Dim now, hoy, caduca, plazo As Long
                  ' Atención es: mm/dd/aaaa
    caduca = DateTime.DateParse("08/03/2018")
    hoy = DateTime.DateParse(DateTime.date(now))
    plazo = caduca - hoy

    If plazo < 0 Then
    Msgbox("El programa ha caducado.", "Caducidad")
    Activity.Finish
End If

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub RadioButton1_CheckedChange(Checked As Boolean)
    Label1.Text = "Jerez de la Frontera"
End Sub

Sub RadioButton2_CheckedChange(Checked As Boolean)
    Label1.Text = "Puerto Real"    
End Sub

Sub RadioButton3_CheckedChange(Checked As Boolean)
    Label1.Text = "El Puerto de Santa María"    
End Sub
      

El programa establece una fecha, en este caso: "08/03/2018"

Cada vez que arranca, consulta si la fecha de hoy (DateTime.date(now)) es menor que la fecha establecida, en este caso, sale del programa:

Activity.Finish

____________________________________________________

- Desinstalar programa desde código.

Si activamos la OSLibrary podríamos desinstalar el programa, ver el tutorial: 37.- Parar un programa.

- Desinstalar

Dim  i  As Intent

i.Initialize(i.ACTION_VIEW, "file:///sdcard/MyAPK.apk" )
i.SetType( "application/vnd.android.package-archive" )

StartActivity (i)

_________________________________________

- Trabajar con fechas.

El trabajo con fechas y horas lo podemos ver en el tutorial... DateTime del foro oficial B4A.

Vemos que la base de tiempo que utiliza la llama Ticks, y son los milisegundos que han transcurridos desde el 1 de enero de 1970, por eso al restar dos fechas cercanas, ya sale un número bastante grande.

También es conveniente trabajar con el librería DateUtils.

 

Hay que tener cuidado con el formato de fechas, nosotros tenemos la forma dd/mm/aaaa, pero en B4A utiliza muchas veces el formato mm/dd/aaaa, en otras ocasiones nos encontramos con el formato aaa/mm/dd, de manera que debemos saber con qué formato trabajamos.

Para establecer un formato personalizado, utilizaremos esta instrucción:

DateTime.DateFormat = "yyMMddHHmmss", según las letras escogidas, podemos establecer el formato de fecha, hay que tener en cuenta las mayúsculas y minúsculas de cada letra. Ver formatos posibles.

Otra cosa que debemos tener en cuenta es cómo cambiar la fecha el emulador SDK que estamos utilizando, para ello vamos a la ventana de "Aplicaciones", pulsamos en "Ajustes" y luego en "Fecha y hora".

________________________________________________

- Calendarios.

Ver tutorial: Dialogs botones Get Time, Get Date, en 32.- Elegir archivos...

Ver tutorial: 58.- Calendario + SQLite = Agenda.

________________________________________________

- Ofuscación.

La obfuscación consiste en complicar la compilación del código fuente para que sea más complicado, mediante ingeniería inversa, obtenerlo.

Es decir, nosotros al realizar un programa lo escribimos en código fuente. Es un texto legible con instrucciones en inglés.
hoy = DateTime.DateParse(DateTime.date(now))


Al pulsar el flecha de compilación, este código fuente se compila, pasa a un lenguaje entendible por el ordenador para ser ejecutado.

Se obtiene el archivo programa.apk. Aquí está el programa compilado y preparado para ser ejecutado por un sistema operativo.

Un informático avanzado puede tomar ese archivo programa.apk y con técnicas complicadas, descompilarlo totalmente o en partes, de manera que puede obtener y copiarnos el código fuente, y ver cómo lo hemos realizado.

Si cuando compilamos un programa lo hacemos de manera obfuscated, al archivo obtenido sufre una codificación complicada en su compilación, de manera que es mucho más complicado descompilarlo para volver a obtener su código fuente.

En Basic4Android la manera de hacer una obfuscación, es compilarlo como indico en el dibujo inferior.

- La obfuscación normalmente aumenta el tamaño del programa, si nuestro programa no es demasiado importante, es mejor hacer la compilación de forma "Release".

________________________________________________

- El archivo programa.apk

El archivo programa.apk forma el programa compilado, en realidad es un archivo que contine ficheros comprimidos.

programa.apk, ya sabemos que se encuentra en la carpeta Objects y que contiene el programa compilado y preparado para su instalación y posterior ejecución.

Podemos abrir archivo programa.apk con un Descompresor como el Winrar, por ejemplo y podemos ves que dentro de él se encuentran archivos, carpetas, iconos,...

Cuando bajamos un programa para ser instalado, realmente estamos bajando el paquete comprimido programa.apk, al llegar al móvil se descomprime e instala para su ejecución.

________________________________________________

- ¿fichero - archivo, son palabras sinónimas?

Android proviene de LINUX, en LINUX todo es un fichero, un directorio, una partición, un dispositivo,...
En cambio, llama archivo a un conjunto de ficheros, generalmente comprimidos.

Es decir, el programa.apk sería un archivo, porque en su interior tiene ficheros. Los elementos que lo contienen son ficheros (aunque sean carpetas).

________________________________________________

- Poner nombre y contraseña para entrar en una aplicación.

En este tutorial podemos ver información de como poner nombre y contraseña para entrar en una aplicación.

http://www.b4x.com/forum/basic4android-updates-questions/10504-need-example-code-password-protected-application-pls.html

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información