Kung papasok ka sa mundo ng pagbuo ng Android app, mapapansin mo na mayroong isang file na laging naroon, na nakatago sa ugat ng proyekto: ang AndroidManifest.xmlSa madaling salita, ito ang dokumento ng pagkakakilanlan ng iyong app; kung wala ito, walang ideya ang Android operating system kung ano ang laman ng iyong package, kung paano ito patakbuhin, o kung anong mga pahintulot ang kailangan nito upang maiwasan ang mga mapaminsalang error sa pagsisimula.
Sa unang tingin, maaaring magmukha itong isang simpleng text file na may mga tag, ngunit sa katotohanan, ito ang... sulok na bahagi ng konpigurasyonHindi mahalaga kung gumagamit ka ng Android Studio, Eclipse, o kahit mga framework tulad ng Xamarin.Android; sa huli, ang lahat ay nakasalalay sa file na ito upang malaman ng mga build tool at ng Google Play Store kung ano mismo ang kanilang kinakaharap at sa kung aling mga device maaaring tumakbo ang iyong nilikha nang hindi nagka-crash.
Ang puso ng manifesto: Para saan nga ba ito?
Ang pangunahing layunin ng talaksang ito ay upang ilarawan ang mahahalagang impormasyon sa aplikasyonIsipin na isa itong manwal ng tagubilin na binabasa ng Android bago gumawa ng anuman. Kabilang sa mga pangunahing tungkulin nito, dapat idetalye ng manifest ang mga bahagi ng appIto ay walang iba kundi ang mga aktibidad (mga screen), serbisyo (mga proseso sa background), mga tagatanggap ng broadcast, at mga tagapagbigay ng nilalaman. Kung nakalimutan mong ideklara ang isang bahagi dito, ang sistema ay gagawin lamang Hindi mo ito masisimulan, na nag-iiwan sa iyo ng isang nakakadismayang pagkakamali.
Bukod sa mga bahagi, ito rin ang lugar kung saan nagaganap ang mga laban. pag-access ng mga pahintulotKung gustong gamitin ng iyong app ang camera, magbasa ng mga contact, o kumonekta sa internet, kailangan mong tahasang humingi ng pahintulot gamit ang mga tag tulad ng <uses-permission>Simula sa Android 6.0, ang ilan sa mga pahintulot na ito ay hinihiling sa oras ng pagpapatakbo, ngunit dapat ideklara sa manifest Oo o hindi, haharangan ng sistema ang functionality para sa mga kadahilanang pangseguridad.
Pagsusuri ng istruktura at mga pangunahing elemento nito
Ang file ay may napakalinaw na hirarkiya. Nagsisimula ang lahat sa root element. <manifest>, kung saan ang Espasyo ng pangalan ng Android at ang pangalan ng pakete, na nagsisilbing natatanging identifier ng iyong app sa buong ecosystem. Sa loob ng block na ito, makikita natin ang tag <application>, kung saan nangyayari ang mahika ng pangkalahatang konfigurasyon.
- Mga Katangian ng Aplikasyon: Dito, ang mga pandaigdigang bagay tulad ng icon ng app, ang label ng teksto na nakikita ng user at ang visual na tema na ilalapat sa lahat ng screen bilang default.
- Mga Setting ng Aktibidad: Ang bawat screen ay idineklara gamit ang
<activity>Isang mahalagang detalye ang katangianandroid:nameKung nagsisimula ito sa tuldok, awtomatikong idinaragdag ng sistema ang unlapi ng paketeng tinukoy sabuild.gradle. - Mga Filter ng Layunin: Upang malaman ng isang aktibidad kung paano tumugon sa isang mensahe ng sistema, ginagamit ang mga sumusunod:
<intent-filter>Halimbawa, para ang isang screen ay maging pangunahing at lumalabas sa launcher, dapat mayroong aksyonMAINat ang kategoryaLAUNCHER.
Pagkakatugma at mga paghihigpit sa hardware
Hindi lahat ng Android phone ay pareho; ang ilan ay may compass, ang iba ay wala, at ang ilan ay may mga lumang bersyon ng software. Upang maiwasan ang pag-install ng iyong app sa isang device na hindi kayang patakbuhin ito, ginagamit ang mga compatibility tag. Ang tag <uses-feature> nagpapahintulot sa pagmamarka ng Kinakailangang hardwaretulad ng fingerprint sensor o camera. Kung mamarkahan mo ang isang feature bilang kinakailangan, awtomatikong ifi-filter ng Google Play ang mga hindi tugmang device.
Sa kabilang banda, <uses-sdk> tumutukoy sa pinakamababang antas ng API (minSdkVersion) at ang target (targetSdkVersion). Bagama't sa kasalukuyan, pangunahing pinangangasiwaan ito ng Android Studio mula sa file build.gradleAng manifest ang nananatiling pangwakas na tala ng mga paghihigpit na ito upang matiyak na hindi susubukan ng code na gamitin ang mga feature na wala sa mga mas lumang bersyon ng Android.
Mga kumbensyon at teknikal na katangian
Kapag isinusulat ang file na ito, dapat sundin ang ilang mga patakaran upang maiwasan ang anumang paglabag. Halos lahat ng mga katangian ay may prefix na android: At karamihan ay opsyonal, bagama't sa pagsasagawa ay mandatory ang mga ito para maging kapaki-pakinabang ang app. Ang isang kakaibang punto ay ang paghawak ng mga halaga ng mapagkukunanSa halip na direktang isulat ang pangalan ng app, ganito ang format na ginagamit: @string/app_nameNagbibigay-daan ito sa app na maging multilingualdahil babaguhin ng sistema ang teksto ayon sa wika ng device.
Sa mga kapaligirang tulad ng Xamarin, ang proseso ay medyo mas awtomatiko. Sa halip na manu-manong i-type ang XML, ginagamit mo ang Mga pasadyang katangian sa C# bilang o Pagkatapos ay bubuo ang compiler ng pangwakas na manifest. Pinipigilan nito ang mga typo at ginagawang mas maayos ang pamamahala ng component para sa developer, na iniiwasan ang mga panganib tulad ng ang paggamit ng .NET MAUI upang itago ang malware.
Mabilisang sanggunian para sa mga karaniwang label
Para mas madaling ma-navigate ang file, makakatulong na malaman kung ano ang ginagawa ng bawat tag. Bukod sa mga nabanggit na, may iba pa tulad ng <meta-data> para magdagdag ng mga arbitraryong pares ng pangalan-halaga, o <provider> upang pamahalaan ang palitan ng datos sa pagitan ng mga aplikasyon. Nakikita rin namin <receiver> upang makuha ang mga kaganapan sa sistema at <service> para sa mga mabibigat na gawain na hindi nangangailangan ng visual interface. Mahalagang tandaan na ang elemento <application> Dapat ito ang laging huli. sa loob ng elementong ugat <manifest> upang sumunod sa mga karaniwang kombensiyon.
Ang pagkakaroon ng kumpletong kontrol sa AndroidManifest.xml ay nagbibigay-daan sa iyong pamahalaan ang lahat mula sa unang screen na nakikita ng user hanggang sa seguridad ng data at pagiging tugma sa libu-libong iba't ibang device. Bilang ugnayan sa pagitan ng source code at ng operating system, kahit ang isang maliit na pagbabago sa mga tag nito ay maaaring lubos na makapagpabago sa gawi ng application, na ginagawa itong pinakamalakas at pinakasensitibong tool sa pag-configure sa buong proyekto.
