728x90 ๐ป Programming/Android Developer AtoZ9 [Android] App Components - (6) Intent ์๋ฒฝ ๊ฐ์ด๋ Android์ ํต์ฌ ๊ตฌ์ฑ ์์ ์ค ํ๋์ธ Intent๋ ์ฑ ๋ด ๋๋ ๋ค๋ฅธ ์ฑ๊ณผ์ ๋ฐ์ดํฐ ๋ฐ ๊ธฐ๋ฅ์ ๊ณต์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฃผ์ ์์คํ ์ ๋๋ค. ์ฌ๋ฌ ์ปดํฌ๋ํธ ๊ฐ์ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ๋ช ์์ ๋ฐ ์์์ ์ธํ ํธ๋ฅผ ํตํด ๋ค์ํ ๊ธฐ๋ฅ์ ์ํํ ์ ์์ต๋๋ค. ์ง๊ธ๋ถํฐ ํ๋์ฉ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. IntentIntent๋ Android์์ ์ปดํฌ๋ํธ ๊ฐ์ ํต์ ์ ๋ด๋นํ๋ ๊ฐ์ฒด์ ๋๋ค. Activity, Service, Broadcast Receiver ๋ฑ์ ์ปดํฌ๋ํธ๋ฅผ ์คํํ๊ฑฐ๋, ๋ค๋ฅธ ์ฑ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.Intent์๋ ๋ช ์์ ์ธํ ํธ, ์์์ ์ธํ ํธ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค. Explict Intents (๋ช ์์ ์ธํ ํธ)๋ช ์์ ์ธํ ํธ๋ ์ธํ ํธ์ ๋ชฉ์ ์ง๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํ๋ ๋ฐฉ์์ ๋๋ค.์ฆ, ํน์ ์ปดํฌ.. 2025. 3. 24. [Android] App Components - (5) Content Provider ์๋ฒฝ ๊ฐ์ด๋ Android์ 4๋ ์ปดํฌ๋ํธ ์ค ํ๋์ธ Content Provider๋ ์ฑ ๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๋ฅผ ์ํ ํ์ค ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ผ, ๋คํธ์ํฌ ๋ฐ์ดํฐ ๋ฑ์ ๋ค๋ฅธ ์ฑ๊ณผ ์์ ํ๊ฒ ๊ณต์ ํ ์ ์์ต๋๋ค. ์ง๊ธ๋ถํฐ Content Provider์ ๋ํด ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค. Content ProviderAndroid์์๋ ๊ฐ ์ฑ์ด ์์ ๋ง์ ์ ์ฅ ๊ณต๊ฐ(SandBox)์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ฑ์ด ์ง์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Content Provider๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณด์ ์ ์ฑ ์ ์ ์งํ๋ฉด์๋ ๋ฐ์ดํฐ ๊ณต์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.Content Provider๋ ์ฑ ๋ด๋ถ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ์ฑ์ด ์ ๊ทผํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฐ๋ฝ์ฒ ์ฑ์ ์ ํ๋ฒํธ๋ฅผ ๋ค.. 2025. 3. 24. [Android] App Components - (4) Broadcast Receiver ์๋ฒฝ ๊ฐ์ด๋ Android์ 4๋ ์ปดํฌ๋ํธ ์ค ํ๋์ธ Broadcast Receiver๋ ์์คํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ํ๋ ๋ธ๋ก๋์บ์คํธ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ ์ฒ๋ฆฌํ๋ ์ญํ ์ ํฉ๋๋ค. ์ด ๊ฐ์ด๋์์๋ Broadcast Receiver์ ๊ฐ๋ ๊ณผ ์ ํ, ์ต์ ๋ฒ์ ์์์ ๋ณ๊ฒฝ ์ฌํญ ๋ฑ์ ๋ํด ๋ค๋ฃจ๊ณ ์์ต๋๋ค. Broadcast ReceiverBroadcast Receiver๋ ์๋๋ก์ด๋ ์์คํ ์ด๋ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณด๋ด๋ Broadcast๋ฅผ ์์ ํ๊ณ , ์ด์ ๋ํ ๋์์ ์ํํ๋ ์ปดํฌ๋ํธ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋คํธ์ํฌ ๋ณ๊ฒฝ, ๋ฐฐํฐ๋ฆฌ ์ํ ๋ณํ ๋ฑ์ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ ์ ์์ต๋๋ค. ์๋๋ก์ด๋์์๋ ๋ ๊ฐ์ง ์ ํ์ ๋ธ๋ก๋์บ์คํธ๊ฐ ์กด์ฌํฉ๋๋ค.๋ฐ๋ก ์์คํ ๋ธ๋ก๋์บ์คํธ์ ์ฑ ๋ธ๋ก๋์บ์คํธ์ ๋๋ค. System Broadcast์๋๋ก์ด๋ .. 2025. 3. 21. [Android] App Components (3) - Service ์๋ฒฝ ๊ฐ์ด๋ Android์ 4๋ ์ปดํฌ๋ํธ ์ค ํ๋์ธ Service๋ UI ์์ด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋ฉฐ ์ฅ์๊ฐ ์์ ์ ์ํํ๋ ํต์ฌ ์์์ ๋๋ค.์์ ์ฌ์, ๋คํธ์ํฌ ์์ , GPS ๋ฑ ์ฌ์ฉ์์ ์ง์ ์ํธ์์ฉํ์ง ์๋ ์์ ์ ์ํํฉ๋๋ค. ์ด ๊ฐ์ด๋์์๋ Service์ ๊ฐ๋ , ์คํ ๋ฐฉ์, ์ต์ ๋ฒ์ ์ ์ ์ฝ์ฌํญ๊น์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ServiceUI ์์ด Background์์ ์คํ๋๋ ์ปดํฌ๋ํธ๋ก, ์ฑ์ ์คํ ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ฅ์๊ฐ ์ํํด์ผ ํ๋ ์์ ์ ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.Service๋ ์ฑ์ด ์ฌ์ฉ์์ ์ง์ ์ํธ์์ฉํ์ง ์์๋ ์คํ๋๋ฉฐ, ๋ค๋ฅธ ์ปดํฌ๋ํธ(Activity, Broadcast Receiver ๋ฑ)์ ์ํธ์์ฉํ ์ ์์ต๋๋ค. Service๋ ๋ค์๊ณผ ๊ฐ์ด 2๊ฐ๋ก ๋๋ ์ ์์ต๋๋ค.ํฌ๊ทธ๋ผ์ด๋ ์๋น์ค(Fore.. 2025. 3. 19. [Android] App Components (2) - Activity ์๋ฒฝ ๊ฐ์ด๋ Android์ 4๋ ์ปดํฌ๋ํธ ์ค ํ๋์ธ Activity๋ ์ฑ์์ UI๋ฅผ ๋ด๋นํ๋ ํต์ฌ ์์์ ๋๋ค.์ฑ์ ํ๋ฉด์ ๊ตฌ์ฑํ๊ณ , ์ฌ์ฉ์์ ์ํธ์์ฉํ๋ฉฐ ๋ค๋ฅธ ์กํฐ๋นํฐ๋ ์ฑ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ญํ ์ ์ํํฉ๋๋ค. ์ด ๊ฐ์ด๋์์๋ Activity์ ์ญํ , ์๋ช ์ฃผ๊ธฐ, ํ์คํธ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ์๊น์ง ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค. Activity์ฌ์ฉ์์ ์ํธ์์ฉ์ ๋ด๋นํ๋ ์ธํฐํ์ด์ค๋ก ์ฌ์ฉ์์๊ฒ ๋๋ฌ๋๋ ํ๋ฉด์ ์๋ฏธํฉ๋๋ค. ๋๋ฌธ์ ๋ฐ๋์ ํ๋ ์ด์์ Activity๋ฅผ ํฌํจํ๊ณ ์์ด์ผ ํฉ๋๋ค. ์ฑ์ ์คํํ ๋๋ ์ฑ์ ์ ์ฒด์ ์ผ๋ก ํธ์ถํ๋ ๊ฒ์ด ์๋๋ผ ์ฑ์ Activity๋ฅผ ํธ์ถํฉ๋๋ค.Activity๋ ์๋ช ์ฃผ๊ธฐ(Lifecycle) ๊ด๋ จ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ์ฌ ์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์์ต๋๋ค. ์ ๋ฆฌํ์๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.Activ.. 2025. 3. 5. [Android] App Components (1) - ์๋๋ก์ด๋ 4๋ ์ปดํฌ๋ํธ ์๋๋ก์ด๋ ์ฑ์ ๊ตฌ์ฑํ๋๋ฐ ํ์ํ 4๊ฐ์ ์์๋ฅผ ์๋๋ก์ด๋ 4๋ ์ปดํฌ๋ํธ ๋ผ๊ณ ์ผ์ปซ์ต๋๋ค. ์๋๋ก์ด๋ ์ฑ์ ํ์์ ์ธ ๊ตฌ์ฑ์์๋ก, ๊ฐ๊ฐ์ ์์คํ ์ด๋ ์ฑ์ ๋ค์ด์ฌ ์ ์๋ ์ง์ ์ ์ ๋๋ค.์๋๋ก์ด๋ 4๋ ์ปดํฌ๋ํธ์๋ ์กํฐ๋นํฐ(Activity), ์๋น์ค(Service), ๋ธ๋ก๋์บ์คํธ ๋ฆฌ์๋ฒ(Broadcase Receiver), ์ฝํ ์ธ ์ ๊ณต์(Content Provider)๊ฐ ์์ต๋๋ค. 4๋ ์ปดํฌ๋ํธ๋ ๋ค์๊ณผ ๊ฐ์ ๊ณตํต์ ์ธ ํน์ง์ ๊ฐ์ง๋๋ค.๊ฐ ์ปดํฌ๋ํธ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํฉ๋๋ค.๊ฐ ์ปดํฌ๋ํธ๋ ๊ณ ์ ์ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค.๊ฐ ์ปดํฌ๋ํธ๋ Intent๋ฅผ ํตํด ์๋ก ์ํธ์์ฉ ํฉ๋๋ค. ์ด์ด์ ๊ฐ ์ปดํฌ๋ํธ์ ๋ํด ๊ฐ๋จํ ์์๋ณด๊ฒ ์ต๋๋ค. ActivityActivity๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๊ตฌ์ฑํ๋ ์ปดํฌ๋ํธ๋ก, ํ๋์ ํ๋ฉด์.. 2025. 2. 28. [Android] Operating System (2) - GC์ OOM Killer Garbage Collection (GC)์ฃผ๋ก Java/Kotlin๊ณผ ๊ฐ์ Managed Language์์ ์ฌ์ฉํฉ๋๋ค. ์๋๋ก์ด๋๋ ์ฑ ๊ฐ๋ฐ์ Java์ Kotlin์ ์ฌ์ฉํ๋ฏ๋ก, GC๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ํต์ฌ ์ญํ ์ ํฉ๋๋ค.GC๋ ์ฑ์ด ์ฌ์ฉํ์ง ์๋ ๊ฐ์ฒด๋ฅผ ํ์งํ์ฌ ์๋์ผ๋ก ํ์ํ๋ ์์คํ ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ง์ ํ์ง ์์๋ ์์ ์ ์ผ๋ก ๋์ํ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ์ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.๊ฐ์ฒด๋ ์ฑ์ด ๋์ํ๋ ์ค์ ์์ฑ๋ฉ๋๋ค. ๊ฐ์ฒด๊ฐ ๋ ์ด์ ์ฐธ์กฐ๋์ง ์์ผ๋ฉด Garbage๋ก ๊ฐ์ฃผํฉ๋๋ค.์ฐธ์กฐ ๊ทธ๋ํ(Referebce Graph)๋ฅผ ๋ถ์ํ์ฌ ๋ฉ๋ชจ๋ฆฌ์์ ์ด๋ค ๊ฐ์ฒด๊ฐ ์ฐธ์กฐ๋๊ณ ์๋์ง ํ์ ํฉ๋๋ค.์ฐธ์กฐ๋์ง ์๋ ๊ฐ์ฒด(Unreachable Object), Garbage๋ฅผ ์ฐพ์ ์ ๊ฑฐํ๊ณ ๋ฉ๋ชจ.. 2025. 2. 22. [Android] Operating System (1) - File Permission, Multi-User Linux, Resource Isolations, Process Management File PermissionLinux์ ํ์ผ ๊ถํ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์์ ์ ์งํฉ๋๋ค. ๊ฐ ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ๋ ์์ ์, ๊ทธ๋ฃน, ๊ธฐํ ์ฌ์ฉ์์ ๋ํด ์ฝ๊ธฐ(r), ์ฐ๊ธฐ(w), ์คํ(x) ๊ถํ์ ์ ์ํฉ๋๋ค.๊ฐ ๊ถํ ์ฒด๊ณ๋ ์๋์ ๊ฐ์ต๋๋ค.์์ ์(owner) : ํ์ผ์ ์์ฑํ ์ฌ์ฉ์(์ฑ)์ด๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๊ถํ์ ๊ฐ์ง๊ทธ๋ฃน(group) : UID๊ฐ ๊ฐ์ ์ฌ์ฉ์ ๊ทธ๋ฃน ๋ด ๊ถํ. (์๋๋ก์ด๋ ์ฑ์์๋ ์ฃผ๋ก ์ฌ์ฉ๋์ง ์์)๊ธฐํ ์ฌ์ฉ์(others) : ์์ ์์ ๊ทธ๋ฃน ์ธ์ ๋ชจ๋ ์ฌ์ฉ์์ด๋ค.์๋๋ก์ด๋ ์ฑ์ ํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก '660(rw- rw- ---)' ํน์ '600(rw- --- ---)' ๊ถํ์ ๊ฐ์ง๊ฐ ์ฑ์ ๋ฐ์ดํฐ๋ '/data/data//' ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค. ๋ค๋ฅธ ์ฑ์ด ์ด ๋๋ ํฐ๋ฆฌ์ ์ ๊ทผํ๋ ค๋ฉด ๋ช ์์ ์ธ ๊ถ.. 2025. 2. 21. ์ด์ 1 2 ๋ค์ 728x90