[240808][์•ˆ๋“œ๋กœ์ด๋“œ ์ž๋ฐ”] ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ ๊ณผ์ •

2024. 8. 8. 17:26ยทํ”„๋กœ๊ทธ๋ž˜๋ฐ/Android

์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ ๊ณผ์ •

1. ์†Œ์Šค ์ฝ”๋“œ ์ž‘์„ฑ

๊ฐœ๋ฐœ์ž๋Š” Java/Kotlin ์†Œ์Šค ์ฝ”๋“œ, XML ๋ ˆ์ด์•„์›ƒ ํŒŒ์ผ, ๋ฆฌ์†Œ์Šค ํŒŒ์ผ ๋“ฑ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

2. ์ปดํŒŒ์ผ ํƒ€์ž„

์ด ๋‹จ๊ณ„์—์„œ๋Š” ์†Œ์Šค ์ฝ”๋“œ์™€ ๋ฆฌ์†Œ์Šค ํŒŒ์ผ์ด ์ปดํŒŒ์ผ๋˜์–ด ์•ฑ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

์„ธ๋ถ€ ๋‹จ๊ณ„:

  1. ํ”„๋ฆฌํ”„๋กœ์„ธ์‹ฑ:
    • Gradle์ด ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฝ๊ณ  ํ”„๋กœ์ ํŠธ์˜ ์„ค์ •์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฆฌ์†Œ์Šค ์ปดํŒŒ์ผ:
    • XML ๋ ˆ์ด์•„์›ƒ ํŒŒ์ผ, ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ, ์ด๋ฏธ์ง€, ๋ฌธ์ž์—ด ๋ฆฌ์†Œ์Šค ๋“ฑ์ด AAPT(Android Asset Packaging Tool)์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
    • R.java ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์–ด ๊ฐ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ณ ์œ ํ•œ ID๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  3. ์†Œ์Šค ์ฝ”๋“œ ์ปดํŒŒ์ผ:
    • Java/Kotlin ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๋ฐ”์ดํŠธ์ฝ”๋“œ(.class ํŒŒ์ผ)๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.
    • Kotlin ํŒŒ์ผ์€ ๋จผ์ € Kotlin ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ ํ›„, Java ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ถ”๊ฐ€ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  4. ๋ฐ”์ดํŠธ์ฝ”๋“œ ๋ณ€ํ™˜ ๋ฐ ๋‹ค๋“ฌ๊ธฐ:
    • ProGuard๋‚˜ R8 ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜๊ณ , ๋‚œ๋…ํ™”ํ•˜๋ฉฐ, ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  5. DEX ํŒŒ์ผ ์ƒ์„ฑ:
    • ์ปดํŒŒ์ผ๋œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๊ฐ€ dx ๋˜๋Š” d8 ๋„๊ตฌ์— ์˜ํ•ด Dalvik ๋ฐ”์ดํŠธ์ฝ”๋“œ(.dex ํŒŒ์ผ)๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
  6. APK ๋นŒ๋“œ:
    • ๋ชจ๋“  ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ(.dex ํŒŒ์ผ, ๋ฆฌ์†Œ์Šค ํŒŒ์ผ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ)์ด ํ•˜๋‚˜์˜ APK ํŒŒ์ผ๋กœ ํŒจํ‚ค์ง•๋ฉ๋‹ˆ๋‹ค.
    • APK ํŒŒ์ผ์ด ์„œ๋ช…๋ฉ๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ ๋นŒ๋“œ๋Š” ๋””๋ฒ„๊ทธ ํ‚ค๋กœ ์„œ๋ช…๋˜๊ณ , ๋ฆด๋ฆฌ์ฆˆ ๋นŒ๋“œ๋Š” ๋ฆด๋ฆฌ์ฆˆ ํ‚ค๋กœ ์„œ๋ช…๋ฉ๋‹ˆ๋‹ค.

3. ๋Ÿฐํƒ€์ž„

์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ปดํŒŒ์ผ๋œ ์•ฑ์ด ์‹ค์ œ๋กœ ๋””๋ฐ”์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์„ธ๋ถ€ ๋‹จ๊ณ„:

  1. APK ์„ค์น˜:
    • ๋นŒ๋“œ๋œ APK ํŒŒ์ผ์ด ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋‚˜ ์‹ค์ œ ๋””๋ฐ”์ด์Šค์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
  2. ์•ฑ ์‹คํ–‰:
    • ์„ค์น˜๋œ ์•ฑ์ด ๋””๋ฐ”์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
    • ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ(Dalvik ๋˜๋Š” ART)์ด APK ํŒŒ์ผ์˜ .dex ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๊ณ , ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. ์•ฑ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ:
    • ์•ˆ๋“œ๋กœ์ด๋“œ ์‹œ์Šคํ…œ์ด ์•ฑ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, onCreate(), onStart(), onResume() ๊ฐ™์€ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

์ „์ฒด ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ ํ๋ฆ„

  1. ์†Œ์Šค ์ฝ”๋“œ ์ž‘์„ฑ
    • Java/Kotlin ์ฝ”๋“œ, XML ๋ ˆ์ด์•„์›ƒ, ๋ฆฌ์†Œ์Šค ํŒŒ์ผ ์ž‘์„ฑ.
  2. ์ปดํŒŒ์ผ ํƒ€์ž„
    • ํ”„๋ฆฌํ”„๋กœ์„ธ์‹ฑ (Gradle ์„ค์ • ์ฝ๊ธฐ)
    • ๋ฆฌ์†Œ์Šค ์ปดํŒŒ์ผ (AAPT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ R.java ์ƒ์„ฑ)
    • ์†Œ์Šค ์ฝ”๋“œ ์ปดํŒŒ์ผ (Java/Kotlin ์ปดํŒŒ์ผ๋Ÿฌ ์‚ฌ์šฉ)
    • ๋ฐ”์ดํŠธ์ฝ”๋“œ ์ตœ์ ํ™” (ProGuard/R8)
    • DEX ํŒŒ์ผ ์ƒ์„ฑ (dx/d8 ๋„๊ตฌ ์‚ฌ์šฉ)
    • APK ๋นŒ๋“œ ๋ฐ ์„œ๋ช…
  3. ๋Ÿฐํƒ€์ž„
    • APK ์„ค์น˜ (์—๋ฎฌ๋ ˆ์ดํ„ฐ/๋””๋ฐ”์ด์Šค)
    • ์•ฑ ์‹คํ–‰ (Dalvik/ART์—์„œ DEX ํŒŒ์ผ ๋กœ๋“œ)
    • ์•ฑ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ (์•ˆ๋“œ๋กœ์ด๋“œ ์‹œ์Šคํ…œ)

'ํ”„๋กœ๊ทธ๋ž˜๋ฐ > Android' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[kotlin] ์ฝ”ํ‹€๋ฆฐ(Kotlin) ๊ณผ ์ฝ”๋ฃจํ‹ด(Coroutine)์— ๋Œ€ํ•ด  (1) 2026.01.17
[260114] Android Jetpack Compose์˜ 3๋‹จ๊ณ„ ์‹คํ–‰ ํŒŒ์ดํ”„๋ผ์ธ(์ปดํฌ์ง€์…˜, ๋ ˆ์ด์•„์›ƒ, ๊ทธ๋ฆฌ๊ธฐ)  (0) 2026.01.14
[260112] Android Context ๋ž€?  (0) 2026.01.12
[Android/JAVA] "์˜์‹ฌ์Šค๋Ÿฌ์šด ๋“ค์—ฌ์“ฐ๊ธฐ" ์ด์Šˆ . . . Suspicious indentation ์˜ค๋ฅ˜. ์ž‘๋™์—๋Š” ๋ฌธ์ œ ์—†์Œ  (2) 2024.02.09
[Android/JAVA] ์œ„๋„, ๊ฒฝ๋„ ๊ฐ’์œผ๋กœ ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๊ธฐ (Km, M, S)  (0) 2024.02.08
'ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Android' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [260114] Android Jetpack Compose์˜ 3๋‹จ๊ณ„ ์‹คํ–‰ ํŒŒ์ดํ”„๋ผ์ธ(์ปดํฌ์ง€์…˜, ๋ ˆ์ด์•„์›ƒ, ๊ทธ๋ฆฌ๊ธฐ)
  • [260112] Android Context ๋ž€?
  • [Android/JAVA] "์˜์‹ฌ์Šค๋Ÿฌ์šด ๋“ค์—ฌ์“ฐ๊ธฐ" ์ด์Šˆ . . . Suspicious indentation ์˜ค๋ฅ˜. ์ž‘๋™์—๋Š” ๋ฌธ์ œ ์—†์Œ
  • [Android/JAVA] ์œ„๋„, ๊ฒฝ๋„ ๊ฐ’์œผ๋กœ ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๊ธฐ (Km, M, S)
jennnnna
jennnnna
  • jennnnna
    ๐Ÿ’ป๐Ÿ€Jennna's BLOG
    jennnnna
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (75)
      • ์ปดํ“จํ„ฐ (1)
        • Operating system ์šด์˜์ฒด์ œ (8)
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ (5)
        • JAVA (6)
        • PHP (1)
        • Android (7)
        • Apache (1)
        • Python (0)
      • ๊ณต๋ถ€ (15)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๊ณต๋ถ€๊ธฐ๋ก (12)
        • TIL (3)
      • AI (3)
      • TTS (1)
      • LLM (2)
      • RAG (1)
      • ์–ดํ•™ (5)
        • English (5)
        • Japanese (ๆ—ฅๆœฌ่ชž) (0)
      • ๊ธ€์“ฐ๊ธฐ (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌํ•„๊ธฐ
    cs๊ณต๋ถ€
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
    ์ž๋ฐ”๊ณต์‹๋ฌธ์„œ
    ์ž๋ฐ”๊ณต๋ถ€
    ์šด์˜์ฒด์ œ
    ๋น„์ „๊ณต์ž๊ฐœ๋ฐœ์ž
    ๋น„์ „๊ณต์žcs๊ณต๋ถ€
    ์ž๋ฐ”๊ธฐ์ดˆ
    ์•ˆ๋“œ๋กœ์ด๋“œ
    ์ž๋ฐ”๋…ํ•™
    ์นดํŽ˜์•Œ๋ฐ”
    ์šด์˜์ฒด์ œ๊ณต๋ถ€
    CS์ง€์‹
    ์˜ค๋ธ”์™„
    ์•ˆ๋“œ๋กœ์ด๋“œ๊ฐœ๋ฐœ
    ๋ฌต์€์ง€์ฐธ์น˜๊น€๋ฐฅ
    ์ •์ฒ˜๊ธฐ
    ์žฅ์ธํ•œ๊ณผ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.5
jennnnna
[240808][์•ˆ๋“œ๋กœ์ด๋“œ ์ž๋ฐ”] ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ ๊ณผ์ •
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”