Android - Best practice

Ci sono alcune pratiche che puoi seguire durante lo sviluppo di un'applicazione Android. Questi sono suggeriti dall'androide stesso e continuano a migliorare rispetto al tempo.

Queste best practice includono funzionalità di progettazione dell'interazione, prestazioni, sicurezza e privacy, compatibilità, test, distribuzione e suggerimenti per la monetizzazione. Sono ristretti e sono elencati come di seguito.

Migliori pratiche - Input dell'utente

Ogni campo di testo è destinato a un lavoro diverso. Ad esempio, alcuni campi di testo sono per il testo e altri per i numeri. Se è per i numeri, è meglio visualizzare il tastierino numerico quando quel campo di testo è attivo. La sua sintassi è.

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

A parte il fatto che se il tuo campo è per la password, deve mostrare un suggerimento per la password, in modo che l'utente possa ricordare facilmente la password. Può essere ottenuto come.

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

Migliori pratiche - Lavori in background

Ci sono alcuni lavori in un'applicazione che sono in esecuzione in uno sfondo dell'applicazione. Il loro compito potrebbe essere quello di recuperare qualcosa da Internet, riprodurre musica, ecc. Si consiglia di non eseguire le attività in attesa da tempo nel thread dell'interfaccia utente e piuttosto in background dai servizi o AsyncTask.

AsyncTask Vs Services.

Entrambi vengono utilizzati per eseguire attività in background, ma il servizio non è influenzato dalla maggior parte degli eventi del ciclo di vita dell'interfaccia utente, quindi continua a essere eseguito in circostanze che potrebbero chiudere un AsyncTask.

Migliori pratiche - Prestazioni

Le prestazioni della tua applicazione dovrebbero essere all'altezza. Ma dovrebbe funzionare in modo diverso non sul front-end, ma sul back-end quando il dispositivo è collegato a una fonte di alimentazione o in carica. La ricarica potrebbe provenire da USB e da cavo.

Quando il dispositivo si carica da solo, si consiglia di aggiornare le impostazioni dell'applicazione, se presenti, ad esempio massimizzare la frequenza di aggiornamento ogni volta che il dispositivo è connesso. Può essere fatto così.

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

Migliori pratiche - Sicurezza e privacy

È molto importante che la tua applicazione sia sicura e non solo l'applicazione, ma anche i dati dell'utente e dell'applicazione. La sicurezza può essere aumentata dai seguenti fattori.

  • Utilizza la memoria interna anziché esterna per archiviare i file delle applicazioni

  • Utilizza i fornitori di contenuti ove possibile

  • Usa SSl quando ti connetti al web

  • Utilizzare le autorizzazioni appropriate per accedere alle diverse funzionalità del dispositivo

Esempio

L'esempio seguente mostra alcune delle migliori pratiche da seguire durante lo sviluppo di un'applicazione Android. Crea un'applicazione di base che consente di specificare come utilizzare i campi di testo e come aumentare le prestazioni controllando lo stato di carica del telefono.

Per sperimentare questo esempio, è necessario eseguirlo su un dispositivo reale.

Passi Descrizione
1 Utilizzerai l'IDE di Android Studio per creare un'applicazione Android con un pacchetto com.example.sairamkrishna.myapplication.
2 Modifica il file src / MainActivity.java per aggiungere il codice
3 Modifica il file XML di layout res / layout / activity_main.xml aggiungi qualsiasi componente della GUI se necessario.
4 Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati.

Ecco il contenuto di 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();
   }
}

Ecco il contenuto di 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>

Ecco il contenuto di Strings.xml

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

Ecco il contenuto di 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>

Proviamo a eseguire la tua applicazione. Presumo che tu abbia collegato il tuo attuale dispositivo mobile Android al tuo computer. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Android Studio mostrerà le seguenti immagini.

L'immagine sopra mostra un output dell'applicazione

Ora digita semplicemente nel campo del nome utente e vedrai che i suggerimenti Android integrati dal dizionario inizieranno a comparire. Questo è mostrato sopra.

Ora vedrai il campo della password. Scomparirà non appena inizi a scrivere sul campo. È mostrato sopra.

Alla fine, collega il tuo dispositivo al cavo CA o al cavo USB e premi il pulsante di controllo della ricarica. Nel mio caso, collego l'alimentazione CA, viene visualizzato il seguente messaggio.