AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tips para programadores de apps

Ein Thema von DP News-Robot · begonnen am 1. Jan 2021
Antwort Antwort
Benutzerbild von DP News-Robot
DP News-Robot

Registriert seit: 4. Jun 2010
14.968 Beiträge
 
#1

Tips para programadores de apps

  Alt 1. Jan 2021, 22:50





1) Revisar el consumo de memoria


Uno de nuestros objetivos al programar una aplicación para dispositivos móviles es no desperdiciar el uso de la memoria utilizándola eficientemente y evitando los memory leaks, en mi caso cuando estoy ejecutando el software que he programado, utilizo la siguiente rutina en Android que me va comprobando la memoria disponible actual y la memoria total del dispositivo.

Este procedimiento lo asocio a un componente tTimer para que cada segundo me informe de la situación actual del consumo de memoria.

Después voy abriendo y cerrando Forms varias veces y compruebo antes y después la memoria disponible. Cuando la diferencia es considerable toca revisar el código. Hay que tener en cuenta que el sistema Android es dinámico y en background se van abriendo y cerrando programas que forman parte del sistema operativo que también modifican la memoria disponible del dispositivo.

La rutina que utilizo es la siguiente:


USES
Androidapi.JNI.App;

VAR
MemLibre, MemTotal: STRING;
Am: JActivityManager;
Mi: JActivityManager_MemoryInfo;

...

Am := GetActivityManager;
Mi := TJActivityManager_MemoryInfo.Create;
Am.GetMemoryInfo(Mi);
// bajamemoria := mi.lowMemory;
MemLibre := (Mi.AvailMem DIV 1048576).Tostring() + 'Mb';
MemTotal := (Mi.TotalMem DIV 1048576).Tostring() + 'Mb';
Label2.Text := MemLibre + ' / ' + MemTotal;

2) Evitar el uso de "Release" con el componnte tWebBrowser


Si inserta un componente tWebBrowser (con su propiedad Name: WebBrowser1) no escriba WebBrowser1.Release para liberar memoria al cerrar la app. Esta instrucción está desactualizada y no tiene ningún efecto.

3) Controlar el uso de Form.BringTofront, después del Form.Show


No es necesario poner

Form1.Show;

Form1.BringtoFront;

Con poner Form1.Show es suficiente, ahorra código y evitará problemas cuando tiene muchos forms en la app.

4) Añadir FireDAC.Phys.SQLiteWrapper.Stat

Si usa FireDac, no olvide añadir en el USES de la unit: FireDAC.Phys.SQLiteWrapper.Stat

Esto se ha activado en la última versión de Rad Studio la 10.4

5) No use Application.Processmessages al programar apps para Android.


No tiene ningún efecto en el código




6) Optimizar SQLite


6.1) Use el comando Sweep de Firedac para optimizar la base de datos SQLite.

Internamente llama al comando VACCUM de SQLite, haciendo lo siguiente:


Primero copia los datos dentro de un archivo de base de datos a una base de datos temporal. Esta operación desfragmenta los objetos de la base de datos, ignora los espacios libres y vuelve a empaquetar páginas individuales. Luego, SQLite copia el contenido del archivo de base de datos temporal al archivo de base de datos original. Se sobrescribe el archivo de base de datos original.

Esto se hace de la siguiente forma:

Añada un componente llamado tFDSQLiteValidate al form.









y después escriba:


FDSQLiteValidate1.Sweep;

Recordar que la base de datos sobre la que tengamos que hacer esta operación ha de estar cerrada, en caso contrario salta una excepción.


6.2) Use LIMIT 1 Cuando sólo quiera obtener una única fila al hacer una consulta.


En estos casos, añadir LIMIT 1 al query puede mejorar significativamente la velocidad. De esta forma la base de datos dejará de escanear resultados en el momento que encuentre uno, en lugar de recorrer toda la tabla o un índice.


6.3) Indexe los campos de búsqueda.

Si utiliza siempre las mismas columnas para realizar búsquedas, indéxelos para mejorar la velocidad.

6.4) Evite SELECT *

Siempre que se pueda, coloque a continuación del SELECT los nombres de las columnas que use. Si una tabla tiene 2000 columnas no es eficiente hacer un select de las 2000.















Suscribirse :



Weiterlesen...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz