Communication efficace entre PHP et Android: un guide en deux parties (partie 1)
Concepts clés
Cette série en deux parties démontre la création d'un service Web PHP REST haute performance pour une application Android. Nous nous concentrerons sur des techniques efficaces de sérialisation des données et de compression. Cette approche est adaptable à d'autres plateformes mobiles. Les connaissances de base du PHP et du développement Android sont supposées.
AsyncTask
pour gérer les demandes de réseau sur un thread d'arrière-plan, empêchant les gel de l'interface utilisateur. Un cycle de demande / de réponse typique
application/json
, application/x-msgpack
) et les formats de compression (par exemple, bzip2
, gzip
, deflate
) via les en-têtes de demande. Application Android: demandant des données
Pour faire des demandes HTTP, votre application Android a besoin de l'autorisation INTERNET
dans AndroidManifest.xml
:
<uses-permission android:name="android.permission.INTERNET" />
La classe DataModel
utilise AndroidHttpClient
(Android 2.2 et supérieur) pour gérer les demandes HTTP:
import android.net.http.AndroidHttpClient; import java.io.IOException; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; public class DataModel { // ... (rest of the class remains the same) }
La méthode getData()
envoie une demande HttpGet
, y compris des en-têtes spécifiant les formats de sérialisation pris en charge (Accept
) et de compression (Accept-Encoding
). L'adresse IP 10.0.2.2
est utilisée pour les demandes de l'émulateur.
Android App: implémentation de la tâche d'arrière-plan
La récupération des données est asynchrone en utilisant AsyncTask
:
<uses-permission android:name="android.permission.INTERNET" />
GetDataTask
étend AsyncTask
, gérer la pré-exclure (montrant une boîte de dialogue de progression), la récupération des données d'arrière-plan à l'aide de DataModel
et la post-exécution (rejetant la dialogue, gérer les erreurs potentielles et traiter le DataValueObject
).
Application Android: exécution de la tâche d'arrière-plan
Avant d'exécuter GetDataTask
, vérifiez la connectivité réseau:
import android.net.http.AndroidHttpClient; import java.io.IOException; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; public class DataModel { // ... (rest of the class remains the same) }
La méthode networkIsAvailable()
vérifie l'état du réseau. onCreate()
Exécute GetDataTask
uniquement si une connexion réseau est disponible; Sinon, il affiche un message d'erreur.
Conclusion (partie 1)
Cette partie s'est concentrée sur la configuration de la demande de l'application Android. La partie 2 couvrira la sérialisation des données et la compression sur les côtés Android et PHP.
Des questions fréquemment posées (FAQ) sur la conversion des projets PHP en applications Android
La section FAQS reste largement inchangée, fournissant des informations utiles sur le processus de conversion, les défis et les stratégies d'optimisation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!