🟒 Android Studio - Android ν”„λ‘œμ νŠΈ ꡬ쑰

sery270Β·2021λ…„ 2μ›” 1일
4

🟒 Android Studio

λͺ©λ‘ 보기
1/1

μ•ˆλ…•ν•˜μ„Έμš” :) μ˜€λŠ˜μ€ Android ν”„λ‘œμ νŠΈ ꡬ성과 Android Studioμ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό λ³΄μ—¬μ£ΌλŠ” 방식인 Android λ·°, Project 뷰에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 이 글을 톡해 Android ν”„λ‘œμ νŠΈ ꡬ쑰에 λŒ€ν•΄ νŒŒμ•…ν•˜λŠ” 계기가 λ˜μ—ˆμœΌλ©΄ μ’‹κ² μŠ΅λ‹ˆλ‹€. 그럼 μ˜€λŠ˜λ„ ν™”μ΄νŒ… μž…λ‹ˆλ‹€πŸŒΏ

이 ν¬μŠ€νŒ…μ€ android developer 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ—¬ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

( 곡식 λ¬Έμ„œλ₯Ό 보신닀면, μ•„λž˜ μš©μ–΄ μ„€λͺ…을 μ°Έκ³ ν•˜μ‹œλ©΄ μ’‹μŠ΅λ‹ˆλ‹€ ! )

κ³΅μ‹λ¬Έμ„œμ—μ„œ μ΄μ•ΌκΈ°ν•˜λŠ” 폴더와 κ·Έλ£Ή

폴더 : μ‹€μ œ 파일 계측을 기반으둜 ν•˜λŠ” 디렉터리

κ·Έλ£Ή : Android, Project λ·° μƒμ—μ„œ λ³΄μ—¬μ§€λŠ” 디렉터리

Android λ·°

λͺ¨λ“ˆ 및 파일 ν˜•μ‹λ³„λ‘œ ν”„λ‘œμ νŠΈ 파일/폴더λ₯Ό λΆ„λ₯˜ν•΄μ„œ ν”„λ‘œμ νŠΈμ—μ„œ μˆ˜μ •ν•˜μ§€ μ•ŠλŠ” 파일/폴더λ₯Ό(ν”Œλž«νΌ, JRE, μ™ΈλΆ€ 라이브러리 λ“±) μ œμ™Έν•˜κ³  λ³΄μ—¬μ€λ‹ˆλ‹€.

Android 뷰의 νŠΉμ§•λ“€

  • 기본적으둜 ν”„λ‘œμ νŠΈ νŒŒμΌμ„ ν‘œμ‹œν•˜λŠ” κ³³μž…λ‹ˆλ‹€.

  • λͺ¨λ“ˆ 및 파일 ν˜•μ‹λ³„λ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.

  • 자주 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” νŒŒμΌμ΄λ‚˜ λ””λ ‰ν„°λ¦¬λŠ” 숨겨, ν”„λ‘œμ νŠΈμ˜ μ£Όμš” μ†ŒμŠ€νŒŒμΌμ„ κ°„λ‹¨ν•˜κ²Œ 탐색 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

  • λ””μŠ€ν¬μ— μžˆλŠ” μ‹€μ œ 파일 계측을 λ°˜μ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 크게 μ•„λž˜ 3가지 νŠΉμ§•μ„ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

    ν”„λ‘œμ νŠΈμ˜ λͺ¨λ“  λΉŒλ“œ κ΄€λ ¨ ꡬ성 νŒŒμΌμ„ , appκ³Ό 같은 계측인 μ΅œμƒμœ„ κ³„μΈ΅μ˜, Gradle Script 그룹에 ν‘œμ‹œν•©λ‹ˆλ‹€.

    Android Studioμ‹€μ œ 파일 디렉토리

    λ§€λ‹ˆνŽ˜μŠ€νŠΈ 파일이 μ—¬λŸ¬ 개인 경우, 각 λͺ¨λ“ˆμ˜ λͺ¨λ“  λ§€λ‹ˆνŽ˜μŠ€νŠΈ νŒŒμΌμ„ λͺ¨λ“ˆ μˆ˜μ€€μ˜ 그룹에 ν‘œμ‹œν•©λ‹ˆλ‹€.

    Android Studioμ‹€μ œ 파일 디렉토리

    λͺ¨λ“  λŒ€μ²΄ λ¦¬μ†ŒμŠ€ νŒŒμΌμ„, ν•œμ •μžλ³„ κ°œλ³„ 폴더 λŒ€μ‹ , ν•΄λ‹Ή 파일의 μ΄λ¦„μœΌλ‘œ λ§Œλ“€μ–΄μ§„, 단일 그룹으둜 ν‘œμ‹œν•©λ‹ˆλ‹€.

    Android Studioμ‹€μ œ 파일 디렉토리

(Android λ·°μ—μ„œμ˜) 각 λͺ¨λ“ˆ λ‚΄ κ·Έλ£Ήλ“€ : manifests, java, res

  • manifests

    • AndroidManifest.xml νŒŒμΌμ„ ν¬ν•¨ν•˜λŠ” κ·Έλ£Ήμž…λ‹ˆλ‹€.
      • AndroidManifest.xml
        • λ§€λ‹ˆνŽ˜μŠ€νŠΈ νŒŒμΌμ—λŠ” μ•ˆλ“œλ‘œμ΄λ“œ μ‹œμŠ€ν…œμ΄ 앱을 μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ 정보λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
        • 앱에 λŒ€ν•œ 고유 μ‹λ³„μž 역할을 ν•˜λŠ” νŒ¨ν‚€μ§€ 이름, μ•‘ν‹°λΉ„ν‹°, μ„œλΉ„μŠ€ λ“±κ³Ό 같은 μ•±μ˜ κ΅¬μ„±μš”μ†Œ, μ‹œμŠ€ν…œ κΈ°λŠ₯을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ νΌλ―Έμ…˜ μ„ μ–Έ, μ•±μ—μ„œ μ‚¬μš©λ˜λŠ” ν…Œλ§ˆ 등이 ν¬ν•¨λ©λ‹ˆλ‹€.
  • java

    • JUnit ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό λΉ„λ‘―ν•œ μžλ°” μ†ŒμŠ€ μ½”λ“œ νŒŒμΌμ„ ν¬ν•¨ν•˜λŠ” κ·Έλ£Ήμž…λ‹ˆλ‹€.
  • res

    • μ½”λ“œκ°€ μ•„λ‹Œ λͺ¨λ“  λ¦¬μ†ŒμŠ€(예: XML λ ˆμ΄μ•„μ›ƒ, UI λ¬Έμžμ—΄, λΉ„νŠΈλ§΅ 이미지 λ“±)λ₯Ό ν¬ν•¨ν•˜λŠ” κ·Έλ£Ήμž…λ‹ˆλ‹€.

    • ν•΄λ‹Ή λͺ¨λ“ˆμ—μ„œ μ‚¬μš©λ˜λŠ” λͺ¨λ“  λ¦¬μ†ŒμŠ€ νŒŒμΌλ“€μ΄ μ’…λ₯˜λ³„λ‘œ μ €μž₯λ©λ‹ˆλ‹€.

      • drawable

        • μ•±μ—μ„œ μ‚¬μš©λ˜λŠ” 이미지 파일과 κ΄€λ ¨ νŒŒμΌλ“€μ΄ μ €μž₯λ˜λŠ” κ·Έλ£Ήμž…λ‹ˆλ‹€.
      • layout

        • 화면에 λ³΄μ—¬μ§ˆ UI μ»΄ν¬λ„ŒνŠΈλ“€, 즉 λ ˆμ΄μ•„μ›ƒμ„ μ •μ˜ν•œ xml νŒŒμΌλ“€μ΄ μ €μž₯λ˜λŠ” κ·Έλ£Ήμž…λ‹ˆλ‹€.
      • mipmap

        • 런처 μ•„μ΄μ½˜μ— μ‚¬μš©λ˜λŠ” 이미지 νŒŒμΌλ“€μ΄ λ””λ°”μ΄μŠ€ ν•΄μƒλ„λ³„λ‘œ μ €μž₯λ˜λŠ” κ·Έλ£Ήμž…λ‹ˆλ‹€.
        • μ•ˆλ“œλ‘œμ΄λ“œ λ””λ°”μ΄μŠ€μ—μ„œ ν•΄λ‹Ή 앱을 μ‹€ν–‰ν•˜κΈ° μœ„ν•œ ν„°μΉ˜ν•  λ•Œ λ³΄μ΄λŠ” μ•„μ΄μ½˜μ— ν•΄λ‹Ήλ©λ‹ˆλ‹€.
      • values

        • μ•±μ—μ„œ μ‚¬μš©λ˜λŠ” λ¦¬μŠ€μ†Œ κ΄€λ ¨ μƒμˆ˜λ₯Ό μ •μ˜ν•œ νŒŒμΌλ“€μ΄ μ €μž₯λ˜λŠ” κ·Έλ£Ήμž…λ‹ˆλ‹€.

        • ν•΄λ‹Ή μƒμˆ˜λ“€μ€ ID둜 μ°Έμ‘°ν•˜κ²Œ λ©λ‹ˆλ‹€.

          • colors.xml

            • μ•±μ—μ„œ μ‚¬μš©λ˜λŠ” μƒ‰μ˜ 값을(16μ§„μˆ˜κ°’) μ •μ˜ν•΄λ†“μŠ΅λ‹ˆλ‹€.
          • strings.xml

            • μ•±μ—μ„œ μ‚¬μš©λ˜λŠ” λ¬Έμžμ—΄μ„ μ •μ˜ν•΄λ†“μŠ΅λ‹ˆλ‹€.
          • styles.xml

            • λ·°λ‚˜ μœˆλ„μš°μ˜ λͺ¨μŠ΅μ„ μœ„ν•œ 속성을 지정해쀄 수 μžˆμŠ΅λ‹ˆλ‹€ .

(Android λ·°μ—μ„œμ˜) 각 λͺ¨λ“ˆ λ°–μ˜ κ·Έλ£Ή : Gradle Scripts

  • Gradle Scripts

    • λΉŒλ“œ μ‹œμŠ€ν…œμ—μ„œ 앱을 컴파일 및 λΉŒλ“œμ‹œ μ‚¬μš©λ˜λŠ” νŒŒμΌλ“€μ΄ μœ„μΉ˜ν•˜λŠ” κ·Έλ£Ήμž…λ‹ˆλ‹€.

      • build.gradle (Project: My_Application)

        • 전체 ν”„λ‘œμ νŠΈλ₯Ό μœ„ν•œ 파일. λͺ¨λ“  λͺ¨λ“ˆμ— μ μš©λ˜λŠ” λΉŒλ“œ ꡬ성을 μ •μ˜ν•˜λŠ” νŒŒμΌμž…λ‹ˆλ‹€.
      • build.gradle (Module: My_Application.app/ Module: My_Application.app2)

        • 각 λͺ¨λ“ˆμ— λŒ€ν•œ λΉŒλ“œ ꡬ성을 μ •μ˜ν•˜λŠ” νŒŒμΌμž…λ‹ˆλ‹€.

        • ν”„λ‘œμ νŠΈμ— ν¬ν•¨λ˜μ–΄ μžˆλŠ” app λͺ¨λ“ˆμ„ μœ„ν•œ 파일둜, λͺ¨λ“ˆλ³„λ‘œ ν•˜λ‚˜μ”© μ‘΄μž¬ν•©λ‹ˆλ‹€.


Project λ·°

Android λ·°μ™€λŠ” 달리, μ‹€μ œ 디렉토리 계측 ꡬ쑰λ₯Ό λ°˜μ˜ν•˜μ—¬ 전체 ν”„λ‘œμ νŠΈμ™€ λͺ¨λ“ˆλ³„λ‘œ 파일/폴더λ₯Ό λ‚˜λˆ„μ–΄μ„œ λ³΄μ—¬μ€λ‹ˆλ‹€.

λ”°λΌμ„œ, Android λ·°μ—μ„œ 보여주지 μ•Šλ˜ μ™ΈλΆ€ 라이브러리 같은 ν”„λ‘œμ νŠΈμ˜ 파일/ν΄λ”κΉŒμ§€ 확인 κ°€λŠ₯ν•©λ‹ˆλ‹€.

Android ViewProject View

μ €, 질문이 μžˆμŠ΅λ‹ˆλ‹€ !

μ•— μ €λŠ” kotlin으둜 μž‘μ—…ν•˜λŠ”λ° μ™œ κ·Έλ£Ή 이름은 μ—¬μ „νžˆ java μΈκ°€μš” ?

Android Studio μ—μ„œ μž‘μ—…μ„ ν•˜λ‹€λ³΄λ©΄, java μ½”λ“œμ™€ kotlin μ½”λ“œκ°€ ν˜Όμš©λ˜λŠ” κ²½μš°κ°€ λ°œμƒν•˜λŠ”λ°, 이 λ‘˜μ€ μ„œλ‘œ 100% μƒν˜Έ ν˜Έν™˜μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

μ΄μ—μ„œ μ‹œμž‘λœ μΌμ’…μ˜ μ»¨λ²€μ…˜μœΌλ‘œ λ°›μ•„λ“œλ¦¬μ‹œλ©΄ μ’‹μŠ΅λ‹ˆλ‹€.

Android ν”„λ‘œμ νŠΈλŠ” μ™œ java, resλ₯Ό κ΅¬λΆ„ν•˜λ‚˜μš”?

Android ν”„λ‘œμ νŠΈμ˜ 큰 νŠΉμ§•μœΌλ‘œ, μ†ŒμŠ€ μ½”λ“œ(java)와 λ¦¬μ†ŒμŠ€(res)λ₯Ό λΆ„λ¦¬ν•˜μ—¬ μ·¨κΈ‰ν•œλ‹€λŠ” 점이 μžˆμŠ΅λ‹ˆλ‹€.
μ΄λ ‡κ²Œ λ¦¬μ†ŒμŠ€λ₯Ό λ”°λ‘œ λΉΌμ£Όμ–΄, μ†ŒμŠ€ μ½”λ“œ 자체의 가독성을 높여쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ, μ΄λ ‡κ²Œ λΆ„λ¦¬ν•˜λŠ” μ£Όμš” 이유둜, μœ μ—°ν•œ μœ μ§€λ³΄μˆ˜λ₯Ό ν•  수 μžˆλ‹€λŠ” 점이 μžˆμŠ΅λ‹ˆλ‹€.

μœ μ—°ν•œ μœ μ§€λ³΄μˆ˜λŠ” 더 κ°„νŽΈν•œ λ‹€μ–‘ν•œ 언어와 지역에 λ”°λ₯Έ Localization, λ‹€μ–‘ν•œ λͺ¨λ°”일 기기의 νŠΉμ„±μ— λ”°λ₯Έ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ν™•μž₯ 및 적용 λ“±μœΌλ‘œ μ΄μ–΄μ§€κ²Œ ν•©λ‹ˆλ‹€.

μ†ŒμŠ€ μ½”λ“œ : ν•΄λ‹Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ™μž‘ν•΄μ„œ μ²˜λ¦¬ν•˜κ³ μž ν•˜λŠ” κΈ°λŠ₯을 κ°€λ¦¬ν‚΅λ‹ˆλ‹€.
λ¦¬μ†ŒμŠ€ : ν•΄λ‹Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ™μž‘ν•  λ•Œ μ‚¬μš©ν•˜λŠ” ν…μŠ€νŠΈ λ¬Έμžμ—΄, 이미지, μ•„μ΄μ½˜, μ˜€λ””μ˜€, λ™μ˜μƒ 등을 κ°€λ¦¬ν‚΅λ‹ˆλ‹€.


레퍼런슀

Windowsμ—μ„œ Android 개발 ν™˜κ²½ μ€€λΉ„ν•˜κΈ°(Android Studio μ„€μΉ˜)

Android - Module μ΄μš©ν•˜μ—¬ λΉ„μŠ·ν•œ μ•± μ—¬λŸ¬κ°œ 찍어내기

android developer 곡식 λ¬Έμ„œ

profile
κ°œλ°œμ„Έλ¦¬μ˜ μ„±μž₯기🌿

0개의 λŒ“κΈ€