2010-11-29 3 views
0

J'ai une application Android sur le marché qui connecte et envoie des requêtes POST et GET à une API REST, puis stocke les résultats dans un DB qui sont ensuite interrogés et affichés dans un manière appropriée dans l'application.Portage REST API code de connexion à Android NDK en C++

Je suis intéressé par l'accélération de l'application et j'ai remarqué beaucoup de décalage entre le moment de la réception des données de l'API et les données prêtes à l'emploi. Je voudrais étudier si et comment je peux écrire un code similaire en C++ en utilisant le NDK pour me connecter à l'API REST, traiter les résultats et stocker dans une base de données ou déclencher une erreur. Je n'ai pas d'expérience en C++ et je dois d'abord savoir si je peux accéder au même DB dans le C++ que le Java, deuxièmement s'il y a d'autres mises en garde dont je devrais être conscient?

Aussi, je suppose que je devrais demander - est-ce la peine de le faire? Est-ce que je remarquerai une différence?

Tout lien vers un code similaire, ou un aperçu d'où je devrais regarder pour commencer en C++ serait grandement apprécié.

Répondre

2

Je fais la EXACT même chose, et croyez-moi: si vous avez aucune expérience C++, cela pourrait être un peu trop cher pour peu d'avantages. Dans mon cas, après un certain profilage, j'ai réorganisé les choses et j'ai eu un premier saut de performance en abandonnant DOM et en utilisant SAX. Tout le reste ne fait que rendre les choses légèrement meilleures, comme traiter la réponse pendant que les paquets sont encore en cours de transmission (c'est-à-dire ne pas attendre la réponse complète pour commencer le traitement) et multiplexer les requêtes sur le même thread. Ce que vous devriez rechercher dans Google, ce sont les sockets POSIX, les codes HTTP et les codes REST, si vous voulez tout faire à la main. Une meilleure option pourrait utiliser CURL ou quelque chose de similaire pour la partie Socket/HTTP. Je l'ai fait tout moi-même, mais seulement parce que j'ai déjà fait cela plusieurs fois.