Cydia 1.1.29 und 1.1.30 wurden veröffentlicht

Die Versionen 1.1.29 und 1.1.30 von Cydia wurden gestern Abend für alle iPhone-, iPad- und iPod Touch-Benutzer veröffentlicht, die iOS 10 gejailbreakt haben. Zunächst wurde Version 1.1.29 von Cydia mit vielen Änderungen veröffentlicht, dann wurde Version 1.1.30 veröffentlicht an uns, um ein Problem des vorherigen Updates zu lösen.

In der Version 1.1.29 von Cydia hat der Ersteller dieser Anwendung einige schwerwiegende Probleme gelöst, die die Aktualisierung von Quellen für Optimierungen, Plugins und Anwendungen verhinderten. Darüber hinaus wurden im Update für Cydia die Probleme bei der Installation all dieser Pakete auf iDevices mit iOS 10 und Jailbreak behoben.

Das Update für die Cydia-Anwendung löst nicht nur die Probleme, sondern verbessert auch die Leistung der Anwendung erheblich, sodass wir alle Pakete viel schneller installieren werden. Die Verbesserung ist nicht enorm, aber Sie werden eine erhebliche Verringerung des Zeitaufwands für die Aktualisierung von Quellen und die Installation von Paketen in Ihren Terminals feststellen.

Derzeit können Sie nur Version 1.1.30 der Cydia-Anwendung installieren, diese enthält jedoch auch alle Änderungen, die wir in 1.1.29 verfügbar haben. Das Aktualisieren der Cydia-Anwendung kann auch über die Cydia-Anwendung erfolgen, die auf unseren iPhones, iPads und iPod Touches installiert ist. Unten können Sie alle damit verbundenen Neuigkeiten sehen.

Cydia 1.1.29 ist eine Performance-Version


Vermeiden Sie das Herunterladen von Übersetzungen, die 404 sind

Während ich derzeit glaube, dass es kein einziges Repository in freier Wildbahn gibt, das diese Funktion nutzt (was mich traurig macht, aber es ist auch nicht so, dass mein Repository dies derzeit tut :/), unterstützt Cydia Paketnamen und -beschreibungen in verschiedene Sprachen übersetzt werden.

Wie einige Leute bemerkt haben, machten die neuen 64-Bit-Builds von Cydia all dies noch „korrekter“ und versuchten, viele Übersetzungsdateien herunterzuladen, was die Aktualisierungen langsamer machte. Wie zu erwarten war, meinte jemand: „Warum nicht einfach diese Funktion entfernen?“, was wirklich falsch zu sein schien :/.

Stattdessen habe ich eine Funktion von APT behoben, die „optionale“ Dateien aus dem Download herausfiltern soll, um mit Repositorys zu funktionieren, die nicht über die Liste der Dateien verfügen, die normalerweise in der Release-Datei enthalten wären (das Verhalten in diesem Fall ist es). lädt sie nicht herunter: Wenn Sie über ein solches Repository verfügen und Übersetzungen wünschen, reparieren Sie Ihre Release-Datei.

Korrektes Laden des Paketkatalogs

Wussten Sie, dass CFMutableArray im Gegensatz zu std::vector oder NSMutableArray mit „Kapazität“ nicht „so viel kann vor der nächsten Zuweisung gespeichert werden“ gemeint ist, sondern „so viel kann darin gespeichert werden?“. Array: Es wird nie größer werden“? Nun, das habe ich nicht getan :(. Anscheinend auch Microsoft nicht ;P. Während ich an der nächsten Ausgabe arbeitete, entdeckte ich diese und war ziemlich schockiert.

Dies könnte einige der seltsameren Dinge erklären, über die Leute in letzter Zeit bei der Verwendung von Cydia berichtet haben: Fälle, in denen einige Pakete angezeigt werden, andere jedoch nicht, die niemand replizieren konnte und die scheinbar einfach verschwinden: Wenn Cydia ohne Katalog startet, passiert das Stellen Sie die Kapazität auf 16 Pakete ein und erhöhen Sie sie dann bei jeder Aktualisierung um 1024 ... Aber es gibt viele Zehntausende von Paketen allein in den Standard-Repositorys, sodass es einige Zeit dauern kann, bis Cydia „aufgewärmt“ ist und alle Pakete sieht sie, danach würde es einfach funktionieren :/.

Andererseits könnte es auch nicht so sein ... das ist einfach ein seltsames Verhalten eines Arrays ... es wird sogar behauptet, dass das Anhängen an das Ende eines Arrays mit voller Kapazitätsbeschränkung zu „undefiniertem Verhalten“ führt. Einige Leute berichten, dass das Array größer wird? Ehrlich gesagt: Ich habe es nicht getestet, da ich dies herausgefunden habe, als ich feststellte, dass ich sowieso zu so etwas wie std::vector wechseln musste. Ich denke jedoch, dass es eine wirklich interessante Kleinigkeit für diejenigen von uns ist, die sich die Mühe machen, die erweiterten Versionshinweise für eine Cydia-Performance-Version zu lesen ;P.

Verbessern Sie die Sortierleistung des Paketkatalogs

Cydia steht vor der verrückten Herausforderung, lokal auf Ihrem Gerät tun zu müssen, was eine zentralisierte, kuratierte, philosophisch nervige Lösung (ich schüttle dir die Faust, Apple!) auf einem Server tun würde: eine Liste mit vielen Zehntausenden von Paketen aktualisieren , wobei das Ergebnis nicht nur alphabetisch sortiert wird, sondern auch auf die vom Benutzer erwartete gebietsschemaabhängige Art und Weise.

Ich habe für Cydia eine meiner Meinung nach ziemlich epische Lösung für dieses Problem entworfen, bei der die Basissortierung so angepasst wurde, dass sie mit verrückten Transformationen an Strings funktioniert, mehrere Durchgänge gefolgt von einer „Fixup“-Einfügungssortierung. Es ist die Art von Algorithmus, die wirklich zeigt, warum alle Entwickler über fundierte Algorithmenkenntnisse verfügen sollten, denn eines Tages werden Sie einen davon brauchen. Ich halte Vorträge über diesen Sortieralgorithmus in Informatikkursen auf Hochschulniveau; P.

Im Laufe der Jahre war jedoch eine gewisse „Kalibrierung“ erforderlich, und anscheinend war es der Herausforderung, Chinesisch (traditionell) in „Strichreihenfolge“ zu sortieren, nicht gewachsen; Diese Reihenfolge war eine Funktion, die von chinesischen Benutzern stark nachgefragt wurde und ab iOS 8 zu Cydia hinzugefügt wurde, aber dazu führte, dass die Basissortierdurchgänge meines Algorithmus zu viel spätere Korrekturen mittels Einfügungssortierung erforderten. Hier müssen im Basisdurchlauf noch einige Verbesserungen vorgenommen werden, aber als dieses Leistungsproblem gestern gemeldet wurde, hatte ich eine bessere Lösung.

Tatsächlich hatte ich die Sortierreihenfolge von Cydia bereits so konzipiert, dass sie einen „Sortiercache“ nutzen kann und die Ergebnisse früherer Ausführungen von Cydia wiederverwendet, um „nahe genug“ zu kommen, anstatt Basissortierungen zu verwenden. Dies hat zusammen mit einer gewissen algorithmischen Verbesserung der Einfügungs-Sortierdurchgänge und der Verlagerung eines größeren Teils des Algorithmus nach C++ (ich bedauere zutiefst, wie viel Objective-C und sogar CoreFoundation in Cydia enthalten sind …) die Leistung beim Laden von Cydia drastisch verbessert , zumindest für Chinesisch.