[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 ์ž…๋‹ˆ๋‹ค.



์ด์–ด์„œ ์ฝ์œผ์‹œ๋ ค๋ฉด ์•„๋ž˜์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์ฃผ์„ธ์š”.


... ๊ณ„์† ์ฝ๊ธฐ


๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments