Android versnellen met ontwikkelaarsinstellingen. Android-geheimen: technische codes en ontwikkelaarsmodus

Ik ken een behoorlijke hoeveelheid C++ en nu wilde ik het maken van een game verkennen. Ik vroeg me af wat de beste aanpak zou zijn op het gebied van schrijfhardware versneld spel, dat nog steeds platformonafhankelijk is (Windows/OSX/Linux). Het zou een 2D-game zijn, maar zo intens dat CPU-rendering het waarschijnlijk niet zou volhouden.

Ten slotte heb ik bibliotheken zoals http://www.sfml-dev.org/ gezien die het misschien gemakkelijker hebben gemaakt. Moet ik deze route volgen?

Nogmaals bedankt.

6 antwoorden

Dit is onzin jongens

OpenGL IS platformonafhankelijk. Qt of iets dergelijks is niet nodig. Slechts een paar onderdelen moeten worden aangepast: de Windows API en de input API, de enige functies die afhankelijk zijn van OS-specifieke routines.

Je hebt verschillende opties:

Cross-platform hardwareversnelde 2D C++-app?

Ik ken OpenGL, maar ik kan geen tutorials vinden over hoe je het platformonafhankelijk kunt gebruiken, ze richten zich allemaal op één platform.

SDL_Init(SDL_INIT_VIDEO);

SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);

SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);

Als vsync is uitgeschakeld, kun je een paar honderd tot duizend frames per seconde halen. De exacte prestaties zijn afhankelijk van de complexiteit van uw apparatuur en de complexiteit van de scène. Ik kreeg 300 fps voor een eenvoudige 3D-kerkercrawler die opengl's "RAW" gebruikte zonder hoekpuntbufferlijsten/objecten weer te geven. Als u een vaste framesnelheid of timer-engine gebruikt, krijgt u bovendien niet meer frames per seconde dan waar u om vroeg.

SDL werd gebruikt om Unreal 2004 naar Linux te porten. Het werd ook gebruikt in de Linux-port van Doom 3/Quake 4. Daarom is het grondig getest en algemeen bekend.

Voor mij is de vraag niet of je bibliotheken moet gebruiken of niet. Dit is de bibliotheek die u moet gebruiken. Als je een game wilt schrijven, zoek dan naar bibliotheken die de meeste portabiliteitsproblemen voor je kunnen oplossen. Hierdoor kun je je concentreren op wat het belangrijkst is: het spel zelf. Anderen hebben meer bibliotheeksuggesties gegeven die ik u zou kunnen geven.

Ik denk dat het een vergissing is om je zorgen te maken over de prestaties voordat je zelfs maar met je project bent begonnen. Werk aan prestatieproblemen zoals elk ander probleem dat u tijdens de ontwikkeling tegenkomt. Maak uw programma om de bibliotheken te isoleren op een niveau dat verschilt van de rest van uw logica. Het zal gemakkelijker zijn om indien nodig van implementatie te wisselen. Je kunt er zelfs mee experimenteren met verschillende implementaties.

// afzonderlijke bestanden klasse LowLevelGraphicStuff ( // abstract ); klasse LowLevelGraphicStuff_SFML: public LowLevelGraphicsStuff (// daadwerkelijke SFML-implementatie); klasse LowLevelGraphicsStuff_OGL: public LowLevelGraphicsStuff (// daadwerkelijke OpenGL-implementatie); // main // Voer het spel uit met de SFML-implementatie. gameLoop(nieuwe LowLevelGraphicsStuff_SFML()); // Voer het spel uit met de OpenGL-implementatie. gameLoop(nieuwe LowLevelGraphicsStuff_OGL());

In Android, net als in andere populaire besturingssystemen, heeft zijn eigen geheimen. Sommigen van hen zijn nuttig, maar worden zelden gebruikt. We zullen je vertellen over weinig bekende en interessante geheimen Android.

Kortom, als het om Android-geheimen gaat, praten veel mensen over enkele functies waarvan iedereen om hen heen op de hoogte is. We zullen proberen niet in te gaan op de gebruikelijke functionaliteit van smartphones en tablets.

Technische codes

De eerste, de meest belangrijkste geheim- Dit technische codes. Regelmatige gebruikers het is onwaarschijnlijk dat ze nuttig zullen zijn. Ze worden voornamelijk gebruikt door werknemers in servicecentra, wanneer u iets over het apparaat wilt weten of een systeemopdracht wilt uitvoeren.

*#*#4636#*#* - informatie en instellingen;

*#*#8351#*#* - opname van telefoongesprekken inschakelen;

*#*#4636#*#* - geeft nuttige gegevens over het apparaat:

  • over de telefoon;
  • over de batterij;
  • statistieken en telefoon- en batterijgebruik.

*#*#7780#*#* - formatteert een smartphone of tablet, maar laat alle applicaties staan, zowel systeem- als gedownload. Alle bestanden op de externe SD-kaart blijven ook behouden.

*2767*3855# - formatteert het apparaat volledig.

*#*#34971539#*#* - hiermee kunt u de camerafirmware beheren en er informatie over verkrijgen. Na het invoeren van de code kunt u kiezen:

  • het updaten van de camerafirmware naar beeld (doe dit onder geen beding!);
  • update van de camerafirmware;
  • camerafirmwaregegevens;
  • het aantal eerder uitgevoerde camerafirmware-updates.

*#*#7594#*#* - hiermee kunt u de functie wijzigen door de aan/uit-knop lang ingedrukt te houden. Met andere woorden, u kunt hem toewijzen om de gadget uit te schakelen of opnieuw op te starten, mobiele data in of uit te schakelen, enzovoort;

*#*#273283*255*663 282*#*#* - hiermee kunt u doen back-up eventuele bestanden op het apparaat;

*#*#197328640#*#* - opent het onderhoudsmenu. U kunt uw gadget testen en ook wijzigen WLAN-instellingen, Bluetooth en GPS;

*#*#232339#*#* of *#*#526#*#* of *#*#528#*#* - WLAN-instellingen;

*#*#232338#*#* - helpt u bij het achterhalen van het Wi-FI MAC-adres;

*#*#1472365#*#* - GPS-systeemtest;

*#*#1575#*#* - GPS;

*#*#232331#*#* - Bluetooth;

*#*#232337#*# - helpt u het Bluetooth-adres te achterhalen.

Codes voor testen

Ze voeren verschillende tests uit op het apparaat.

*#*#0283#*#* - testen van transmissie-infrastructuur;

*#*#0*#*#* - scherm (LCD);

*#*#0673#*#* of *#*#0289#*#* - geluid;

*#*#0842#*#* - apparaat (achtergrondverlichting en trillingen);

*#*#2663#*#* - sensor;

*#*#2664#*#* - nog een sensortest;

*#*#0588#*#* - bewegingssensor;

*#*#3264#*#* - RAM.

Ontwikkelaarsmodus

Laten we het nu hebben over de "Ontwikkelaarsmodus". Je hebt dit item waarschijnlijk al in de instellingen gezien, maar nu is het tijd om er meer in detail naar te kijken. Deze modus activeert extra functies, die waarschijnlijk niet nodig zullen zijn het dagelijks leven. Ze worden voornamelijk gebruikt door ontwikkelaars en programmeurs.

Eerst moet je de ontwikkelaarsmodus inschakelen. Ga naar instellingen en scroll helemaal naar beneden. Zoek het item 'Over apparaat' en klik er meerdere keren achter elkaar op. Het gadget heeft bevestiging nodig om de ontwikkelaarsmodus te ontgrendelen. Klik op OK.


Nu hebben we toegang tot een aantal opties waar we zorgvuldig mee moeten omgaan! Ze kunnen ertoe leiden systeemfouten, waarvoor de smartphone zelf u zal waarschuwen. Alle functies van deze modus worden hieronder weergegeven en beschreven.

  • Back-upwachtwoord. Als u niet wilt dat iemand anders een back-up van alle bestanden op uw telefoon maakt (bijvoorbeeld nadat u alle gegevens naar uw apparaat heeft gedownload), stelt u een wachtwoord in.
  • Actieve modus. Als uw smartphone wordt opgeladen, wordt deze niet uitgeschakeld (tenzij u hem natuurlijk uitzet).
  • Bescherm SD-geheugenkaart. Alle programma's vragen toestemming om gegevens van de geheugenkaart te gebruiken. Zo kun je bijvoorbeeld voorkomen dat een virus werkt.
  • USB-foutopsporing is nodig voor interactie tussen de gadget en de pc.
  • Locatie emuleren emuleert locatie.
  • Selecteer de toepassing waarvoor u fouten wilt opsporen.
  • Wacht op de debugger. Wanneer de debugger verbinding maakt, wordt de hierboven gespecificeerde applicatie geopend.
  • Toon aanrakingen. Een behoorlijk interessante functie die laat zien waar je het scherm hebt aangeraakt. Een heel handig iets, want je kunt het gebruiken om aanrakingen op het scherm aan te geven en screenshots te maken van instructies, zoals we deden in het artikel over.
  • Toon aanwijzerlocatie. Uitgangen gedetailleerde informatie over aanraken en over het scherm glijden (Locatie volgens X en Y, enz.).


  • Lay-outbeperkingen weergeven. Interessante functie, waarmee je de grootte van elk element op het scherm kunt zien.

  • GPU-weergave-updates weergeven. Windows gepresenteerd door de GPU zal knipperen.
  • Schermupdates weergeven. Het gedeelte van het scherm dat u bijwerkt, flikkert heldergeel.
  • Animatie opzetten. Inclusief vensteranimatieschaal, overgangsanimatieschaal en apparaatduurschaal. Het uitschakelen ervan helpt veel.
  • Hardware-overlay uitschakelen - permanent GPU-gebruik voor schermcompositie.
  • Forceer GPU-verwerking. Gebruik 2D-hardwareversnelling in applicaties.
  • Strenge modus. Als het proces langlopende bewerkingen uitvoert op de hoofdthread, knippert het scherm.
  • CPU-gebruik weergeven - Gebruiksinformatie centrale verwerker in de rechterbovenhoek.

  • GPU-verwerkingsprofiel is een meting van de verwerkingstijd in ASDG.
  • Tracering inschakelen. Bevat verschillende sporen, zoals afbeeldingen, invoer, weergave en andere.
  • Bewaar geen transacties. Verwijder bewerkingen nadat ze door de gebruiker zijn voltooid.
  • Achtergrondprocessen. Hiermee kunt u het aantal beperken achtergrondprocessen van één tot vier.
  • Toon alle ANR. Geef het venster 'Toepassing reageert niet' weer voor achtergrondprocessen.

De aanwezigheid van krachtige hardware betekent niet altijd snel werk apparaten. In sommige gevallen laat de optimalisatie veel te wensen over en kan de gebruiker zelf proberen de werking van zijn smartphone of tablet te versnellen. Er zijn verschillende methoden die kunnen helpen deze taak te volbrengen. Deze methoden worden besproken in ons artikel.

Verwijder alle onnodige applicaties

Er zijn toepassingen die extra bronnen kunnen gebruiken. Als u deze apps niet gebruikt, moet u ze verwijderen.

Hieronder vallen ook applicaties die bij aankoop op de smartphone zijn geïnstalleerd. Sommige kunnen niet worden verwijderd, ze zijn ingebouwd in de firmware, terwijl andere, als je ze niet nodig hebt, beter kunnen worden verwijderd.

Gebruik geen live achtergronden

Live wallpapers hebben, vreemd genoeg, dit nodig extra middelen. Ze zien er natuurlijk mooi uit en zijn een lust voor het oog, maar als je snelheid nodig hebt, moet je er toch afscheid van nemen.

Gebruik geen launchers van derden

Gebruik geen extra widgets

Hetzelfde kan gezegd worden over widgets, die in overvloed op het bureaublad kunnen worden geplaatst. Probeer alleen die widgets te behouden waar je echt niet zonder kunt, zoals een klok of weersvoorspelling. Andere widgets moeten van het bureaublad worden verwijderd, omdat ze, zij het een beetje, nog steeds geheugen "opeten".

Schakel onnodige applicaties uit

Er zijn applicaties die erin werken achtergrond, maar de behoefte eraan is zeldzaam. Toespraak binnen in dit geval Dit gaat over applicaties van derden, niet over systeemapplicaties, waarvan het niet wordt aanbevolen om deze uit te schakelen, omdat dit tot een systeemcrash kan leiden.

Het uitschakelen van de applicatie is eenvoudig. Ga naar instellingen, zoek het toepassingengedeelte, selecteer vereiste toepassingen, ga ernaartoe en klik op "Stoppen".

Schakel GPS en geolocatie uit

Geolocatie-instellingen zijn erg belangrijk, maar kunnen alleen worden gebruikt als dat nodig is.

Dit zal trouwens ook de autonomie van het apparaat helpen vergroten.

Voer reiniging uit met apps van derden

Vergeet niet de cache en andere tijdelijke gegevens te verwijderen, die ook de snelheid van het systeem kunnen beïnvloeden. Typisch is dit toepassingen van derden leuk vinden Schone meester, waarmee u kunt verwijderen tijdelijke bestanden, maar op sommige apparaten zijn ze al in de firmware ingebouwd.

Gebruik GPU-versnelling

Ga naar het menu en zoek het gedeelte 'Voor ontwikkelaars' of 'Opties voor ontwikkelaars'.

Als u een dergelijke sectie niet ziet, moet u deze inschakelen. Zoek het gedeelte 'Over de telefoon', 'Over de tablet' of 'Over het apparaat', ga ernaartoe en klik 7 keer op 'Buildnummer' (soms moet u nog een paar keer klikken, het systeem zal u hierover vertellen).

Schakel in Opties voor ontwikkelaars geforceerde GPU-verwerking in (2D-hardwareversnelling in apps).

Tegelijkertijd kunt u de animatie uitschakelen. Zoek naar items als 'Vensteranimatieschaal'.

Schakel animatie uit. Wees voorzichtig bij het bewerken van parameters; sommige ervan kunnen tot problemen met het systeem leiden.

Update de firmware

Soms houden prestatieproblemen verband met de firmware zelf, wat kan worden opgelost door diezelfde firmware bij te werken. Daarom (en niet alleen) is het zo belangrijk om de software van je smartphone of tablet tijdig te updaten.

Heeft u andere ideeën dan de onze? We zullen het leuk vinden als u ons hiervan op de hoogte stelt via de opmerkingen bij het artikel.

Blijkbaar veel gebruikers moderne computers Heb je gehoord van zoiets als “hardwareversnelling?” Maar niet iedereen weet wat het is en waarom het nodig is. Er zijn nog minder mensen die begrijpen hoe ze bijvoorbeeld hardwareversnelling op Windows 7 kunnen inschakelen. Met de hieronder voorgestelde oplossingen kunt u de instellingen niet alleen in de zevende gebruiken Windows-versies, maar ook in alle andere.

Waarom heb je hardwareversnelling nodig (Windows 7)

Laten we beginnen met het feit dat sommige gebruikers ten onrechte denken dat het gebruik van hardwareversnelling uitsluitend van toepassing is op videokaarten om de mogelijkheden te benutten GPU, wat de belasting op de centrale vermindert. Dit is gedeeltelijk waar.

Als we dit probleem iets breder bekijken, kunnen we vol vertrouwen zeggen dat dit allemaal van toepassing is op zowel de video- als audiosystemen van de computer (het DirectX-platform biedt bijvoorbeeld ondersteuning meerkanaals audio). Hardwareversnelling is in ieder geval een vermindering van de belasting van de CPU en het RAM doordat deze gedeeltelijk (of geheel) wordt overgenomen door andere “hardware” componenten.

Maar veel mensen begrijpen niet hoe raadzaam het is om het te gebruiken. Oordeel zelf, want met de belasting naar boven herverdeeld voor de afbeelding of geluid chips Na verloop van tijd kunnen ze behoorlijk verslijten en zelfs falen. Daarom moet u bij de vraag hoe u hardwareversnelling op Windows 7 kunt inschakelen niet tot het uiterste gaan. Het is noodzakelijk om gebalanceerde parameters te gebruiken met redelijk gebruik van alle apparaten en een gelijkmatige verdeling van de belasting daartussen. Bij het instellen van piekwaarden kan niemand garanties geven over de duurzaamheid van een onderdeel.

Hardwareversnelling inschakelen op Windows 7

Laten we dus met het eenvoudigste beginnen. Laten we eerst eens naar de graphics kijken. Schakel hardwareversnelling in (Windows 7 is echter een voorbeeld). dit besluit kan in alle andere versies worden gebruikt) kan via de instellingen worden gedaan grafische chip. Maar eerst moet u controleren of tussenkomst van de gebruiker vereist is.

Door RMB-menu ga in de vrije zone van het “Bureaublad” naar de schermresolutie en gebruik de hyperlink aanvullende parameters. Kijk in het eigenschappenvenster dat verschijnt naar het tabblad Diagnostiek. Bovenaan bevindt zich een knop voor het wijzigen van parameters. Als het inactief is, is hardwareversnelling al ingeschakeld.

Klik er anders op, waarna u doorgestuurd wordt naar de instellingen grafische adapter. Er is hier een speciale schuifregelaar. Door deze naar links en rechts te verplaatsen, kunt u het niveau van de ingestelde parameters wijzigen. De meest rechtse positie komt overeen met de maximaal toegepaste versnelling.

Opmerking: in Windows 10 is er geen diagnostisch gedeelte in de instellingen van de grafische adapter en is hardwareversnelling (eigenlijk, net als de zevende wijziging) standaard ingeschakeld.

DirectX-vragen

Nu een paar woorden over het inschakelen van DirectX-hardwareversnelling. Zoals het geval is met algemene instellingen systeem, het wordt in eerste instantie meegeleverd voor zowel video- als audioadapters, dus u hoeft niets te wijzigen. Maar het kan geen kwaad om ervoor te zorgen dat het actief is.

Voor weergave en diagnose wordt het DirectX-dialoogvenster gebruikt, opgeroepen door de opdracht dxdiag ingevoerd in de "Run" -console. Hier, op het tabblad Monitor, moet u de DirectDraw-, Direct3D- en AGP-textuurinstellingen controleren (soms kan de ffdshow-parameter in de lijst zijn opgenomen). Standaard verschijnt naast elke regel de waarde “Aan” en in het onderstaande venster verschijnt de melding dat er geen problemen zijn gevonden. Als ze om wat voor reden dan ook worden ontdekt, gaan we verder met het elimineren ervan.

Mogelijke oorzaken van problemen

Meestal is het onvermogen om hardwareversnelling op systeemniveau of in de DirectX-platforminstellingen in te schakelen te wijten aan onjuist geïnstalleerde, ontbrekende of verouderde stuurprogramma's bovenstaande apparaten.

We controleren ze in "Taakbeheer" (devmgmt.msc). Indien tegenovergesteld is de geluids- of videokaart gele driehoek Met uitroepteken(of het apparaat wordt niet gedetecteerd), dit is een duidelijk teken dat er problemen zijn met de driver. Het moet opnieuw worden geïnstalleerd met behulp van eigen basis systeemgegevens, originele schijf of gedownloade distributies van internet.

Maar het komt ook voor dat alles goed gaat met de apparaten. Niettemin selecteren we via het RMB-menu de eigenschappenregel en in het nieuwe venster op het tabblad stuurprogramma's kijken we naar de releasedatum. Als de bestuurder aanstaat huidige datum erg verouderd is, klikt u op de updateknop en wacht tot het proces is voltooid (houd er rekening mee dat Windows de stuurprogramma's niet zelf kan updaten).

Het is echter veel beter om te gebruiken speciale nutsvoorzieningen zoeken en bijwerken zoals Chauffeursbooster. Ten eerste zal het beroep rechtstreeks worden gedaan op de website van de fabrikant van de apparatuur; ten tweede wordt het stuurprogramma geïnstalleerd dat het meest geschikt is voor de werking van het apparaat; ten derde wordt het zo correct mogelijk in het systeem geïnstalleerd. De betrokkenheid van gebruikers is minimaal.

Conclusie

Dat is in feite het enige dat te maken heeft met het inschakelen van hardwareversnelling op Windows 7. Of u dit wel of niet doet, is een puur persoonlijke kwestie. Maar als je het probleem verstandig benadert, is het beter om hardwareversnelling, zoals ze zeggen, niet ten volle te gebruiken. In dit geval de levensduur geïnstalleerde apparatuur kan enorm krimpen.

Google-ontwikkelaar Diana Hackborn deelde op haar Google+ pagina informatie over hardwareversnelling van de interface in Android 4.0 Ice Roomijsje. De opwinding die ontstond rond deze functie was niet alleen dat: er werden te veel verwijten gemaakt over de soepelheid van het weergeven van 2D-elementen in Android in vergelijking met andere mobiele besturingssystemen.

Natuurlijk is hardwareversnelling in Android positief, maar er bestaan ​​veel misvattingen over wat deze functie eigenlijk is. Ten eerste ondersteunt Android al jaren hardwareversnelling voor renderingtaken met meerdere vensters ( waar we het over hebben over de samenstelling van vensters - taakbalk, meldingen, menubalk, uiterlijk en verbergen van interface-elementen). Dit betekent dat alle animatie van interface-elementen in Android altijd hardwareversnelling heeft gebruikt.

In tegenstelling tot het renderen van venstercomposities, wordt het renderen van afbeeldingen binnen een venster traditioneel gedaan met behulp van de processor in Android 2.X en lager. In Android 3.0 Honeycomb kunnen deze functies echter worden overgedragen naar de grafische versneller, maar alleen als deze optie expliciet wordt gespecificeerd in het applicatiemanifest android:hardwareAccelerated=”waar”. Het enige Android-verschil 4.0 ICS is dat bij het ontwikkelen met behulp van het laatst beschikbare API-niveau 14 (en alle toekomstige), deze optie voor applicaties "standaard" is ingeschakeld.

Het lijkt erop dat we nu de mogelijkheid hebben om alle applicaties in Android 4.0 ICS te “forceren” om te werken met hardwareversnelling ingeschakeld, ongeacht het manifest ervan, is dat niet geweldig? In feite is dit niet helemaal waar. In het geval dat bijvoorbeeld de PowerVR-videoversneller de stuurprogramma's van de Nexus S en zelfs de Galaxy Nexus elk 8 MB in beslag nemen RAM voor elk proces dat hardwareversnelling gebruikt. Lijkt niet veel? Dit was niet het geval, omdat een dergelijk actief RAM-verbruik door veel processen het geheugenverbruik in het algemeen aanzienlijk verhoogt, wat onmiddellijk de snelheid van multitasking beïnvloedt - zelfs tot het punt dat het aanzienlijk wordt vertraagd. Als gevolg hiervan besteedt het ontwikkelingsteam van Google nu aanzienlijke inspanningen fijnafstemming welke onderdelen gebruikersinterface echt nodig hardwareversnelling op Nexus S.

Wat is het eindresultaat? Vergeleken met Android 2.X heeft Ice Cream Sandwich dat wel meer mogelijkheden, onder meer dankzij meer wijdverbreid gebruik hardwareversnelling. Behalve dat het standaard is ingeschakeld, is het gebruik van hardwareversnelling door ICS echter niet 'vollediger' dan voorheen. En vergeet onder andere niet dat hardwareversnelling geen magie of een wonder is, zoals velen denken, maar de aanwezigheid ervan is zeker een pluspunt en geen minpunt.

Gebaseerd op Google+ materiaal van Diana Hackborn en Will Verduzco (xda-developers.com)