Android: prácticas recomendadas

Hay algunas prácticas que puede seguir al desarrollar una aplicación de Android. Estos son sugeridos por el propio android y siguen mejorando con respecto al tiempo.

Estas mejores prácticas incluyen características de diseño de interacción, rendimiento, seguridad y privacidad, compatibilidad, pruebas, distribución y sugerencias de monetización. Se reducen y se enumeran a continuación.

Prácticas recomendadas: aportación del usuario

Cada campo de texto está destinado a un trabajo diferente. Por ejemplo, algunos campos de texto son para texto y otros son para números. Si es para números, entonces es mejor mostrar el teclado numérico cuando ese campo de texto está enfocado. Su sintaxis es.

<EditText
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:id="@+id/editText"
   android:layout_alignParentRight="true"
   android:layout_alignParentEnd="true"
   android:hint="User Name"
   android:layout_below="@+id/imageView"
   android:layout_alignLeft="@+id/imageView"
   android:layout_alignStart="@+id/imageView"
   android:numeric="integer" />

Aparte de eso, si su campo es para contraseña, entonces debe mostrar una pista de contraseña, para que el usuario pueda recordar fácilmente la contraseña. Se puede lograr como.

<EditText
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:id="@+id/editText2"
   android:layout_alignLeft="@+id/editText"
   android:layout_alignStart="@+id/editText"
   android:hint="Pass Word"
   android:layout_below="@+id/editText"
   android:layout_alignRight="@+id/editText"
   android:layout_alignEnd="@+id/editText"
   android:password="true" />

Mejores prácticas: trabajos en segundo plano

Hay ciertos trabajos en una aplicación que se ejecutan en segundo plano. Su trabajo podría consistir en buscar algo de Internet, reproducir música, etc. Se recomienda que las tareas pendientes no se realicen en el hilo de la interfaz de usuario y más bien en segundo plano mediante servicios o AsyncTask.

Servicios AsyncTask Vs.

Ambos se utilizan para realizar tareas en segundo plano, pero el servicio no se ve afectado por la mayoría de los eventos del ciclo de vida de la interfaz de usuario, por lo que continúa ejecutándose en circunstancias que cerrarían una AsyncTask.

Prácticas recomendadas: rendimiento

El rendimiento de su aplicación debe estar a la altura. Pero debería funcionar de manera diferente no en el extremo frontal, sino en el extremo posterior cuando el dispositivo está conectado a una fuente de alimentación o cargando. La carga puede realizarse desde USB y desde un cable.

Cuando su dispositivo se está cargando solo, se recomienda actualizar la configuración de su aplicación, si la hay, como maximizar su frecuencia de actualización cada vez que el dispositivo está conectado. Se puede hacer así.

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);

// Are we charging / charged? Full or charging.
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);

// How are we charging? From AC or USB.
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);

Prácticas recomendadas: seguridad y privacidad

Es muy importante que su aplicación sea segura y no solo la aplicación, sino también los datos del usuario y los datos de la aplicación. La seguridad se puede incrementar mediante los siguientes factores.

  • Utilice almacenamiento interno en lugar de externo para almacenar archivos de aplicaciones

  • Utilice proveedores de contenido siempre que sea posible

  • Use SSl cuando se conecte a la web

  • Utilice los permisos adecuados para acceder a diferentes funcionalidades del dispositivo

Ejemplo

El siguiente ejemplo demuestra algunas de las mejores prácticas que debe seguir al desarrollar una aplicación de Android. Contiene una aplicación básica que le permite especificar cómo usar los campos de texto y cómo aumentar el rendimiento al verificar el estado de carga del teléfono.

Para experimentar con este ejemplo, debe ejecutarlo en un dispositivo real.

Pasos Descripción
1 Utilizará Android Studio IDE para crear una aplicación de Android en un paquete com.example.sairamkrishna.myapplication.
2 Modifique el archivo src / MainActivity.java para agregar el código
3 Modifique el archivo XML de diseño res / layout / activity_main.xml agregue cualquier componente GUI si es necesario.
4 Ejecute la aplicación y elija un dispositivo Android en ejecución e instale la aplicación en él y verifique los resultados.

Aquí está el contenido de src/MainActivity.java

package com.example.sairamkrishna.myapplication;

import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {
   EditText ed1,ed2;
   Button b1;

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

      ed1=(EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      b1=(Button)findViewById(R.id.button);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         
         public void onClick(View v) {
            IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
            Intent batteryStatus = registerReceiver(null, ifilter);

            int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
            boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
            status == BatteryManager.BATTERY_STATUS_FULL;

            int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1);
            boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
            boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

            if(usbCharge){
               Toast.makeText(getApplicationContext(),"Mobile is charging on USB",
                  Toast.LENGTH_LONG).show();
            } else {
               Toast.makeText(getApplicationContext(),"Mobile is charging on AC",
                  Toast.LENGTH_LONG).show();
            }
         }
      });
   }

   @Override
   protected void onDestroy() {
      super.onDestroy();
   }
}

Aquí está el contenido de activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
   <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:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" 
   tools:context=".MainActivity">
   
   <TextView android:text="Bluetooth Example" 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:hint="User Name"
      android:layout_below="@+id/imageView"
      android:layout_alignLeft="@+id/imageView"
      android:layout_alignStart="@+id/imageView"
      android:numeric="integer" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText2"
      android:layout_alignLeft="@+id/editText"
      android:layout_alignStart="@+id/editText"
      android:hint="Pass Word"
      android:layout_below="@+id/editText"
      android:layout_alignRight="@+id/editText"
      android:layout_alignEnd="@+id/editText"
      android:password="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Check"
      android:id="@+id/button"
      android:layout_below="@+id/editText2"
      android:layout_centerHorizontal="true" />
      
</RelativeLayout>

Aquí está el contenido de Strings.xml

<resources>
    <string name="app_name">My Application</string>
</resources>

Aquí está el contenido de AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

Intentemos ejecutar su aplicación. Supongo que ha conectado su dispositivo móvil Android real con su computadora. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar de la barra de herramientas. Android Studio mostrará las siguientes imágenes.

La imagen de arriba muestra una salida de la aplicación

Ahora simplemente escriba en el campo de nombre de usuario y verá que las sugerencias de Android integradas del diccionario comenzarán a aparecer. Esto se muestra arriba.

Ahora verá el campo de contraseña. Desaparecería tan pronto como comenzaras a escribir en el campo. Se muestra arriba.

Al final, simplemente conecte su dispositivo al cable de CA o al cable USB y presione el botón de verificación de carga. En mi caso, conecto la alimentación de CA, muestra el siguiente mensaje.