Kung sinubukan mo nang pamahalaan ang mga file sa isang Android device, malamang na napansin mo na ang mga bagay ay gumagana nang iba depende sa kung aling bersyon ng Android ang iyong pinapatakbo. Simula sa Android 10, ipinakilala ng Google ang isang pangunahing pagbabago sa kung paano nakikipag-ugnayan ang mga app sa file system. Ang pagbabagong ito, na kilala bilang Saklaw na Imbakan, ay muling tinukoy ang mga panuntunan sa pagbabasa at pagsulat ng mga file sa nakabahaging storage. Para sa mga user na nag-sideload ng mga app, namamahala ng mga OBB file, o nagtatrabaho sa mga file manager, mahalaga ang pag-unawa sa saklaw na storage.
Sa artikulong ito, tutuklasin namin kung ano ang saklaw na storage, bakit ipinatupad ito ng Google, kung paano ito nakakaapekto sa mga pang-araw-araw na user at developer, at kung ano ang ibig sabihin nito para sa sinumang nag-i-install ng APK o XAPK file sa labas ng Play Store.
Ang Problema sa Old Storage Model
Bago ang Android 10, maaaring ma-access ng anumang app na humiling ng pahintulot na READ_EXTERNAL_STORAGE o WRITE_EXTERNAL_STORAGE ang halos anumang file sa nakabahaging storage ng device. Kasama rito ang mga larawan, dokumento, pag-download, at maging ang mga file na ginawa ng iba pang app. Bagama't ginawa nitong maginhawa ang pamamahala ng file, lumikha ito ng mga seryosong alalahanin sa privacy at seguridad.
Isaalang-alang ang isang simpleng flashlight app. Sa ilalim ng lumang modelo, kung bibigyan mo ito ng pahintulot sa pag-imbak, maaari nitong basahin nang tahimik ang iyong mga larawan, i-scan ang iyong mga na-download na dokumento, o kahit na baguhin ang mga file na kabilang sa iba pang mga application. Walang butil na kontrol. Binigyan mo ang isang app ng ganap na access sa iyong buong storage o tinanggihan mo ito nang lubusan.
Ang malawak na pag-access na ito ay humantong sa mga problema sa totoong mundo. Kinuha ng ilang app ang data ng user sa pamamagitan ng pag-scan ng storage para sa mga sensitibong file. Ang iba ay nag-iwan ng mga naulilang file na nagkalat sa device nang matagal pagkatapos ma-uninstall ang app. Kailangan ng Google ng solusyon na balanseng kakayahang magamit sa privacy, at ang saklaw na storage ang kanilang sagot.
Ano ba talaga ang Ginagawa ng Scoped Storage
Ang saklaw ng storage ay pangunahing nagbabago sa kaugnayan sa pagitan ng mga app at ng file system. Sa ilalim ng modelong ito, ang bawat app ay nakakakuha ng sarili nitong pribadong sandbox sa external storage, na karaniwang matatagpuan sa /Android/data/[package.name]/. Ang mga app ay maaaring malayang magbasa at magsulat sa loob ng kanilang sariling sandbox nang hindi nangangailangan ng anumang mga pahintulot.
Gayunpaman, ang pag-access ng mga file sa labas ng sandbox na ito ay nangangailangan ng pagdaan sa mga kinokontrol na API. Narito kung paano gumagana ang bagong modelo:
Storage na Partikular sa App
Ang bawat app ay may nakalaang direktoryo na ito lamang ang makaka-access. Kapag na-uninstall ang app, awtomatikong nililinis ang direktoryo na ito. Walang ibang app ang makakabasa o makakasulat sa lokasyong ito nang walang root access. Inaalis nito ang problema ng mga naulilang file at pinipigilan ang cross-app na data snooping.
Mga Koleksyon ng Media
Para sa nakabahaging media tulad ng mga larawan, video, at audio file, ibinibigay ng Android ang MediaStore API. Maaaring mag-ambag ang mga app ng media sa mga nakabahaging koleksyon at magbasa ng media na ginawa ng iba pang app, ngunit sa pamamagitan lamang ng structured na interface na ito. Nakikita ng isang app ang sarili nitong media nang walang anumang pahintulot, ngunit ang pag-access sa media ng iba pang app ay nangangailangan ng mga pahintulot na READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, o READ_MEDIA_AUDIO na ipinakilala sa Android 13.
Framework ng Access sa Storage
Para sa mga dokumento at iba pang mga non-media file, dapat gamitin ng mga app ang Storage Access Framework (SAF). Nagpapakita ito ng system file picker sa user, na tahasang pumipili kung aling mga file o direktoryo ang maa-access ng app. Ang app ay hindi kailanman nakakakuha ng malawak na access sa buong file system.
Ang MANAGE_EXTERNAL_STORAGE Pahintulot
Para sa mga app na talagang nangangailangan ng malawak na access sa file, gaya ng mga file manager, backup tool, at antivirus software, ang Android ay nagbibigay ng MANAGE_EXTERNAL_STORAGE na pahintulot. Gayunpaman, ang pahintulot na ito ay nangangailangan ng espesyal na pag-apruba mula sa Google para sa mga app na ibinahagi sa pamamagitan ng Play Store, at dapat itong manual na ibigay ng mga user sa pamamagitan ng mga setting ng system sa halip na isang simpleng dialog.
Ang Rollout Timeline
Hindi ipinatupad ng Google ang saklaw na storage sa magdamag. Ang paglipat ay unti-unting nangyari:
- Ipinakilala ang Android 10 (API 29): Scoped storage ngunit maaaring mag-opt out ang mga app gamit ang requestLegacyExternalStorage="true" sa kanilang manifest. Nagbigay ito ng panahon sa mga developer na umangkop.
- Android 11 (API 30): Binalewala ang legacy na flag para sa mga app na nagta-target sa API 30 o mas mataas. Naging mandatoryo ang saklaw na storage para sa mga bago at na-update na app sa Play Store.
- Android 12 at higit pa: Ang mga karagdagang pagpipino ay ginawa, kabilang ang granular media permissions at pinahusay na performance ng SAF.
- Android 13 (API 33): Ang malawak na pahintulot ng READ_EXTERNAL_STORAGE ay hindi na ginagamit pabor sa mga partikular na pahintulot sa media.
- Android 14 (API 34): Ang bahagyang pag-access sa larawan at video ay ipinakilala, na nagpapahintulot sa mga user na magbigay ng access sa mga partikular na file sa halip na sa buong library ng media.
Paano Nakakaapekto ang Saklaw na Storage sa Sideloading
Para sa mga user na nag-i-install ng mga app mula sa labas ng Play Store, ang saklaw ng storage ay nagpapakilala ng ilang praktikal na hamon na dapat maunawaan.
Pag-download at Pag-access ng mga APK File
Kapag nag-download ka ng APK file sa pamamagitan ng browser, karaniwan itong napupunta sa folder ng Mga Download. Sa ilalim ng saklaw na storage, pagmamay-ari ng browser app ang file na iyon. Kung gusto mong i-install ito gamit ang ibang app, gaya ng file manager, kailangan ng file manager na iyon ng naaangkop na access. Karamihan sa mga modernong file manager ay pinangangasiwaan ito nang tama sa pamamagitan ng SAF, ngunit maaaring mahirapan ang mga nakatatanda.
Maa-access pa rin ng system package installer ang mga file na tahasang pinili mo sa pamamagitan ng file picker, kaya gumagana pa rin ang pangunahing daloy ng pag-download at pag-install ng APK. Gayunpaman, maaaring masira ang mga automated na daloy ng trabaho sa pag-install na umaasa sa direktang pag-access sa path ng file.
Mga OBB File at Data ng Laro
Ito ay kung saan ang scoped storage ay lumilikha ng pinakamaraming alitan para sa mga sideloader. Maraming malalaking laro ang gumagamit ng OBB (Opaque Binary Blob) na mga file na nakaimbak sa /Android/obb/[package.name]/. Sa ilalim ng lumang modelo, maaari mong kopyahin ang mga OBB file sa tamang direktoryo gamit ang anumang file manager.
Sa saklaw na imbakan, pinaghihigpitan ang direktoryo ng /Android/obb/. Sa Android 11 at mas bago, hindi makakasulat ang mga regular na app sa direktoryo ng OBB ng isa pang app. Nangangahulugan ito na kung magda-download ka ng XAPK file na naglalaman ng data ng OBB, kailangan ng installer ng espesyal na pangangasiwa upang mailagay nang tama ang mga file na iyon.
Makakatulong sa iyo ang mga tool tulad ng aming Tagakuha ng OBB na mag-extract ng mga OBB file mula sa mga XAPK package, ngunit ang paglalagay sa mga ito sa tamang direktoryo sa mga mas bagong bersyon ng Android ay maaaring mangailangan ng paggamit ng file manager na may pahintulot ng MANAGE_EXTERNAL_STORAGE o paggamit ng mga ADB command mula sa isang computer.
Mga Pagsasaalang-alang sa Pag-install ng XAPK
Ang mga XAPK file ay nagsasama ng isang APK kasama ng OBB data at kung minsan ay naghahati ng mga configuration ng APK. Ang pag-install ng mga ito sa mga device na gumagamit ng Android 11 o mas bago ay nangangailangan ng installer na nakakaunawa sa mga saklaw na paghihigpit sa storage. Kailangang hawakan ng installer ang pahintulot ng MANAGE_EXTERNAL_STORAGE o gamitin ang mga wastong API para ilagay ang mga OBB file sa tamang lokasyon.
Ito ay isang dahilan kung bakit maaaring maging kapaki-pakinabang ang pag-convert ng mga XAPK file sa karaniwang format ng APK. Ang isang standalone na APK ay hindi nangangailangan ng OBB file placement, na nagpapasimple sa proseso ng pag-install sa mga mas bagong bersyon ng Android. Maaari mong gamitin ang aming XAPKS sa APK converter upang kunin ang batayang APK mula sa isang XAPK package.
Ano ang Kailangang Malaman ng mga Developer
Kung gumagawa ka ng mga Android app, ang saklaw na storage ay nangangailangan ng muling pag-iisip kung paano mo pinangangasiwaan ang mga file:
- Gumamit ng mga direktoryo na tukoy sa app para sa anumang mga file na kailangan lang ng iyong app. Ang mga ito ay hindi nangangailangan ng mga pahintulot at awtomatikong nililinis kapag na-uninstall.
- Gamitin ang MediaStore para sa mga larawan, video, at audio na dapat makita ng iba pang app at makaligtas sa pag-uninstall.
- Gamitin ang SAF kapag kailangang gumana ang iyong app sa mga dokumento o direktoryo na pinili ng user.
- Iwasan ang mga hardcoded file path. Ang mga landas tulad ng /sdcard/MyApp/ ay hindi na maaasahan. Gamitin ang Context.getExternalFilesDir() sa halip.
- Malaki ang pagkakaiba ng Gawi ng Subukan sa maraming antas ng API. sa pagitan ng Android 10, 11, 13, at 14.
Mga Istratehiya sa Migrasyon
Kung ang iyong app ay nag-imbak ng mga file sa nakabahaging storage, kailangan mo ng plano sa paglilipat. Ang inirerekomendang diskarte ay kopyahin ang mga kasalukuyang file sa storage na partikular sa app sa unang paglulunsad pagkatapos ng update, pagkatapos ay tanggalin ang mga lumang kopya. Gamitin ang Environment.getExternalStorageDirectory() na may legacy na flag sa panahon ng paglipat upang basahin ang mga lumang file, pagkatapos ay ilipat ang mga ito sa bagong lokasyon.
Mga Karaniwang Maling Palagay
"Nangangahulugan ang sakop na storage na hindi ma-access ng mga app ang anumang mga file"
Ito ay hindi totoo. Malayang maa-access ng mga app ang sarili nilang mga file, mag-ambag sa mga nakabahaging koleksyon ng media, at humiling ng access sa mga partikular na file sa pamamagitan ng tagapili ng system. Ang nagbago ay hindi na maaaring tahimik na i-browse ng mga app ang buong file system.
"Sira ang mga file manager sa mga bagong bersyon ng Android"
Gumagana pa rin ang mga file manager na humihiling ng MANAGE_EXTERNAL_STORAGE. Kailangan lang ibigay ng user ang espesyal na pahintulot na ito sa pamamagitan ng mga setting. Karamihan sa mga tanyag na file manager ay umangkop na sa kinakailangang ito.
"Nakakaapekto lang sa SD card ang saklaw na storage"
Nalalapat ang saklaw na storage sa lahat ng nakabahaging storage, kabilang ang panloob na nakabahaging storage. Ang terminong "external storage" sa Android ay tumutukoy sa nakabahaging storage na naa-access sa maraming app, hindi naman isang pisikal na SD card.
Mga Praktikal na Tip para sa Mga Gumagamit
Kung regular kang nag-sideload ng mga app o namamahala ng mga file sa iyong Android device, narito ang ilang praktikal na rekomendasyon:
- Gumamit ng modernong file manager na sumusuporta sa MANAGE_EXTERNAL_STORAGE. Ang mga app tulad ng Solid Explorer, MiXplorer, at Total Commander ay mahusay na umangkop sa saklaw na storage.
- Maingat na magbigay ng mga pahintulot. Kapag ang isang file manager ay humingi ng "All files access," unawain na ito ang MANAGE_EXTERNAL_STORAGE na pahintulot at kinakailangan para sa ganap na paggana.
- Gamitin ang ADB para sa matigas ang ulo na pagpapatakbo ng file. Kung hindi ka makakapaglagay ng mga OBB file sa pamamagitan ng isang file manager, ang pagkonekta sa iyong device sa isang computer at paggamit ng adb push ay ganap na lumalampas sa mga saklaw na paghihigpit sa storage.
- I-convert ang mga kumplikadong pakete sa mas simpleng mga format. Kung ang isang XAPK file ay nagbibigay sa iyo ng problema sa isang mas bagong device, ang pag-extract lang ng bahagi ng APK ay maaaring ang landas na hindi gaanong lumalaban.
- Panatilihing updated ang iyong mga installer app. Maaaring hindi mahawakan nang tama ng mga lumang bersyon ng mga installer ng XAPK ang nasasakupan na storage.
Ang Hinaharap ng Android Storage
Patuloy na pinipino ng Google ang modelo ng storage sa bawat paglabas ng Android. Ipinakilala ng Android 14 ang partial media access, na nagpapahintulot sa mga user na magbahagi ng mga partikular na larawan sa isang app sa halip na sa kanilang buong library. Ang Android 15 ay inaasahang magdadala ng higit pang mga pagpapabuti sa pagganap at kakayahang magamit ng Storage Access Framework.
Malinaw ang trend: Ang Android ay lumilipat patungo sa isang modelo kung saan ang mga user ay may mahusay na kontrol sa kung ano ang makikita at mababago ng bawat app. Bagama't lumilikha ito ng ilang alitan para sa mga power user at sideloader, makabuluhang pinapabuti nito ang privacy at seguridad para sa mas malawak na user base.
Paggawa gamit ang Saklaw na Imbakan Nang Hindi Sinisira ang Data ng App
Kinakatawan ng saklaw na imbakan ang isa sa pinakamahalagang pagbabago sa arkitektura ng Android sa mga nakaraang taon. Sa pamamagitan ng paghihigpit sa mga app sa kanilang sariling mga sandbox at pag-aatas ng tahasang pahintulot ng user para sa mas malawak na pag-access, kapansin-pansing pinahusay ng Google ang postura sa privacy ng platform. Para sa mga user na nag-sideload ng mga app at manu-manong namamahala ng mga file, ang pag-unawa sa mga paghihigpit na ito ay nakakatulong sa iyo na ayusin ang mga paminsan-minsang friction point. At para sa mga developer, ang pag-angkop sa saklaw na storage ay hindi opsyonal ngunit sa halip ay isang pangunahing kinakailangan para sa modernong Android development.
Ang pag-install ng mga APK, paglalagay ng mga OBB file, at pamamahala lamang ng storage araw-araw ay tumatakbo sa parehong system: saklaw na storage. Kapag naunawaan mo na kung paano ito gumagana, ikaw na ang may kontrol sa iyong device, sa halip na ikaw ay nasa awa ng mga app na maaaring mag-abuso sa malawak na pag-access sa file.