Cydia 1.1.29 en 1.1.30 zijn uitgebracht

Versies 1.1.29 en 1.1.30 van Cydia zijn gisteravond uitgebracht voor alle iPhone-, iPad- en iPod Touch-gebruikers die iOS 10 hebben gejailbreakt. Aanvankelijk werd versie 1.1.29 van Cydia uitgebracht met veel wijzigingen, en daarna werd versie 1.1.30 gegeven aan ons om een ​​probleem van de vorige update op te lossen.

In versie 1.1.29 van Cydia heeft de maker van deze applicatie een aantal grote problemen opgelost die het bijwerken van bronnen van tweaks, plug-ins en applicaties verhinderden. Bovendien zijn in de update voor Cydia de problemen met betrekking tot de installatie van al deze pakketten in iDevices met iOS 10 en gejailbreakt opgelost.

Naast het oplossen van de problemen verbetert de update voor de Cydia-applicatie de prestaties van de applicatie dramatisch, waardoor we alle pakketten veel sneller zullen installeren. De verbetering is niet enorm, maar u zult een aanzienlijke vermindering ervaren in de tijd die u besteedt aan het updaten van bronnen en het installeren van pakketten op uw terminals.

Op dit moment kun je alleen versie 1.1.30 van de Cydia-applicatie installeren, maar deze bevat ook alle wijzigingen die we beschikbaar hebben in 1.1.29. Het updaten van de Cydia-applicatie kan ook worden gedaan vanuit de Cydia-applicatie die is geïnstalleerd op onze iPhones, iPads en iPod Touches, en hieronder kun je al het nieuws zien dat het met zich meebrengt.

Cydia 1.1.29 is een prestatierelease


Vermijd het downloaden van vertalingen die 404 opleveren

Hoewel ik momenteel geloof dat er geen enkele repository in het wild is die deze functie gebruikt (wat me verdrietig maakt, maar zo van: het is niet zo dat mijn repository dit momenteel ook doet :/), ondersteunt Cydia pakketnamen en -beschrijvingen om in verschillende talen vertaald worden.

Zoals sommige mensen opmerkten, deden de nieuwe 64-bits builds van Cydia dit allemaal nog "correcter" en probeerden ze veel vertaalbestanden te downloaden, waardoor vernieuwingen langzamer gingen. Zoals te verwachten was, had iemand zoiets van "waarom verwijderen we die functie niet gewoon", wat echt verkeerd leek om te doen :/.

In plaats daarvan heb ik een functie van APT gerepareerd die 'optionele' bestanden moet filteren zodat ze niet kunnen worden gedownload, zodat ze kunnen werken met repository's die niet de lijst met bestanden hebben die normaal in het Release-bestand staan ​​(het gedrag in dit geval is downloadt ze niet: als je zo'n repository hebt en je wilt vertalingen, repareer dan je Release-bestand).

Correct laden van de pakketcatalogus

Wist u dat, in tegenstelling tot std::vector of NSMutableArray, wanneer CFMutableArray 'capaciteit' zegt, ze niet bedoelen 'dit is hoeveel er kan worden opgeslagen vóór de volgende toewijzing', maar in plaats daarvan 'dit is hoeveel er kan worden opgeslagen in deze array: het zal nooit groter worden"? Nou, dat deed ik niet :(. Blijkbaar ook niet Microsoft ;P. Terwijl ik aan het volgende nummer werkte, ontdekte ik dit en was behoorlijk geschokt.

Dit zou enkele van de vreemdere dingen kunnen verklaren die mensen recentelijk hebben gerapporteerd tijdens het gebruik van Cydia: gevallen waarin sommige pakketten verschijnen, maar andere niet, die niemand kan repliceren en die gewoon lijken te verdwijnen: wanneer Cydia start zonder catalogus, zou het stel de capaciteit in op 16k pakketten, en verhoog deze vervolgens met 1024 bij elke vernieuwing... maar er zijn vele tienduizenden pakketten in alleen de standaard repostories, dus het kan enige tijd duren voordat Cydia is "opgewarmd" en alles kan zien ze, waarna het gewoon zou werken :/.

Aan de andere kant is dat misschien niet het geval... dit is gewoon zo raar gedrag voor een array... het beweert zelfs dat het toevoegen aan het einde van een array met volledige capaciteitsbeperking resulteert in "ongedefinieerd gedrag". Sommige mensen melden dat de array groter wordt? Eerlijk gezegd: ik heb het niet getest, omdat ik dit ontdekte toen ik besloot dat ik toch naar iets dat meer op std::vector leek, moest overstappen. Ik denk echter dat het een heel interessant stukje trivia is, voor degenen onder ons die de moeite nemen om de geavanceerde release-opmerkingen voor een Cydia-uitgave te lezen;P.

Verbeter de sorteerprestaties van de pakketcatalogus

Cydia heeft de waanzinnige uitdaging om lokaal op je apparaat te moeten doen wat een gecentraliseerde, samengestelde, filosofisch irritante (ik schud mijn vuist naar je, Apple!) oplossing zou doen op een server: een lijst van vele tienduizenden pakketten bijwerken , waarbij het resultaat niet alleen alfabetisch wordt gesorteerd, maar ook op de landinstellingsgevoelige manier die gebruikers verwachten.

Ik heb voor Cydia een volgens mij behoorlijk epische oplossing voor dit probleem ontworpen, waarbij de radix-sortering wordt aangepast om aan strings te werken met behulp van gekke transformaties, waarbij meerdere passages worden uitgevoerd, gevolgd door een "fixup"-invoegsortering. Het is het soort algoritme dat echt aantoont waarom alle ontwikkelaars een sterke algoritme-achtergrond moeten hebben, aangezien je er ooit een nodig zult hebben. Ik geef lezingen over dit sorteeralgoritme voor computerwetenschappen op universitair niveau; P.

Het heeft in de loop der jaren echter enige "kalibratie" nodig gehad, en blijkbaar was het niet opgewassen tegen de uitdaging om Chinees (traditioneel) in "streekvolgorde" te sorteren; deze volgorde was een functie waar veel vraag naar was bij Chinese gebruikers, en werd vanaf iOS 8 aan Cydia toegevoegd, maar zorgde ervoor dat de radix-sorteerdoorgangen van mijn algoritme te veel later moesten worden aangepast met behulp van invoegsortering. Er kunnen hier nog enkele verbeteringen worden aangebracht in de radix-pas, maar toen dit prestatieprobleem gisteren werd gemeld, had ik een betere oplossing.

Ik had de sorteervolgorde van Cydia eigenlijk al ontworpen om te kunnen profiteren van een "sorteercache", waarbij ik de resultaten van eerdere uitvoeringen van Cydia hergebruikte om "dichtbij genoeg" te komen in plaats van radix-sorteringen te gebruiken. Dit, gecombineerd met enige algoritmische verbetering van de sorteerpassages voor invoegingen, gecombineerd met het verplaatsen van een groter deel van het algoritme naar C++ (ik betreur ten zeerste hoeveel Objective-C en zelfs CoreFoundation in Cydia zit...), heeft de prestaties bij het laden van Cydia drastisch verbeterd. , tenminste voor Chinezen.