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.