So optimieren Sie die Anwendungsentwicklung

Hallo! Mein Name ist Andrey, ich bin Android-Entwickler bei Genesis Media und erstelle Anwendungen fĂŒr unsere Medienunternehmen in Afrika. Der Kontinent ist im Internet unglaublich teuer, und die wichtigsten MobilgerĂ€te sind Android-Smartphones mit geringem Stromverbrauch. Deshalb tue ich mein Bestes, um unsere Produkte einfacher zu machen.

Dieser Text enthĂ€lt die bewĂ€hrten Methoden zur Optimierung der von uns verwendeten Anwendungen fĂŒr SchwellenmĂ€rkte. Betrachten Sie dies als Leitfaden fĂŒr AnfĂ€nger-Entwickler.

Unternehmen sind daran interessiert, ihr Produkt einem neuen Publikum zugĂ€nglich zu machen. In Indien ist beispielsweise nur ein Drittel der Bevölkerung mit dem Internet verbunden, in Nigeria die HĂ€lfte. Ein solches Potential verschwindet! Daher konzentrieren sich Entwickler großer Unternehmen auf die Optimierung von Anwendungen fĂŒr aufstrebende MĂ€rkte.



Die Hauptprobleme:

  • GerĂ€te mit wenig RAM
  • GerĂ€te mit kleinen Bildschirmen oder niedriger Auflösung
  • teures Internet
  • instabile Internetverbindung
  • alte Versionen von Betriebssystemen


Wichtige Entscheidungen


AnwendungsgrĂ¶ĂŸe minimieren


In MĂ€rkten mit teurem Internet und GerĂ€ten mit geringem Stromverbrauch liegt der Kampf buchstĂ€blich ĂŒber Megabyte. Ob Ihre Anwendung heruntergeladen wird oder nicht, hĂ€ngt von der GrĂ¶ĂŸe ab. Opera-Entwickler sind sehr stolz darauf, dass ihre Anwendung nur 8 MB belegt. Um stolz auf unser Produkt zu sein, haben wir sieben Lösungen gefunden.

  • Minimieren Sie die Anzahl der Bibliotheken. Zuerst haben wir die zusĂ€tzlichen Bibliotheken entfernt und dann beschlossen, Bibliotheken von Drittanbietern im Allgemeinen aufzugeben. Sie vereinfachen die Arbeit der Entwickler, aber fĂŒr ein paar praktische Funktionen ist es nicht zumutbar, eine ganze Bibliothek zu verbinden. Daher beschreiben wir unabhĂ€ngig die Logik fĂŒr die BedĂŒrfnisse jedes Projekts. NatĂŒrlich braucht es mehr Zeit, mehr Code, aber es reduziert die GrĂ¶ĂŸe der Anwendung erheblich.
  • Bewahren Sie keine Bibliotheken mit Ă€hnlichen Funktionen in AbhĂ€ngigkeiten auf. Wenn die Nutzung von Bibliotheken unumgĂ€nglich ist - zum Beispiel die Erstellung von Werbung -, sehen Sie, welche Bibliotheken darin enthalten sind. Vielleicht solltest du deine Geliebte zugunsten derjenigen aufgeben, die bereits in einer anderen liegt.
  • Verwenden Sie helle Bilder. Die Ressourcen des Anwendungsmoduls - Bilder und mehr - nehmen hĂ€ufig den grĂ¶ĂŸten Platz ein. Reduzieren Sie sie. Dies ist einfacher, als herauszufinden, wo Sie von nun an schrumpfen mĂŒssen.

Zu diesem Zweck haben wir angefangen, Vektorgrafiken zu verwenden - sie bestehen aus einfachen geometrischen Formen, weshalb sie oberflĂ€chlich verstĂ€ndlich sind und wenig Platz beanspruchen. Anstelle des Standardpakets mit fĂŒnf Bildern fĂŒr verschiedene Anzeigeformate fĂŒgen Sie einen Vektor hinzu. Es Ă€ndert die GrĂ¶ĂŸe, ohne die QualitĂ€t zu verlieren. Von den Minuspunkten sollte das Bild einfach sein. Sie können ein komplexes Bild in einem Vektor zeichnen, dies ist jedoch nicht die beste Option, da es noch lange Zeit viel wiegt und lĂ€dt.

Wenn das Bild komplex ist, verwenden wir WebP. Dies ist ein Google-Komprimierungsformat, mit dem Sie das Gewicht eines Bilds um das Zehnfache reduzieren können.

Captain's Council: Arbeiten Sie mit einem Designer zusammen. Erstellen Sie zunÀchst ein einfaches Produkt, damit es nicht angepasst, technisch ausgefeilt werden muss.

  • Verschleiern Sie den Code. Ich verwende das Proguard-Dienstprogramm, aber es gibt andere Optionen. ZusĂ€tzlich zur Konvertierung von Code in einen nicht lesbaren Zustand werden nicht verwendete Ressourcen identifiziert und entfernt und dadurch optimiert.
  • Verwenden Sie die Plattformressourcen. Beispielsweise verfĂŒgt Android ĂŒber eine innere Klasse von zeichnungsfĂ€higen Objekten, mit denen Sie einfache Bilder im System zeichnen können, ohne die Ressourcen zu erweitern. Legen Sie die Logik fĂŒr die Erstellung des Elements fest. Dieses wird beim Laden der grafischen OberflĂ€che eigenstĂ€ndig gezeichnet.
  • Ressourcen wiederverwenden. Beispielsweise können doppelte Bilder in verschiedenen Farben nicht als zwei Kopien gespeichert werden, sondern als eine plus Farbfilter. Auf der Suche nach solchen Optimierungsoptionen verbringen Sie Zeit, aber es lohnt sich, um ein minimales Anwendungsvolumen beizubehalten.
  • Verwenden Sie das App Bundle , den Typ der Anwendungsassembly, wenn Elemente fĂŒr jeden Benutzer nicht vom Entwickler, sondern in PlayMarket einzeln erfasst werden. Dies optimiert die GrĂ¶ĂŸe, da die Plattform den Typ des BenutzergerĂ€ts kennt und eine geeignete Image-Option packt. PlayMarket gibt an, dass es dabei hilft, die GrĂ¶ĂŸe der Anwendung um 30% zu reduzieren. Geeignet fĂŒr diejenigen, die sich nicht mit den vorherigen Optionen beschĂ€ftigen möchten.
  • Optimieren Sie die Anzeigegeschwindigkeit der BenutzeroberflĂ€che - dies ist relevant fĂŒr Benutzer mit schwacher Hardware. HĂ€ufig wird die BenutzeroberflĂ€che in der XML-Datei festgelegt - dies ist im Vergleich zum Layout im Code praktisch und schnell. Dies wirkt sich nicht immer positiv auf die Renderzeit der BenutzeroberflĂ€che aus, insbesondere bei schwachen GerĂ€ten. Sie können diesen Vorgang etwas beschleunigen, wenn Sie das Layout im Code einrichten. Dies spart Zeit bei der Konvertierung des XML-Layouts in Code. Oder Sie können die AsyncLayoutInflater-Klasse verwenden, um diesen Prozess asynchron zu machen. Möglicherweise wird die allgemeine Rendering-Geschwindigkeit nicht erhöht, aber zumindest wird die BenutzeroberflĂ€che reaktionsschneller (weniger verzögert, langsam).


Optimierung der Verkehrsnutzung


Der Mangel an Internet ist kein Fehler, sondern der Stand der Anwendung. Und Sie mĂŒssen in der Lage sein, richtig mit ihm zu arbeiten. Der Benutzer muss Zugang zu Informationen haben - lassen Sie ihn schauen, lesen, zeigen, was alles ist. Schicken Sie es nicht zurĂŒck.

  • Daten-Caching. Das Einsparen von Verkehr in Afrika ist sehr wichtig - es ist Gold wert. Sobald der Benutzer den Newsfeed öffnet, sollten daher alle Informationen zwischengespeichert werden. Wenn das Internet verloren geht oder eine Person die Anwendung verlĂ€sst, wird der Inhalt nicht erneut geladen.
  • ETag. Das erneute Laden von Daten ist eine unbewusste Benutzergewohnheit, die Sie beim kostengĂŒnstigen Internet nicht bemerken, in SchwellenlĂ€ndern jedoch teuer ist. Die ETag-Logik analysiert Hash-Daten und aktualisiert nur geĂ€nderte Informationen oder sendet eine Anfrage „Inhalt wurde nicht geĂ€ndert“ mit einem Gewicht von nicht mehr als 1 KB. Es ist ratsam, es der Abfragelogik hinzuzufĂŒgen, die viele Daten zurĂŒckgeben kann.
  • Deaktivieren Sie Bilder. Der Benutzer liest also die Nachrichten, gibt jedoch keinen Datenverkehr fĂŒr das Herunterladen von Bildern aus. Nach Belieben kann er sie mit einem Fingertipp "einschalten", aber sie werden nicht automatisch hochgezogen.


Total


Dies sind die wichtigsten Möglichkeiten, um Benutzern beim Sparen von Datenverkehr und GerĂ€teplatz zu helfen. Versuchen Sie, der Anwendung keine Dienste hinzuzufĂŒgen, die im Hintergrund ausgefĂŒhrt werden. Dies erfolgt jedoch erst nach der ersten OptimierungsunterstĂŒtzung fĂŒr alle vorherigen Punkte. Das ist alles. Ich hoffe, das Material hat Ihnen geholfen.

Source: https://habr.com/ru/post/de481378/


All Articles