[GP] Android AIDL ์ ์ฌ์ฉํ Activity ์ Service ํต์
์ด ๊ธ์ ์ ์ Github Page์ ๋ด์ฉ ์ค ์ผ๋ถ๋ฅผ ๋ด์์จ ๊ฒ์ ๋๋ค.
์๋ ํ์ธ์. ์ฒ์์ผ๋ก Android ํฌ์คํธ๋ฅผ ์ฐ๊ฒ ๋์๋ค์. ์๋๋ก์ด๋ ํฌ์คํธ๋ฅผ ์ปค๋ฆฌํ๋ผ๋ณ๋ก ํฌ์คํ ์ ํด๋ณผ๊น ๋ผ๋ ์๊ฐ๋ ํ์์ง๋ง, ์ปค๋ฆฌํ๋ผ์ ๋ํ ๋ด์ฉ์ ๋ค๋ฅธ ๋ธ๋ก๊ทธ์์๋ ๋ง์ด ์ฐพ์๋ณผ ์ ์๋ ๋ด์ฉ์ด๊ณ ๋ ์ด๋ ต์ง ์์ ๋ด์ฉ์ด๊ธฐ์ ์ปค๋ฆฌํ๋ผ์ด๊ธฐ ๋ณด๋ค๋ ์์ฃผ ์ฌ์ฉํ๋ฉด์๋ ์ฝ๊ฒ ์ดํดํ๊ธฐ ์ด๋ ค์ด ๋ถ๋ถ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ์ฒ์ ํฌ์คํธ๋ฅผ AIDL๋ก ์ผ๊ฒ ๋์์ต๋๋ค.
AIDL ?
AIDL์ Android Interface Definition Language์ ์ฝ์๋ก, ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ ์ธ์ด์ ๋๋ค. ๋ณธ๋๋ Android IDL์ Corba์ IDL ๊ธฐ๋ฅ์ ๊ทธ๋๋ก ๋ฌ์ฌํ ๊ฒ์ด๋ฉฐ RPC ํต์ ํ ๋ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ด ํฌ์คํธ์์ ๋ค๋ฃฐ ์ฃผ์ ๋, Activity์ Service ๊ฐ์ ํต์ ์ผ๋ก ํ๋ก์ธ์ค ๊ฐ์ ํต์ ์ ๊ตฌํํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค, ํน์ ๋คํธ์ํฌ ๊ฐ์ ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ํด์๋ ์ธํฐํ์ด์ค๊ฐ ๋ฐ๋ ๋๋ง๋ค ์ธ์ด์ ๊ตฌ์กฐ์ ๋ง๋ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์ด์ผ ํ๋๋ฐ, ์ค์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ถ๋ถ์ AIDL Tool์ ๋งก๊ธฐ๊ณ , ๊ฐ๋ฐ์๋ IDL๋ง ์ ์ํ๋๋ก ํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ, Android ์์๋ RPC๊ฐ ์๋ IPC (Inter Process Communication, ํ๋ก์ธ์ค ๊ฐ ํต์ ), ์๋๋ก์ด๋์์๋ ๋ณดํต Binder๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๋ ๋ถ๋ถ์ ์ฌ์ฉํ๊ธฐ ์ํด์ ์ ์ํฉ๋๋ค. ๋ณดํต ์๋๋ก์ด๋์๋ ๋ ๊ฐ์ง ์๋น์ค๊ฐ ์กด์ฌํ๋๋ฐ, ๊ทธ ์ค Remote Service๋ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์๋๋ผ ๋ค๋ฅธ ํ๋ก์ธ์ค์์ ์ค๋ ํจ์์ ํธ์ถ์ ์ฒ๋ฆฌํ๋ ์๋น์ค์ด๊ณ , ๊ทธ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ์ด Binder์ฃ . ๊ทธ๋ฆฌ๊ณ , ๊ทธ Binder๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ ๊ฒ์ด AIDL ์ ๋๋ค.
์ด์ด์ ์ฝ์ผ์๋ ค๋ฉด ์๋์ ๋ฒํผ์ ํด๋ฆญํด์ฃผ์ธ์.
'Embedded Platform > Android' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[GP] Android CustomView๋ฅผ ๋ง๋ค์ด๋ณด์ (0) | 2017.08.02 |
---|---|
[GP] Android, ๋ค๋ฅธ ์ฐ๋ ๋์์ UI ์ฒ๋ฆฌ๋ฅผ ํ๋ ๋ฐฉ๋ฒ (0) | 2017.06.23 |
Google Cardboard 2.0 ์งค๋งํ ํ๊ธฐ (0) | 2016.01.02 |
Android Studio ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐํ๊ธฐ (0) | 2015.11.08 |
XMPP ํ๋กํ ์ฝ๊ณผ ํตํฉ ๋ฉ์ ์ ๋ก ํ์์ ์ฐ๋ํ๊ธฐ (0) | 2015.09.13 |