Notice
Recent Posts
Recent Comments
Link
ยซ   2025/06   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐ŸŒฑ dreaming DiNO

[Android] JDK, SDK, NDK ๋ณธ๋ฌธ

Android

[Android] JDK, SDK, NDK

MK_____ 2021. 10. 13. 13:33

JDK(Java Development Kit, ์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ)

  1. ์ •์˜

์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ํ”Œ๋žซํผ์˜ ๊ตฌ์„ฑ์š”์†Œ(?? ๋ฌด์Šจ ๋ง์ธ๊ฐ€)

 

2. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ 3๋Œ€ ํ•ต์‹ฌ ๊ธฐ์ˆ  ํŒจํ‚ค์ง€

2–1. JVM(Java Virtual Machine, ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ )

2–2. JRE(Java Runtime Environment, ์ž๋ฐ” ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ)

JVM์„ ์ƒ์„ฑํ•˜๋Š” ๋””์Šคํฌ ์ƒ์˜ ๋ถ€๋ถ„

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•œ ๋…๋ฆฝ ๊ตฌ์„ฑ์š”์†Œ์ž„๊ณผ ๋™์‹œ์— JDK์˜ ์ผ๋ถ€

2–3. JDK

์œ„์˜ ์ •์˜๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด, ์ž๋ฐ” ๊ธฐ๋ฐ˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋“ค๋กœ ์ด๋ค„์ง„ ํŒจํ‚ค์ง€๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํŒจํ‚ค์ง€ ์ข…๋ฅ˜

Java SE (Standard Edition)

Java EE(Enterprise Edition) : Java SE + Java Beans, ORM(Object Relational Mapping) ๋“ฑ์„ ์ง€์›

Java ME(Miro Edition) : Java SE + ํœด๋Œ€์ „ํ™”, PDA, ์…‹ํƒ‘๋ฐ•์Šค ๋“ฑ์„ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ

์œ„ ์„ธ ํŒจํ‚ค์ง€ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ด๋ฏธ์ง€๋Š” ๋‹ค์Œ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

SDK(Software Developer’s Kit, ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋„๊ตฌ)

  1. ์ •์˜

UI ๊ธฐ๋ฐ˜์œผ๋กœ ํŠนํ™”๋œ API๋ฅผ ์ œ๊ณตํ•˜์—ฌ Application Level์—์„œ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋„์™€์ฃผ๋Š” ํŒจํ‚ค์ง€

 

2. ํ™œ์šฉ

Java ๊ธฐ๋ฐ˜์œผ๋กœ Application Emulator๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์–ด Build ๋™์‹œ์— Test๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— UI ๊ธฐ๋ฐ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ™œ์šฉ๋จ

 

NDK(Native Development Kit, ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐœ๋ฐœ ๋„๊ตฌ)

  1. ์ •์˜

C/C++์„ ์ด์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฏธ๋“ค์›จ์–ด ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋˜๋Š” Framework

2. ์™œ ๋‚˜์™”๋Š”๊ฐ€?

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

3. JNI(Java Native Interface)

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

3–1. JNI์˜ ์›๋ฆฌ

  • Java ํŒŒ์ผ : ํ˜ธ์ถœํ•˜๋ ค๊ณ  ํ•˜๋Š” C ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์„ ์–ธ๋ฌธ๊ณผ ํ˜ธ์ถœ๋ฌธ, ๊ทธ๋ฆฌ๊ณ  dll ๋กœ๋“œ๋ฌธ์„ ์ž‘์„ฑ
  • C/C++ : ํŒŒ์ผNative Call ํ•˜๋ ค๋Š” C ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •์˜๋ฌธ ๋ฐ ํ—ค๋” ํŒŒ์ผ์„ ์ž‘์„ฑ
  • ๋งŒ๋“ค์–ด์ง„ C ํŒŒ์ผ์„ dll๋กœ ๋นŒ๋“œ
  • ๋นŒ๋“œํ•œ dll์„ ์ž๋ฐ”์ฝ”๋“œ์—์„œ ํ˜ธ์ถœํ•ด์„œ ๋งŒ๋“  Cํ•จ์ˆ˜๋ฅผ ์ž๋ฐ”์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ

3–2. ํ™œ์šฉ

C/C++๋กœ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ–ˆ๋˜ ํ•˜๋“œ์›จ์–ด ๋‹จ์œ„์˜ ๊ธฐ๋Šฅ(์„ผ์„œ ๊ฐ’ ์ฒ˜๋ฆฌ, ํ„ฐ์น˜) ๋“ฑ์„ JNI๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์œผ๋กœ์จ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

  • ์˜์ƒ์ฒ˜๋ฆฌ
  • ๊ฒŒ์ž„
  • ์„ผ์„œ์ฒ˜๋ฆฌ
  • ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

 

์ถœ์ฒ˜: https://medium.com/@logishudson0218/jdk-sdk-ndk-3b095101c040

'Android' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Kotlin] Retrofit - Logging Interceptor ์˜ ํ•„์š”์„ฑ  (0) 2021.12.07
[Kotlin] Retrofit (๋ ˆํŠธ๋กœํ•) ์ด๋ž€?  (0) 2021.11.24
[Kotlin] ๊ธฐ๋ณธ๋ฌธ๋ฒ•-2  (0) 2021.11.24
[Kotlin] ๊ธฐ๋ณธ๋ฌธ๋ฒ•-1  (0) 2021.11.24
[Android] MVVM  (0) 2021.11.11