Je construis une application qui nécessite beaucoup de dessin sur la toile. Je remarque que l'application est un peu laggy dans des appareils à haute résolution (Nexus 7 par exemple). J'ai vu une option GPU de force dans l'option de développeur. Lorsque la force GPU est activée, mon application fonctionne absolument lisse.
J'ai lu que cette option GPU de force s'appelle une accélération matérielle et elle est disponible uniquement pour Android 3.0 et plus. P>
Mon application cible Android 2.3 et supérieur / p>
3 Réponses :
Je suppose que vous avez déjà ajouté Android: Hardwareacceléated à votre fichier manifeste? C'est ce qui permet l'accélération matérielle dans votre application par Le guide de l'accélération matérielle et doit faire exactement ce que forcer le GPU fait à un niveau système. P> p>
Mon application utilise Android 2.3 API 10, il n'a pas d'Android: Hardwareacceletéd, de sorte que sa plaignée sur "Aucun identifiant de ressource trouvé pour l'attribut" HardwareAscelerated "dans le paquet" Android ""
Vous pouvez créer et cibler différents niveaux d'API. Construisez contre l'API 11+ et conservez votre minimum de SDK à 10 heures.
Ianhanniballake, vous dites que je peux construire mon application à l'aide de la dernière API (11) et rendez-vous toujours exécutable dans les appareils API inférieurs? Cela signifie-t-il que j'ai juste besoin de mettre à niveau la cible de projet Android sur la dernière API?
C'est exactement correct. C'est l'Android: Minssdkversion dans votre manifeste qui contrôle les appareils qu'il exécutera, pas ce que vous construisez. Cela vous permet d'utiliser de nouvelles API tout en restant compatibles en arrière. Bien sûr, vous voudriez toujours une vérification de version avant tout appel de méthode, mais dans ce cas, l'attribut XML HardwareAcelerated est simplement ignoré sur les périphériques pré-nid d'abeille.
ahh, je vais donner cela un essai ... et merci pour votre commentaire
Ensemble Minssdkversion sur 10 et TargetsDkversion au maximum
Comme ci-dessous P> puis p> et pour des particularités p> ou p>
Si vous souhaitez créer votre application en utilisant le niveau d'API inférieur, vous pouvez accéder à la méthode via réflexion: où Layer_type_x est la valeur entière constante du type de couche recherchée: P> < Pré> xxx pré> p>
Désolé pour la confusion, je construis mon application sur Android 2.3 API 10, donc il n'a donc pas vraiment ou GetWindow (). Setflags (fenêtremanager.layoutparams.flag_hardware_Acpearated, WindowManager .Layoutparams.flag_hardware_Célépératé);
Avez-vous ajouté la suppression à votre surcreee?
Veuillez définir votre cible de construction sur l'API Niveau 11 ou supérieur, puis utiliser
Android: HardwareAscelerated = "vrai" code>.
Si je fixe ma cible de construction sur l'API Niveau 11, je ne pourrai pas prendre en charge les périphériques API Niveau 10 ... J'aimerais toujours pouvoir soutenir l'API 10 ...
WTSANG02, j'ai essayé votre code mais cela m'agissait avec "flag_hardware_acpeated ne peut pas être résolu ou n'est pas un champ" car windowmanager.layoutparams.flag_hardware_accéléré n'est pas disponible dans API 10
«Si je fixe ma cible de construction sur API Niveau 11, je ne pourrai pas prendre en charge les périphériques API Niveau 10» - Oui, vous pouvez.