Kuidas arendaja seadete abil Androidi kiirendada. Androidi saladused: insenerikoodid ja arendajarežiim

Ma tean korralikku C++ keelt ja nüüd tahtsin uurida mängu tegemist. Mõtlesin, milline oleks riistvara kirjutamise osas parim lähenemisviis kiirendatud mäng, mis on endiselt platvormideülene (Windows/OSX/Linux). See oleks 2D-mäng, kuid piisavalt intensiivne, et protsessori renderdamine seda tõenäoliselt ei katkestaks.

Lõpuks olen näinud selliseid teeke nagu http://www.sfml-dev.org/, mis võisid selle lihtsamaks teha. Kas ma peaksin seda teed järgima?

Aitäh veel kord.

6 vastust

See on jama, poisid

OpenGL ON platvormideülene. Pole vaja Qt või muud sellist. Kohandada tuleb vaid mõnda osa: windowsi API ja sisend API, mis on ainsad funktsioonid, mis sõltuvad OS-i spetsiifilistest rutiinidest.

Teil on mitu võimalust.

Platvormideülene riistvarakiirendusega 2d C++ rakendus?

Ma tean OpenGL-i, kuid ma ei leia ühtegi õpetust selle platvormidevahelise kasutamise kohta, need kõik keskenduvad ühele platvormile.

SDL_Init(SDL_INIT_VIDEO); SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0) ); SDL_GL_SwapBuffers( ) SDL_Quit();

Lisateabe saamiseks vaadake sdl dokumentatsiooni.

SDL-i kasutamine on samuti võimalik, kuid ma kardan, et mäng ei pruugi töötada, kui ma seda kasutan. Kas see on tingimata tõsi?

Kui vsync on keelatud, võite saada mõnesajast kuni tuhande kaadrini sekundis. Täpne jõudlus sõltub teie varustuse keerukusest ja stseeni keerukusest. Sain 300 kaadrit sekundis lihtsa 3D Dungeon Crawleri jaoks, mis kasutas opengl'i "RAW" ilma tipupuhvrite loendeid/objekte kuvamata. Samuti, kui kasutate fikseeritud kaadrisagedust või taimermootorit, ei saa te sekundis rohkem kaadreid, kui küsisite.

SDL-i kasutati Unreal 2004 portimiseks Linuxisse. Seda kasutati ka Doom 3/Quake 4 Linuxi pordis. Seetõttu on see põhjalikult testitud ja hästi tuntud.

Minu jaoks ei ole küsimus selles, kas peaksite raamatukogusid kasutama või mitte. See on raamatukogu, mida peaksite kasutama. Kui soovite mängu kirjutada, leidke raamatukogud, mis lahendavad enamiku kaasaskantavusprobleeme teie eest. See võimaldab teil keskenduda kõige olulisemale: mängule endale. Teised on andnud rohkem raamatukogusoovitusi, mida võiksin teile anda.

Ma arvan, et on viga muretseda jõudluse pärast enne, kui olete oma projektiga alustanud. Töötage jõudlusprobleemide kallal nagu mis tahes muu probleemiga, millega arenduse käigus kokku puutute. Looge oma programm, et isoleerida teegid tasemel, mis erineb teie ülejäänud loogikast. Vajadusel on rakendusi lihtsam vahetada. See võimaldab teil isegi katsetada erinevate rakendustega.

// eraldage failid klass LowLevelGraphicStuff ( // abstraktne ); klass LowLevelGraphicStuff_SFML: public LowLevelGraphicsStuff ( // tegelik SFML-i rakendamine ); klass LowLevelGraphicsStuff_OGL: public LowLevelGraphicsStuff ( // tegelik OpenGL-i teostus ); // peamine // Käivitage mäng SFML-i juurutusega. gameLoop(new LowLevelGraphicsStuff_SFML()); // Käivitage mäng OpenGL-i juurutusega. gameLoop(new LowLevelGraphicsStuff_OGL());

Androidis, nagu ka teistes populaarsetes operatsioonisüsteemid, sellel on oma saladused. Mõned neist on kasulikud, kuid neid kasutatakse harva. Räägime teile vähetuntud ja huvitavaid saladusi Android.

Põhimõtteliselt räägivad paljud inimesed Androidi saladustest mõnest funktsioonist, millest kõik ümbritsevad teavad. Püüame mitte laskuda nutitelefonide ja tahvelarvutite tavapärasesse funktsionaalsusesse.

Tehnilised koodid

Esimene, kõige rohkem peamine saladus- See insenerikoodid. Tavakasutajad tõenäoliselt ei ole neist kasu. Neid kasutavad peamiselt töölised teeninduskeskused, kui teil on vaja seadme kohta midagi teada saada või süsteemikäsku täita.

*#*#4636#*#* - teave ja seaded;

*#*#8351#*#* - võimaldab telefonivestluste salvestamist;

*#*#4636#*#* – annab seadme kohta kasulikke andmeid:

  • telefoni kohta;
  • aku kohta;
  • statistika ning telefoni ja aku kasutus.

*#*#7780#*#* – vormindab nutitelefoni või tahvelarvuti, kuid jätab kõik rakendused, olgu siis süsteemsed või allalaaditud. Kõik välisel SD-kaardil olevad failid jäävad samuti alles.

*2767*3855# - vormindab seadme täielikult.

*#*#34971539#*#* - võimaldab juhtida kaamera püsivara ja hankida selle kohta teavet. Pärast koodi sisestamist saate valida:

  • kaamera püsivara värskendamine pildile (ärge tehke seda mitte mingil juhul!);
  • kaamera püsivara värskendus;
  • kaamera püsivara andmed;
  • varem tehtud kaamera püsivara värskenduste arv.

*#*#7594#*#* – võimaldab funktsiooni muuta toitenuppu pikalt all hoides. Teisisõnu saate määrata selle vidina väljalülitamiseks või taaskäivitamiseks, mobiilse andmeside sisse/välja lülitamiseks ja nii edasi;

*#*#273283*255*663 282*#*#* – võimaldab teha varukoopia kõik seadmes olevad failid;

*#*#197328640#*#* – avab hooldusmenüü. Saate oma vidinat testida ja ka muuta WLAN-i seaded, Bluetooth ja GPS;

*#*#232339#*#* või *#*#526#*#* või *#*#528#*#* - WLAN-i seaded;

*#*#232338#*#* - aitab teil välja selgitada Wi-FI MAC-aadressi;

*#*#1472365#*#* - GPS-süsteemi test;

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

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

*#*#232337#*# – aitab teil Bluetoothi ​​aadressi välja selgitada.

Koodid testimiseks

Nad viivad seadmega läbi erinevaid teste.

*#*#0283#*#* - ülekande infrastruktuuri testimine;

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

*#*#0673#*#* või *#*#0289#*#* - heli;

*#*#0842#*#* - seade (taustvalgustus ja vibratsioon);

*#*#2663#*#* - andur;

*#*#2664#*#* - teine ​​anduri test;

*#*#0588#*#* - liikumisandur;

*#*#3264#*#* – RAM.

Arendaja režiim

Nüüd räägime "arendaja režiimist". Tõenäoliselt olete seda elementi seadetes juba näinud, kuid nüüd on aeg seda üksikasjalikumalt vaadata. See režiim aktiveerib lisafunktsioone, mida tõenäoliselt ei vajata Igapäevane elu. Neid kasutavad peamiselt arendajad ja programmeerijad.

Kõigepealt peate lubama arendaja režiimi. Minge seadetesse ja kerige alla. Leidke üksus „Teave seadme kohta” ja klõpsake sellel mitu korda järjest. Vidin vajab arendajarežiimi avamiseks kinnitust – klõpsake nuppu OK.


Nüüd on meil juurdepääs mitmele valikule, mida peame hoolikalt kasutama! Need võivad viia süsteemi vead, mille eest nutitelefon ise teid hoiatab. Kõik selle režiimi funktsioonid on esitatud ja kirjeldatud allpool.

  • Varuparool. Kui te ei soovi, et keegi teine ​​kõiki teie telefoni faile varundaks (näiteks pärast kõigi andmete teie seadmesse allalaadimist), määrake kasutatav parool.
  • Aktiivne režiim. Kui teie nutitelefon laeb, ei lülitu see välja (muidugi kui te seda välja ei lülita).
  • Kaitske SD-mälukaarti. Kõik programmid küsivad luba mälukaardil olevate andmete kasutamiseks. Nii saate näiteks viiruse toimimist takistada.
  • Vidina ja arvuti vaheliseks suhtlemiseks on vaja USB-silumist.
  • Asukoha jäljendamine emuleerib asukohta.
  • Valige rakendus, mida silute.
  • Oodake silurit. Kui silur loob ühenduse, avaneb ülaltoodud rakendus.
  • Näita puudutusi. Päris huvitav funktsioon, mis näitab, kus ekraani puudutasid. Väga kasulik asi, sest saate seda kasutada ekraani puudutuste märkimiseks ja juhiste ekraanipiltide tegemiseks, nagu tegime selle kohta artiklis.
  • Näita kursori asukohta. Väljundid detailne info ekraani puudutamise ja libisemise kohta (asukoht X ja Y järgi jne).


  • Kuva paigutuspiirangud. Huvitav omadus, mille abil näete ekraanil iga elemendi suurust.

  • Kuva GPU vaate värskendused. GPU esitatud Windows hakkab vilkuma.
  • Kuva ekraanivärskendused. Värskendatava ekraani ala vilgub erekollasena.
  • Animatsiooni seadistamine. Sisaldab akna animatsiooni skaalat, üleminekuanimatsiooni skaalat ja seadme kestuse skaalat. Nende keelamine aitab palju.
  • Keela riistvara ülekate – püsiv GPU kasutamine ekraani kompositsiooni jaoks.
  • Sundige GPU töötlemine. Kasutage rakendustes 2D riistvaralist kiirendust.
  • Range režiim. Kui protsess teostab põhilõimega kaua kestvaid toiminguid, hakkab ekraan vilkuma.
  • Kuva protsessori kasutamine – kasutusteave keskprotsessor paremas ülanurgas.

  • GPU töötlemisprofiil on töötlemisaja mõõtmine ASDG-s.
  • Luba jälgimine. Sisaldab erinevaid jälgi, nagu graafika, sisend, vaade ja muud.
  • Ärge salvestage tehinguid. Kustutage toimingud pärast seda, kui kasutaja on need lõpetanud.
  • Taustaprotsessid. Võimaldab arvu piirata taustaprotsessidühest neljani.
  • Kuva kõik ANR-id. Kuvage taustprotsesside jaoks aken "Rakendus ei reageeri".

Võimsa riistvara olemasolu ei tähenda alati kiire töö seadmeid. Mõnel juhul jätab optimeerimine soovida ja kasutaja saab ise proovida nutitelefoni või tahvelarvuti tööd kiirendada. On mitmeid meetodeid, mis aitavad seda ülesannet täita. Neid meetodeid käsitletakse meie artiklis.

Eemaldage kõik mittevajalikud rakendused

On rakendusi, mis võivad kasutada lisaressursse. Kui neid rakendusi ei kasutata, tasub need kustutada.

See hõlmab rakendusi, mis installitakse nutitelefoni ostmisel. Mõnda neist ei saa eemaldada, need on püsivara sisse ehitatud, teised, kui te neid ei vaja, on parem eemaldada.

Ärge kasutage elavaid taustapilte

Kummalisel kombel nõuavad reaalajas taustapildid lisaressursid. Loomulikult näevad need ilusad välja ja pakuvad silmailu, aga kui kiirust vaja, tuleks nendega siiski hüvasti jätta.

Ärge kasutage kolmanda osapoole käivitusprogramme

Ärge kasutage täiendavaid vidinaid

Sama võib öelda ka vidinate kohta, mida saab töölauale ohtralt paigutada. Püüdke hoida ainult neid vidinaid, milleta te tõesti elada ei saa, näiteks kella või ilmateadet. Teised vidinad tuleks töölaualt eemaldada, kuna need, ehkki veidi, siiski "söövad" mälu.

Keela mittevajalikud rakendused

On rakendusi, mis töötavad taustal, kuid vajadus nende järele on haruldane. Kõne sisse sel juhul See puudutab kolmandate osapoolte rakendusi, mitte süsteemi rakendusi, mida ei soovitata keelata, kuna see võib põhjustada süsteemi krahhi.

Rakenduse keelamine on lihtne. Avage seaded, leidke rakenduste jaotis, valige nõutavad rakendused, minge sellesse ja klõpsake nuppu "Stopp".

Keela GPS ja geolokatsioon

Geolokatsiooni sätted on väga olulised, kuid neid saab kasutada ainult vajaduse korral.

See, muide, aitab suurendada ka seadme autonoomiat.

Puhastage kolmanda osapoole rakendusi

Ärge unustage kustutada vahemälu ja muid ajutisi andmeid, mis võivad samuti mõjutada süsteemi kiirust. Tavaliselt on see kolmanda osapoole rakendused meeldib Puhas meister, mis võimaldavad teil kustutada ajutised failid, kuid mõne seadme puhul on need juba püsivarasse sisse ehitatud.

Kasutage GPU kiirendust

Minge menüüsse, leidke jaotis „Arendajatele” või „Arendaja valikud”.

Kui te sellist jaotist ei näe, peate selle lubama. Otsige üles jaotis "Teave telefoni kohta", "Teave tahvelarvuti kohta" või "Teave seadme kohta", minge sellesse ja klõpsake 7 korda nuppu "Ehitamise number" (mõnikord peate klõpsama veidi rohkem kordi, süsteem ütleb teile sellest).

Lubage jaotises Arendaja suvandid GPU sundtöötlus (2D riistvarakiirendus rakendustes).

Samal ajal saate animatsiooni välja lülitada. Otsige selliseid elemente nagu „Akna animatsiooni skaala”.

Keela animatsioon. Lihtsalt olge parameetrite muutmisel ettevaatlik, mõned neist võivad põhjustada probleeme süsteemiga.

Värskendage püsivara

Mõnikord on jõudlusprobleemid seotud püsivara endaga, mida saab lahendada sama püsivara värskendamisega. Seetõttu (ja mitte ainult) on nii oluline oma nutitelefoni või tahvelarvuti tarkvara õigel ajal värskendada.

Kas teil on meie omadest erinevaid ideid? Meil on hea meel, kui annate meile nendest artikli kommentaaride kaudu teada.

Ilmselt paljud kasutajad kaasaegsed arvutid Kas olete kuulnud sellisest asjast nagu "riistvaraline kiirendus"? Kuid mitte kõik ei tea, mis see on ja miks seda vaja on. Veel vähem on neid, kes mõistavad, kuidas näiteks Windows 7-s riistvaralist kiirendust lubada. Allpool pakutud lahendused võimaldavad teil seadeid kasutada mitte ainult seitsmendas Windowsi versioonid, aga ka kõigis teistes.

Miks on vaja riistvaralist kiirendust (Windows 7)

Alustame sellest, et mõned kasutajad usuvad ekslikult, et riistvarakiirenduse kasutamine kehtib ainult videokaartide puhul, et kasutada võimalusi. GPU, mis vähendab keskse koormust. See on osaliselt tõsi.

Kui seda teemat veidi laiemalt vaadata, siis võib julgelt väita, et see kõik käib nii arvuti video- kui helisüsteemide kohta (näiteks DirectX platvorm sisaldab tuge mitme kanaliga heli). Igal juhul on riistvaraline kiirendus protsessori ja RAM-i koormuse vähenemine, kuna selle võtavad osaliselt (või täielikult) üle muud "riistvara" komponendid.

Kuid paljud inimesed ei mõista, kui soovitatav on seda kasutada. Otsustage ise, sest koos koormuse jaotusega ülespoole graafika või helikiibid Aja jooksul võivad need üsna palju kuluda ja isegi ebaõnnestuda. Seetõttu ei tohiks Windows 7 riistvaralise kiirenduse lubamise küsimuses minna äärmustesse. Tasakaalustatud parameetrite kasutamine on vajalik kõigi seadmete mõistliku kasutamise ja koormuse ühtlase jaotusega nende vahel. Tippväärtuste seadmise puhul ei saa keegi anda garantiid komponendi vastupidavuse kohta.

Kuidas lubada Windows 7 riistvarakiirendust

Niisiis, alustame kõige lihtsamast. Kõigepealt vaatame graafikat. Luba riistvaraline kiirendus (Windows 7 on siiski näide see otsus saab kasutada kõigis teistes versioonides) saab teha seadete kaudu graafika kiip. Kuid kõigepealt peate kontrollima, kas kasutaja sekkumine on vajalik.

Läbi RMB menüü minge töölaua vabas tsoonis ekraani eraldusvõimele ja kasutage hüperlinki lisaparameetrid. Kuvatavas atribuutide aknas vaadake vahekaarti diagnostika. Ülaosas on nupp parameetrite muutmiseks. Kui see pole aktiivne, on riistvarakiirendus juba lubatud.

Vastasel juhul klõpsake sellel, misjärel suunatakse teid seadete juurde graafika adapter. Siin on spetsiaalne liugur, mida vasakule-paremale liigutades saab seadistatavate parameetrite taset muuta. Kõige parempoolsem asend vastab maksimaalsele rakendatud kiirendusele.

Märkus: Windows 10 puhul pole graafikaadapteri sätetes diagnostikajaotist ja riistvarakiirendus (tegelikult nagu seitsmes modifikatsioon) on vaikimisi lubatud.

DirectX küsimused

Nüüd paar sõna DirectX-i riistvarakiirenduse lubamise kohta. Nagu ikka üldised seaded süsteemi, on see algselt kaasas nii video- kui ka heliadapterite jaoks, seega pole vaja midagi muuta. Kuid see ei tee haiget, kui veenduda, et see on aktiivne.

Vaatamiseks ja diagnostikaks kasutatakse DirectX-i dialoogi, mida kutsub välja Run-konsooli sisestatud käsk dxdiag. Siin, monitori vahekaardil, peate kontrollima DirectDraw, Direct3D ja AGP tekstuuri sätteid (mõnikord võib loendis olla ka parameeter ffdshow). Vaikimisi kuvatakse iga rea ​​kõrval väärtus "Sees" ja allolevas aknas kuvatakse teade, et probleeme ei leitud. Kui need mingil põhjusel avastatakse, jätkame nende kõrvaldamisega.

Probleemide võimalikud põhjused

Kõige sagedamini on suutmatus lubada riistvaralist kiirendust süsteemi tasemel või DirectX platvormi sätetes valesti installitud, puuduva või aegunud draiveridülaltoodud seadmeid.

Kontrollime neid tegumihalduris (devmgmt.msc). Kui heli- või videokaardi vastas on kollane kolmnurk Koos hüüumärk(või seadet ei tuvastata), on see selge märk sellest, et draiveriga on probleeme. See tuleb uuesti installida kasutades oma baasi süsteemi andmed, originaal plaat või Internetist alla laaditud distributsioonid.

Kuid juhtub ka seda, et aparaatidega on kõik korras. Sellegipoolest valime RMB menüü kaudu atribuutide rea ja draiveri vahekaardi uues aknas vaatame väljalaskekuupäeva. Kui juht on sisse lülitatud tänane kuupäev on väga vananenud, klõpsake värskendamisnuppu ja oodake, kuni protsess on lõpule viidud (pidage meeles, et Windows ei saa draivereid üksi värskendada).

Siiski on seda palju parem kasutada spetsiaalsed kommunaalteenused otsi ja värskenda like Juhi võimendus. Esiteks esitatakse apellatsioon otse seadme tootja veebisaidile; teiseks installitakse draiver, mis on seadme tööks kõige sobivam; kolmandaks paigaldatakse see süsteemi võimalikult õigesti. Kasutajate kaasatus on minimaalne.

Järeldus

See on tegelikult kõik, mis puudutab riistvaralise kiirenduse lubamist Windows 7-s. Kas seda teha või mitte, on puhtalt isiklik asi. Kuid kui läheneda probleemile targalt, on parem mitte kasutada riistvaralist kiirendust, nagu öeldakse, täiel määral. Sel juhul kasutusiga paigaldatud seadmed võib oluliselt kahaneda.

Google'i arendaja Diana Hackborn jagas oma Google+ lehel teavet Android 4.0 Ice'i liidese riistvaralise kiirendamise kohta. Kreemivõileib. Selle funktsiooni ümber tekkinud elevus ei olnud ainult see – liiga palju etteheiteid tehti Androidis 2D-elementide renderdamise sujuvuse kohta võrreldes teiste mobiilsete operatsioonisüsteemidega.

Muidugi on Androidi riistvaraline kiirendus positiivne, kuid selle funktsiooni kohta on palju väärarusaamu. Esiteks on Android juba aastaid toetanud riistvaralist kiirendust mitme akna renderdusülesannete jaoks ( me räägime akende koostise kohta - tegumiriba, märguanded, menüüriba, liidese elementide välimus ja peitmine). See tähendab, et kogu Androidi liideseelementide animatsioonis on alati kasutatud riistvaralist kiirendust.

Erinevalt akna kompositsiooni renderdamisest on akna sees piltide renderdamine traditsiooniliselt tehtud Android 2.X ja vanemates versioonides protsessoriga. Android 3.0 Honeycombis saab neid funktsioone aga graafikakiirendisse üle kanda, kuid ainult siis, kui see valik on rakenduse manifestis selgesõnaliselt määratud android:hardwareAccelerated=”true”. Ainuke asi Androidi erinevus 4.0 ICS seisneb selles, et arendades uusimat saadaolevat API taset 14 (ja kõiki tulevasi), on see suvand rakenduste jaoks "vaikimisi" lubatud.

Näib, et nüüd on meil võimalus sundida kõik Android 4.0 ICS-i rakendused töötama riistvaralise kiirendusega, olenemata selle manifestist, kas pole nii tore? Tegelikult pole see tõsi. Näiteks PowerVR-i videokiirendi puhul söövad Nexus S-is ja isegi Galaxy Nexuses kasutatavad draiverid igaüks 8 MB. muutmälu iga protsessi jaoks, mis kasutab riistvaralist kiirendust. Ei tundu palju? Nii see ei olnud, sest selline aktiivne RAM-i tarbimine paljude protsesside poolt korraga suurendab oluliselt mälutarbimist üldiselt, mis mõjutab koheselt ka multitegumtöötluse kiirust – isegi selleni, et see aeglustub oluliselt. Selle tulemusena teeb Google'i arendusmeeskond praegu märkimisväärseid jõupingutusi peenhäälestus millised osad kasutajaliides tõesti vaja riistvaraline kiirendus Nexus S-is

Mis on lõpptulemus? Võrreldes Android 2.X-ga on Ice Cream Sandwichil rohkem võimalusi, sealhulgas tänu rohkematele laialdast kasutamist riistvaraline kiirendus. Kuid peale selle, et see on vaikimisi lubatud, pole ICS-i riistvarakiirenduse kasutamine enam "täielik" kui varem. Ja muu hulgas ärge unustage, et riistvarakiirendus pole maagia ega ime, nagu paljud usuvad, kuid selle olemasolu on kindlasti pluss, mitte miinus.

Põhineb Diana Hackborni ja Will Verduzco Google+ materjalidel (xda-developers.com)