λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Android Studio

[Android μ•±κ°œλ°œ μž…λ¬Έ] μ•‘ν‹°λΉ„ν‹° (# μΆ”κ°€ν•˜κΈ°)

by μ Όμ Ό39 2024. 3. 20.

1. μ•ˆλ“œλ‘œμ΄λ“œ 4λŒ€ μ»΄ν¬λ„ŒνŠΈ

        - μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ꡬ쑰λ₯Ό μ •μ˜, μ•ˆλ“œλ‘œμ΄λ“œ μ‹œμŠ€ν…œκ³Ό μ–΄λ–»κ²Œ μƒν˜Έ μž‘μš©ν•˜λŠ”μ§€λ₯Ό κ²°μ •

1) μ•‘ν‹°λΉ„ν‹°
        : μ‚¬μš©μžκ°€ 직접 μƒν˜Έμž‘μš©ν•˜λŠ” ν™”λ©΄
            (ex. 이메일 μ•±μ˜ 각각 λ…λ¦½λœ μ•‘ν‹°λΉ„ν‹° : 이메일 λͺ©λ‘μ„ λ³΄μ—¬μ£ΌλŠ” ν™”λ©΄, 이메일 μž‘μ„± ν™”λ©΄ λ“±)

        - μ—­ν•  : μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(UI)λ₯Ό λ‹΄λ‹Ή, μ‚¬μš©μžμ˜ μž…λ ₯에 λ°˜μ‘ν•˜λŠ” 이벀트 기반 ν”„λ‘œκ·Έλž˜λ°μ„ κ°€λŠ₯ν•˜κ²Œ 함

2) μ„œλΉ„μŠ€
        : λ°±κ·ΈλΌμš΄λ“œμ—μ„œ 였랜 μ‹œκ°„ λ™μ•ˆ μ‹€ν–‰λ˜μ–΄μ•Ό ν•˜λŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•¨
            (ex. μŒμ•… μž¬μƒ, 파일 λ‹€μš΄λ‘œλ“œ λ“±)

        - μ—­ν•  : μ‚¬μš©μžκ°€ μ§μ ‘μ μœΌλ‘œ μΈμ§€ν•˜μ§€ λͺ»ν•˜λŠ”, μ•±μ˜ λ°±μŠ€ν…Œμ΄μ§€μ—μ„œ μΌμ–΄λ‚˜λŠ” μž‘μ—…μ„ λ‹΄λ‹Ή

3) λΈŒλ‘œλ“œμΊμŠ€νŠΈ λ¦¬μ‹œλ²„
        : μ•ˆλ“œλ‘œμ΄λ“œ μ‹œμŠ€ν…œμœΌλ‘œλΆ€ν„° λ°œμ†‘λ˜λŠ” λ‹€μ–‘ν•œ μ΄λ²€νŠΈλ‚˜ 정보λ₯Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 받을 수 있게 ν•΄μ£ΌλŠ” μ»΄ν¬λ„ŒνŠΈ
            (ex. 배터리 λΆ€μ‘± κ²½κ³ , ν™”λ©΄ 꺼짐 λ“±μ˜ μ‹œμŠ€ν…œ 이벀트 처리 μ‹œ μ‚¬μš©)

        - μ—­ν•  : μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ λΈŒλ‘œλ“œμΊμŠ€νŠΈ λ©”μ‹œμ§€λ₯Ό κ΅¬λ…ν•˜κ³ , ν•΄λ‹Ή μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ λ°˜μ‘ν•¨

4) μ½˜ν…νŠΈ ν”„λ‘œλ°”μ΄λ”
        : μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°„μ˜ 데이터 곡유λ₯Ό κ°€λŠ₯ν•˜κ²Œ 함.
            (ex. μ—°λ½μ²˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ—°λ½μ²˜ 데이터λ₯Ό μ œκ³΅ν•  λ•Œ μ‚¬μš©λ¨) 

        - μ—­ν•  : 데이터λ₯Ό μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” μΌμ’…μ˜ λ°μ΄ν„°λ² μ΄μŠ€ 역할을 함, λ‹€λ₯Έ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ•ˆμ „ν•˜κ²Œ 데이터λ₯Ό 곡유

 

 

2. Activity

    : μ‚¬μš©μžκ°€ 직접 μƒν˜Έ μž‘μš©(κΈ°λŠ₯을 μˆ˜ν–‰ν•  λ•Œ λ§ˆλ‹€ λ“±μž₯)ν•˜λŠ” 각각의 독립적인 창을 μ˜λ―Έν•¨.
    - μ‚¬μš©μžκ°€ λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλŠ” μΈν„°νŽ˜μ΄μŠ€ 제곡

    - UI ꡬ성 : 각 μ•‘ν‹°λΉ„ν‹°λŠ” ν•˜λ‚˜μ˜ 창을 κ°€μ§€λ©°, 이 μ°½μ—λŠ” View라고 λΆˆλ¦¬λŠ” 객체듀을 톡해 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€κ°€ ꡬ성됨
            (view 객체 : λ²„νŠΌ, ν…μŠ€νŠΈ ν•„λ“œ, 이미지 λ“± μ‚¬μš©μžκ°€ λ³Ό 수 μžˆλŠ” λͺ¨λ“  μš”μ†Œλ“€μ„ 포함)

    - μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ‹œμž‘ : λͺ¨λ“  μ•ˆλ“œλ‘œμ΄λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ΅œμ†Œ 1개 μ΄μƒμ˜ μ•‘ν‹°λΉ„ν‹°λ₯Ό 포함함
        (μ•± μ‹œμž‘ μ‹œ μ‹œμŠ€ν…œμ€ μ§€μ •λœ '메인' μ•‘ν‹°λΉ„ν‹°λ₯Ό μ‹€ν–‰ν•΄ μ‚¬μš©μžμ—κ²Œ 첫 화면을 λ³΄μ—¬μ€Œ)

 

1) 앑티비티와 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ μ—°κ²°

    setContentView() λ₯Ό μ΄μš©ν•΄ 앑티비티에 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ •μ˜ν•œ Viewλ₯Ό μ„€μ •

class FirstActivity : AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_first)
    }
}

        //R.java 파일 : res 디렉토리에 μžˆλŠ” λͺ¨λ“  λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ λ¦¬μ†ŒμŠ€ idλ₯Ό 포함
                   R . [λ¦¬μ†ŒμŠ€μœ ν˜•] . [λ¦¬μ†ŒμŠ€_이름]    R.drawable.myimage  /  R.layout.activity_first  /  R.string.hello

2) μ•‘ν‹°λΉ„ν‹° 등둝

    : λͺ¨λ“  Activity μ»΄ν¬λ„ŒνŠΈλŠ” Android Manifest νŒŒμΌμ— λ“±λ‘λ˜μ–΄μ•Ό 함

<manifest>
    <application>
        <activity android:name=".FirstActivity"
            android:label="First Activity">
        </activity>
    </application>
</manifest>

 

3) Android manifest μ—­ν• 

    : AndroidManifest.xml νŒŒμΌμ€ μ•ˆλ“œλ‘œμ΄λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 심μž₯λΆ€
    - μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κΈ°λ³Έ ꡬ쑰 μ •μ˜, μ‹œμŠ€ν…œμ΄ 앱을 μ–΄λ–»κ²Œ μ‹€ν–‰ν•΄μ•Ό ν•˜λŠ”μ§€ μ•Œλ €μ£ΌλŠ” μ€‘μš”ν•œ μ§€μ‹œμ‚¬ν•­ λ‹΄μŒ

    (1) νŒ¨ν‚€μ§€ 이름 μ„€μ •
            : μ•±μ˜ 고유 μ‹λ³„μžλ‘œμ„œ, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŒ¨ν‚€μ§€ 이름을 μ„€μ •
              (ꡬ글 ν”Œλ ˆμ΄μ™€ 같은 μ•± μŠ€ν† μ–΄μ—μ„œ 앱을 κ΅¬λ³„ν•˜λŠ” 데 μ‚¬μš©λ¨)

    (2) ꡬ성 μš”μ†Œ μ„ μ–Έ
            : μ•‘ν‹°λΉ„ν‹°, μ„œλΉ„μŠ€, λΈŒλ‘œλ“œμΊμŠ€νŠΈ λ¦¬μ‹œλ²„, μ½˜ν…νŠΈ ν”„λ‘œλ°”μ΄λ”μ™€ 같은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ΅¬μ„±μš”μ†Œλ“€μ˜ 쑴재λ₯Ό μ‹œμŠ€ν…œμ— μ•Œλ¦Ό

    (3) κΆŒν•œ μ„€μ •
            : 앱이 μ‚¬μš©μžμ˜ κΈ°κΈ°μ—μ„œ νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ κΆŒν•œμ„ λͺ…μ‹œ
            : λ‹€λ₯Έ 앱이 이 μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό μƒν˜Έμž‘μš©ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ κΆŒν•œλ„ μ„€μ •