๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿค์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ ๊ธฐ๋ก/์•ˆ๋“œ๋กœ์ด๋“œ ์•„ํ‚คํ…์ณ 30์ผ ์Šคํ„ฐ๋””

Android OS 1~3์ผ์ฐจ : ์•ˆ๋“œ๋กœ์ด๋“œ ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š” ์•Œ์•„๋ณด๊ธฐ

by hyeonha 2024. 4. 5.

์•ˆ๋“œ๋กœ์ด๋“œ ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ

1๏ธโƒฃLinux ์ปค๋„

์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ์˜ ๊ธฐ์ดˆ๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„์ด๋‹ค. Android ๋Ÿฐํƒ€์ž„์ธ ART๋Š” ์Šค๋ ˆ๋”ฉ ๋ฐ ํ•˜์œ„ ์ˆ˜์ค€์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์— ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋ฉด Android์—์„œ ์ฃผ์š” ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๊ธฐ๊ธฐ ์ œ์กฐ์—…์ฒด์—์„œ ์ž˜ ์•Œ๋ ค์ง„ ์ปค๋„์šฉ ํ•˜๋“œ์›จ์–ด ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- Drivers 
ํ•˜๋“œ์›จ์–ด์™€ ์šด์˜์ฒด์ œ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•œ๋‹ค. ๊ฐ์ข… ํ•˜๋“œ์›จ์–ด ์žฅ์น˜(ํ”„๋ฆฐํ„ฐ, ๋ชจ๋‹ˆํ„ฐ, ํ‚ค๋ณด๋“œ ๋“ฑ)์€ ๊ฐ์ž ๊ณ ์œ ํ•œ ๋™์ž‘ ๋ฐฉ์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ†ต์ผ๋œ ๋ฐฉ์‹์œผ๋กœ ์šด์˜์ฒด์ œ๊ฐ€ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ์ค‘๊ฐœํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

๋“œ๋ผ์ด๋ฒ„๋Š” ์žฅ์น˜์˜ ์ƒ์„ธํ•œ ๋™์ž‘ ๋ฐฉ์‹์„ ์•Œ๊ณ  ์žˆ์–ด์„œ, ์šด์˜์ฒด์ œ์˜ ๋ช…๋ น์„ ํ•ด๋‹น ์žฅ์น˜๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ์žฅ์น˜๋กœ๋ถ€ํ„ฐ์˜ ์ถœ๋ ฅ์„ ์šด์˜์ฒด์ œ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

๋“œ๋ผ์ด๋ฒ„๋Š” ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๋ฅผ ์šด์˜์ฒด์ œ์—์„œ ์ธ์‹ํ•˜๊ณ  ์ œ์–ดํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋ฆฐํ„ฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์žฅ์น˜๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค. ์ด ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด ์šด์˜์ฒด์ œ๋Š” ํ”„๋ฆฐํ„ฐ๊ธฐ์™€ ์–ด๋–ป๊ฒŒ ๋Œ€ํ™”ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๊ณ  ์žฅ์น˜๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

 

- Power Management 

๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ํŒŒ์›Œ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์€ ์‹œ์Šคํ…œ์˜ ์ „๋ ฅ ์†Œ๋ชจ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š”๋ฐ ๋„์›€์„ ์ค€๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด CPU ์Šค์ผ€์ค„๋ง, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„ ๋“ฑ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•ด์„œ ์ „๋ ฅ์†Œ๋ชจ๋ฅผ ์ตœ์ ํ™”ํ•ด์ค€๋‹ค. 

 

2๏ธโƒฃํ•˜๋“œ์›จ์–ด ์ถ”์ƒํ™”๊ณ„์ธต(HAL)

ํ•˜๋“œ์›จ์–ด ์ถ”์ƒํ™” ๊ณ„์ธต์€ ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด ์‚ฌ์ด์˜ ์ถ”์ƒํ™”๋œ ๊ณ„์ธต์„ ๋งํ•œ๋‹ค. ์ด ์ถ”์ƒํ™” ๊ณ„์ธต์„ ํ†ตํ•ด์„œ ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•ด ๋‹ค๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ํ•„์š” ์—†์ด ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์นด๋ฉ”๋ผ๋‚˜ ๋ธ”๋ฃจํˆฌ์Šค ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ทธ์— ๋งž๋Š” ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฐ ๊ฐ๊ฐ์˜ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ์ œ์–ดํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ HAL์„ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ๊ทธ ์ฐจ์ด๋ฅผ ์‹ ๊ฒฝ์“ธ ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.

์™œ๋ƒํ•˜๋ฉด HAL์ด ์ด๋Ÿฌํ•œ ๊ฐ๊ฐ์˜ ํ•˜๋“œ์›จ์–ด์˜ ํŠน์„ฑ๊ณผ ๋™์ž‘ ๋ฐฉ์‹์„ ์ถ”์ƒํ™”ํ•˜์—ฌ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๊ทธ๋ž˜์„œ ์•ˆ๋“œ๋กœ์ด๋“œ์˜ ์ž๋ฐ” API ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ด HAL์„ ์ด์šฉํ•ด์„œ ํ•˜๋“œ์›จ์–ด์— ์ ‘๊ทผํ•˜๊ณ  ์ œ์–ดํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์นด๋ฉ”๋ผ ์•ฑ์„ ๋งŒ๋“ค ๋Œ€ ๊ฐœ๋ฐœ์ž๋Š” ์นด๋ฉ”๋ผ ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ HAL์—์„œ ์ œ๊ณตํ•˜๋Š” ์นด๋ฉ”๋ผ ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋œ๋‹ค.

 

HAL์€ ์ƒ์œ„ ์ˆ˜์ค€์˜ ์ž๋ฐ” API ํ”„๋ ˆ์ž„์›Œํฌ์— ๊ธฐ๊ธฐ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ๋…ธ์ถœํ•˜๋Š” ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. HAL์€ ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ๊ฐ ๋ชจ๋“ˆ์€ ์นด๋ฉ”๋ผ ๋˜๋Š” ๋ธ”๋ฃจํˆฌ์Šค ๋ชจ๋“ˆ๊ณผ ๊ฐ™์€ ํŠน์ • ์œ ํ˜•์˜ ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ API๊ฐ€ ๊ธฐ๊ธฐ ํ•˜๋“œ์›จ์–ด์— ์—‘์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด Android ์‹œ์Šคํ…œ์ด ํ•ด๋‹น ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•œ๋‹ค.

 

3๏ธโƒฃAndroid ๋Ÿฐํƒ€์ž„

ART๋Š” Android ๋ฒ„์ „ 5.0(๋กค๋ฆฌํŒ)๋ถ€ํ„ฐ ๋„์ž…๋œ ์ƒˆ๋กœ์šด ์•ฑ ์‹คํ–‰ ํ™˜๊ฒฝ์ด๋‹ค. ์ด์ „์—๋Š” Dalvik์ด๋ผ๋Š” ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ART ๋Š” ์ด๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค. 

Dalvik์€ Just-In-Time(JIT) ์ปดํŒŒ์ผ ๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ์•ฑ์„ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๊ณ  ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ์‹์€ CPU์˜ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜๋ช…์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์•ฑ์˜ ์‹คํ–‰ ์†๋„๋„ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜จ ๊ฒƒ์ด ART!
ART๋Š” Ahead-Of-Time(AOT) ์ปดํŒŒ์ผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ๋ฐฉ์‹์€ ์•ฑ์„ ์„ค์น˜ํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์ด๋ฏธ ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ฑ์„ ์‹คํ–‰ํ•  ๋•Œ๋Š” ๋ณ„๋„์˜ ํ•ด์„ ๊ณผ์ •์—†์ด ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ART๋Š” Dalvik์— ๋น„ํ•ด ์•ฑ์˜ ์‹คํ–‰ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๊ณ  ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜๋ช…์„ ๋Š˜๋ฆฌ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค.

 

๋˜ํ•œ ART๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(GC) ์ตœ์ ํ™”๋ฅผ ์ œ๊ณตํ•œ๋‹ค. GC๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ธ๋ฐ ART๋Š” ์ด๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์„œ ์•ฑ์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š”๋ฐ ๋„์›€์„ ์ค€๋‹ค.

 

์•ˆ๋“œ๋กœ์ด๋“œ 9๋ถ€ํ„ฐ๋Š” DEX ํŒŒ์ผ์„ ๋” ๊ฐ„๊ฒฐํ•œ ํ˜•ํƒœ์˜ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•ฑ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ์‹คํ–‰ ์†๋„๋ฅผ ๋”์šฑ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

 

์ „์šฉ ์ƒ˜ํ”Œ๋ง ํ”„๋กœํŒŒ์ผ๋Ÿฌ, ์ƒ์„ธ ์ง„๋‹จ ์˜ˆ์™ธ ๋ฐ ์˜ค๋ฅ˜ ๋ณด๊ณ , watchpoint๋ฅผ ์„ค์ •ํ•˜์—ฌ ํŠน์ • ํ•„๋“œ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋น„๋กฏํ•œ ํ–ฅ์ƒ๋œ ๋””๋ฒ„๊น… ๊ธฐ๋Šฅ ์ง€์› 

 

4๏ธโƒฃ๋„ค์ดํ‹ฐ๋ธŒ C/C++ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๋„ค์ดํ‹ฐ๋ธŒ C/C++ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ์š”์†Œ ์ค‘ ์ผ๋ถ€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งํ•œ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ์‹œ์Šคํ…œ์˜ ์ตœ์ ํ™”, ํ•˜๋“œ์›จ์–ด ์ œ์–ด, ๊ทธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ๋“ฑ ๋ณต์žกํ•˜๊ณ  ์„ธ๋ฐ€ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” C๋‚˜ C++ ๊ฐ™์€ ๋„ค์ดํ‹ฐ๋ธŒ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.

์—ฌ๊ธฐ์—๋Š” Open GL ES์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ SQLite ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, SSL์™€ ๊ฐ™์€ ๋ณด์•ˆ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋ณต์žกํ•˜๊ณ  ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” Java ํ”„๋ ˆ์ž„์›Œํฌ API๋ฅผ ์ œ๊ณตํ•ด์„œ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์˜ ๊ธฐ๋Šฅ์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Open GL ES๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ๋ณต์žกํ•œ C ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•˜์ง€๋งŒ Java OpenGL API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ทธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋•Œ๋•Œ๋กœ Java API๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿด ๋•Œ์—๋Š” Android NDK(Native Development Kit)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ง์ ‘ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

ART ๋ฐ HAL๊ณผ ๊ฐ™์€ ํ•ต์‹ฌ Android ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ์„œ๋น„์Šค๋Š” C/C++๋กœ ์ž‘์„ฑ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ์—์„œ ๋นŒ๋“œ๋œ๋‹ค. Android ํ”Œ๋žซํผ์€ Java ํ”„๋ ˆ์ž„ API๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ผ๋ถ€ ๋„ค์ดํ‹ฐ๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋Šฅ์„ ์•ฑ์—๋…ธ์ถœํ•œ๋‹ค. 

C ๋˜๋Š” C++ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•œ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” Android NDK๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ์—์„œ ์ง์ ‘ ์ด๋Ÿฌํ•œ ๋ช‡๋ช‡ ๋„ค์ดํ‹ฐ๋ธŒ ํ”Œ๋žซํผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค.

 

5๏ธโƒฃJava API ํ”„๋ ˆ์ž„์›Œํฌ 

Java API ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์ž๋“ค์ด ์•ˆ๋“œ๋กœ์ด๋“œ OS์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ผ๋ จ์˜ ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ง‘ํ•ฉ์ด๋‹ค.

์ด๋Ÿฌํ•œ API๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋…ธ์ถœ์‹œ์ผœ์ฃผ๊ณ , ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

 - ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ทฐ ์‹œ์Šคํ…œ
๋ทฐ ์‹œ์Šคํ…œ์€ ์•ฑ์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ์„ฑ์š”์†Œ์ด๋‹ค. 

- ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž

์ฝ”๋“œ ์™ธ๋ถ€์— ์œ„์น˜ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ ‘๊ทผํ•˜๋Š” ๋„๊ตฌ์ด๋‹ค. ์•ฑ์˜ ๋ฌธ์ž์—ด, ๊ทธ๋ž˜ํ”ฝ, ๋ ˆ์ด์•„์›ƒ ํŒŒ์ผ ๋“ฑ๊ณผ ๊ฐ™์€ ์ž์›๋“ค์€ ๋ชจ๋‘ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž๋ฅผ  ํ†ตํ•ด ๊ดธ๋ฆฌ๋œ๋‹ค. ์ด๋Š” ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ์•ฑ์„ ์ง€์—ญํ™”ํ•˜๋Š” ์ž‘์—…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ๋„ ํ•œ๋‹ค.

 

ํ˜„์ง€ํ™”๋œ ๋ฌธ์ž์—ด, ๊ทธ๋ž˜ํ”ผ ๋ฐ ๋ ˆ์ด์•„์›ƒ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œ๊ณตํ•œ๋‹ค.

 

- ์•Œ๋ฆผ ๊ด€๋ฆฌ์ž

์ƒํƒœ๋ฐ”์— ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ์„ ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์•ฑ์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜๋Š”๋™์•ˆ์—๋„ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ชจ๋“  ์•ฑ์ด ์ƒํƒœ ํ‘œ์‹œ์ค„์— ๋งž์ถค ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค.

 

- ํ™œ๋™ ๊ด€๋ฆฌ์ž

ํ™œ๋™ ๊ด€๋ฆฌ์ž๋Š” ์•ฑ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์•กํ‹ฐ๋น„ํ‹ฐ ๊ฐ„ ๋„ค๋น„๊ฒŒ์ด์…˜์„ ์ œ์–ดํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ์ž‘์—… ์‚ฌ์ด๋ฅผ ์›ํ™œํ•˜๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.


๊ณตํ†ต ํƒ์ƒ‰ ๋ฐฑ์Šคํƒ์„ ์ œ๊ณตํ•œ๋‹ค.

 

- ์ฝ˜ํ…์ธ  ์ œ๊ณต์ž

์ฝ˜ํ…์ธ  ์ œ๊ณต์ž๋Š” ์•ฑ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๊ณต์œ ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ์•ฑ์ด ๋‹ค๋ฅธ ์•ฑ์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ์•ฑ๊ณผ ๊ณต์œ ํ•˜๊ฒŒ ๋œ๋‹ค.

6๏ธโƒฃ์‹œ์Šคํ…œ ์•ฑ

์‹œ์Šคํ…œ ์•ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Android OS์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์•ฑ๋“ค์„ ์˜๋ฏธํ•œ๋‹ค. ํ†ตํ™”, ๋ฉ”์‹œ์ง•, ์นด๋ฉ”๋ผ, ์„ค์ •, ๊ฐค๋Ÿฌ๋ฆฌ ๋“ฑ๊ณผ ๊ฐ™์ด ์Šค๋งˆํŠธํฐ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค.

 

์ด๋Ÿฐ ์‹œ์Šคํ…œ ์•ฑ๋“ค์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋Š”๋ฐ ์ด๋Š” ์‹œ์Šคํ…œ ์•ฑ๋“ค์ด Android OS์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ตฌ์„ฑํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฐ ์‹œ์Šคํ…œ์•ฑ์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์€ ํƒ€์‚ฌ ์•ฑ์œผ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์›น ๋ธŒ๋ผ์šฐ์ €๋‚˜ sns ๋ฉ”์‹ ์ €๋ฅผ ์„ ํ˜ธํ•œ๋‹ค๋ฉด ๊ทธ๊ฒƒ๋“ค์„ ๊ธฐ๋ณธ ์•ฑ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋˜ํ•œ ๊ฐœ๋ฐœ์ž๋“ค์€ ์‹œ์Šคํ…œ ์•ฑ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ž์‹ ๋“ค์˜ ์•ฑ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ์—ฐ๋ฝ์ฒ˜์— SMS ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ SMS ์ „์†ก ๊ธฐ์ˆ ์„ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ์ด๋ฏธ ์„ค์น˜๋œ SMS ์‹œ์Šคํ…œ ์•ฑ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์ž๋ฃŒ

 

https://developer.android.com/guide/platform?hl=ko

 

ํ”Œ๋žซํผ ์•„ํ‚คํ…์ฒ˜  |  Platform  |  Android Developers

Android๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์™€ ํผ ํŒฉํ„ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ๋ฐœ๋œ Linux ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ๋Š” Android ํ”Œ๋žซํผ์˜ ์ฃผ์š” ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. Android ํ”Œ๋žซํผ์˜

developer.android.com

 

728x90