Android - Meilleures pratiques

Il existe certaines pratiques que vous pouvez suivre lors du développement d'une application Android. Ceux-ci sont suggérés par l'androïde lui-même et ils continuent de s'améliorer avec le temps.

Ces bonnes pratiques incluent les fonctionnalités de conception d'interaction, les performances, la sécurité et la confidentialité, la compatibilité, les tests, la distribution et la monétisation des conseils. Ils sont réduits et sont répertoriés ci-dessous.

Bonnes pratiques - Entrée de l'utilisateur

Chaque champ de texte est destiné à un travail différent. Par exemple, certains champs de texte sont pour du texte et d'autres pour des nombres. S'il s'agit de nombres, il est préférable d'afficher le pavé numérique lorsque ce champ de texte est sélectionné. Sa syntaxe est.

<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" />

Sinon, si votre champ est pour mot de passe, il doit afficher un indice de mot de passe, afin que l'utilisateur puisse facilement se souvenir du mot de passe. Cela peut être réalisé comme.

<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" />

Meilleures pratiques - Emplois d'arrière-plan

Certaines tâches d'une application s'exécutent dans un arrière-plan d'application. Leur travail peut être de récupérer quelque chose sur Internet, de jouer de la musique, etc.

AsyncTask Vs Services.

Les deux sont utilisés pour effectuer des tâches en arrière-plan, mais le service n'est pas affecté par la plupart des événements du cycle de vie de l'interface utilisateur, il continue donc à s'exécuter dans des circonstances qui arrêteraient une AsyncTask.

Meilleures pratiques - Performances

Les performances de votre application doivent être à la hauteur. Mais il devrait fonctionner différemment non pas sur le front-end, mais sur le back-end lorsque l'appareil est connecté à une source d'alimentation ou en charge. La charge peut provenir de l'USB et du câble métallique.

Lorsque votre appareil se charge, il est recommandé de mettre à jour les paramètres de votre application, le cas échéant, par exemple en maximisant votre taux de rafraîchissement chaque fois que l'appareil est connecté. Cela peut être fait comme ceci.

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);

Meilleures pratiques - Sécurité et confidentialité

Il est très important que votre application soit sécurisée et non seulement l'application, mais les données utilisateur et les données d'application doivent également être sécurisées. La sécurité peut être augmentée par les facteurs suivants.

  • Utilisez le stockage interne plutôt qu'externe pour stocker les fichiers d'applications

  • Utilisez des fournisseurs de contenu dans la mesure du possible

  • Utiliser SSl lors de la connexion au Web

  • Utilisez les autorisations appropriées pour accéder aux différentes fonctionnalités de l'appareil

Exemple

L'exemple ci-dessous illustre certaines des meilleures pratiques à suivre lors du développement d'une application Android. Il crée une application de base qui vous permet de spécifier comment utiliser les champs de texte et comment augmenter les performances en vérifiant l'état de charge du téléphone.

Pour expérimenter cet exemple, vous devez l'exécuter sur un appareil réel.

Pas La description
1 Vous utiliserez l'IDE de studio Android pour créer une application Android sous un package com.example.sairamkrishna.myapplication.
2 Modifiez le fichier src / MainActivity.java pour ajouter le code
3 Modifiez le fichier XML de mise en page res / layout / activity_main.xml, ajoutez tout composant GUI si nécessaire.
4 Exécutez l'application et choisissez un appareil Android en cours d'exécution, installez l'application dessus et vérifiez les résultats.

Voici le contenu 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();
   }
}

Voici le contenu 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>

Voici le contenu de Strings.xml

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

Voici le contenu 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>

Essayons d'exécuter votre application. Je suppose que vous avez connecté votre appareil mobile Android à votre ordinateur. Pour exécuter l'application à partir du studio Android, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Android Studio affichera les images suivantes.

L'image ci-dessus montre une sortie de l'application

Maintenant, tapez simplement sur le champ du nom d'utilisateur et vous verrez les suggestions Android intégrées du dictionnaire commencer à apparaître. Ceci est montré ci-dessus.

Vous verrez maintenant le champ du mot de passe. Il disparaîtrait dès que vous commenceriez à écrire sur le terrain. Il est montré ci-dessus.

À la fin, connectez simplement votre appareil au câble secteur ou au câble USB et appuyez sur le bouton de vérification de la charge. Dans mon cas, je connecte l'alimentation secteur, cela affiche le message suivant.