Android μ ν리μΌμ΄μ μ μ‘ν°λΉν°(Activity), μλΉμ€(Service), λΈλ‘λμΊμ€νΈ 리μλ²(Broadcast Receiver), μ½ν μΈ νλ‘λ°μ΄λ(Content Provider)λΌλ λ€ κ°μ§ μ£Όμ μ»΄ν¬λνΈλ‘ ꡬμ±λλ€. μ΄ μ»΄ν¬λνΈλ€μ λͺ¨λ AndroidManifest.xml νμΌμ μ μΈν΄μΌ μμ€ν μ΄ μΈμνκ³ μ€νν μ μλ€.
1. μ‘ν°λΉν°(Activity) μ μΈνκΈ°
Activityλ μ¬μ©μ μΈν°νμ΄μ€(UI)λ₯Ό μ 곡νλ νλ©΄ λ¨μμ μ»΄ν¬λνΈμ΄λ€. μ΄λ₯Ό 맀λνμ€νΈμ λ±λ‘νμ§ μμΌλ©΄ μμ€ν μμ μ€νν μ μλ€.
μμ μ½λ
<manifest ... >
<application ... >
<activity android:name="com.example.project.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
μ£Όμ μμ±
- android:name : μ‘ν°λΉν°μ ν΄λμ€ κ²½λ‘
- android:label : νλ©΄μ νμλ μ΄λ¦
- intent-filter : ν΄λΉ μ‘ν°λΉν°κ° μ€νλ 쑰건 (μ: μ± μ€ν μ μμνλ μ‘ν°λΉν°λ MAINκ³Ό LAUNCHER μΉ΄ν κ³ λ¦¬λ₯Ό ν¬ν¨ν΄μΌ ν¨)
2. μλΉμ€(Service) μ μΈνκΈ°
Serviceλ λ°±κ·ΈλΌμ΄λμμ μ€νλλ μμ μ λ΄λΉνλ μ»΄ν¬λνΈμ΄λ€. μλ₯Ό λ€μ΄ μμ μ¬μμ΄λ λ€νΈμν¬ μμ²μ λ°±κ·ΈλΌμ΄λμμ μνν λ μ¬μ©λλ€.
μμ μ½λ
<manifest ... >
<application ... >
<service android:name="com.example.project.MyService" />
</application>
</manifest>
μ£Όμ μμ±
- android:name : μλΉμ€ ν΄λμ€μ κ²½λ‘
μ£Όμ
Android 5.0(API 21) μ΄μμμλ μμμ μΈν νΈ(Implicit Intent)λ‘ μλΉμ€λ₯Ό μ€ννλ κ²μ΄ κΈμ§λμ΄ μλ€. λ°λμ λͺ μμ μΈν νΈ(Explicit Intent)λ₯Ό μ¬μ©ν΄μΌ νλ€.
3. λΈλ‘λμΊμ€νΈ 리μλ²(Broadcast Receiver) μ μΈνκΈ°
BroadcastReceiverλ μμ€ν λλ λ€λ₯Έ μ±μμ λ°μν νΉμ μ΄λ²€νΈλ₯Ό κ°μ§νκ³ λμνλ μ»΄ν¬λνΈμ΄λ€.
μμ μ½λ
<manifest ... >
<application ... >
<receiver android:name="com.example.project.MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>
μ£Όμ μμ±
- android:name : λΈλ‘λμΊμ€νΈ 리μλ² ν΄λμ€ κ²½λ‘
- intent-filter : νΉμ λΈλ‘λμΊμ€νΈλ₯Ό κ°μ§νλ 쑰건 (μ: BOOT_COMPLETEDλ κΈ°κΈ° λΆν μλ£ μ μ€ν)
μ£Όμ
Android 8.0(API 26)λΆν°λ μ μ 리μλ² μ νμ΄ μμ΄, μΌλΆ λΈλ‘λμΊμ€νΈλ λμ μΌλ‘ λ±λ‘ν΄μΌ νλ€.
4. μ½ν μΈ νλ‘λ°μ΄λ(Content Provider) μ μΈνκΈ°
ContentProviderλ μ± κ° λ°μ΄ν° 곡μ λ₯Ό μν μ»΄ν¬λνΈμ λλ€. λ°μ΄ν°λ² μ΄μ€, νμΌ λ±μ μΈλΆ μ±κ³Ό 곡μ ν λ μ¬μ©λλ€.
μμ μ½λ
<manifest ... >
<application ... >
<provider android:name="com.example.project.MyContentProvider"
android:authorities="com.example.project.provider"
android:exported="false" />
</application>
</manifest>
μ£Όμ μμ±
- android:name : μ½ν μΈ νλ‘λ°μ΄λ ν΄λμ€ κ²½λ‘
- android:authorities : λ°μ΄ν° μλ³μ μν κ³ μ ν λ¬Έμμ΄
- android:exported : μΈλΆ μ±μ΄ μ κ·Όν μ μλμ§ μ¬λΆ (falseμ΄λ©΄ λ΄λΆ μ±μμλ§ μ¬μ© κ°λ₯)
κ²°λ‘
Android μ±μ ν΅μ¬ μμμΈ 4λ μ»΄ν¬λνΈλ λ°λμ 맀λνμ€νΈ νμΌμ μ μΈν΄μΌ μμ€ν μ΄ μ¬λ°λ₯΄κ² μΈμνκ³ μ€νν μ μλ€. μμμ μ΄ν΄λ³Έ κ²μ²λΌ κ° μ»΄ν¬λνΈλ νΉμ μμ±κ³Ό ν¨κ» λ±λ‘ν΄μΌ νλ©°, API λ²μ μ λ°λΌ μΌλΆ κΈ°λ₯μλ μΆκ°μ μΈ μ νμ΄ μμ μ μλ€.
'π€ μλλ‘μ΄λ > μν€ν μ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μλλ‘μ΄λ] μλλ‘μ΄λ μν€ν μ² κΆμ₯μ¬ν (0) | 2025.03.26 |
---|---|
[μλλ‘μ΄λ] μλλ‘μ΄λ μ’ μ νλͺ© μ½μ (DI) (0) | 2025.03.25 |
[μλλ‘μ΄λ] μλλ‘μ΄λ 4λ μ»΄ν¬λνΈ (0) | 2025.03.23 |
[μλλ‘μ΄λ] μλλ‘μ΄λ μ±μμ μ’ μ νλͺ©μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ λ°©λ² (0) | 2025.03.22 |
[μλλ‘μ΄λ] μλλ‘μ΄λ μ± μν€ν μ² (0) | 2025.03.21 |
Android μ ν리μΌμ΄μ μ μ‘ν°λΉν°(Activity), μλΉμ€(Service), λΈλ‘λμΊμ€νΈ 리μλ²(Broadcast Receiver), μ½ν μΈ νλ‘λ°μ΄λ(Content Provider)λΌλ λ€ κ°μ§ μ£Όμ μ»΄ν¬λνΈλ‘ ꡬμ±λλ€. μ΄ μ»΄ν¬λνΈλ€μ λͺ¨λ AndroidManifest.xml νμΌμ μ μΈν΄μΌ μμ€ν μ΄ μΈμνκ³ μ€νν μ μλ€.
1. μ‘ν°λΉν°(Activity) μ μΈνκΈ°
Activityλ μ¬μ©μ μΈν°νμ΄μ€(UI)λ₯Ό μ 곡νλ νλ©΄ λ¨μμ μ»΄ν¬λνΈμ΄λ€. μ΄λ₯Ό 맀λνμ€νΈμ λ±λ‘νμ§ μμΌλ©΄ μμ€ν μμ μ€νν μ μλ€.
μμ μ½λ
<manifest ... >
<application ... >
<activity android:name="com.example.project.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
μ£Όμ μμ±
- android:name : μ‘ν°λΉν°μ ν΄λμ€ κ²½λ‘
- android:label : νλ©΄μ νμλ μ΄λ¦
- intent-filter : ν΄λΉ μ‘ν°λΉν°κ° μ€νλ 쑰건 (μ: μ± μ€ν μ μμνλ μ‘ν°λΉν°λ MAINκ³Ό LAUNCHER μΉ΄ν κ³ λ¦¬λ₯Ό ν¬ν¨ν΄μΌ ν¨)
2. μλΉμ€(Service) μ μΈνκΈ°
Serviceλ λ°±κ·ΈλΌμ΄λμμ μ€νλλ μμ μ λ΄λΉνλ μ»΄ν¬λνΈμ΄λ€. μλ₯Ό λ€μ΄ μμ μ¬μμ΄λ λ€νΈμν¬ μμ²μ λ°±κ·ΈλΌμ΄λμμ μνν λ μ¬μ©λλ€.
μμ μ½λ
<manifest ... >
<application ... >
<service android:name="com.example.project.MyService" />
</application>
</manifest>
μ£Όμ μμ±
- android:name : μλΉμ€ ν΄λμ€μ κ²½λ‘
μ£Όμ
Android 5.0(API 21) μ΄μμμλ μμμ μΈν νΈ(Implicit Intent)λ‘ μλΉμ€λ₯Ό μ€ννλ κ²μ΄ κΈμ§λμ΄ μλ€. λ°λμ λͺ μμ μΈν νΈ(Explicit Intent)λ₯Ό μ¬μ©ν΄μΌ νλ€.
3. λΈλ‘λμΊμ€νΈ 리μλ²(Broadcast Receiver) μ μΈνκΈ°
BroadcastReceiverλ μμ€ν λλ λ€λ₯Έ μ±μμ λ°μν νΉμ μ΄λ²€νΈλ₯Ό κ°μ§νκ³ λμνλ μ»΄ν¬λνΈμ΄λ€.
μμ μ½λ
<manifest ... >
<application ... >
<receiver android:name="com.example.project.MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>
μ£Όμ μμ±
- android:name : λΈλ‘λμΊμ€νΈ 리μλ² ν΄λμ€ κ²½λ‘
- intent-filter : νΉμ λΈλ‘λμΊμ€νΈλ₯Ό κ°μ§νλ 쑰건 (μ: BOOT_COMPLETEDλ κΈ°κΈ° λΆν μλ£ μ μ€ν)
μ£Όμ
Android 8.0(API 26)λΆν°λ μ μ 리μλ² μ νμ΄ μμ΄, μΌλΆ λΈλ‘λμΊμ€νΈλ λμ μΌλ‘ λ±λ‘ν΄μΌ νλ€.
4. μ½ν μΈ νλ‘λ°μ΄λ(Content Provider) μ μΈνκΈ°
ContentProviderλ μ± κ° λ°μ΄ν° 곡μ λ₯Ό μν μ»΄ν¬λνΈμ λλ€. λ°μ΄ν°λ² μ΄μ€, νμΌ λ±μ μΈλΆ μ±κ³Ό 곡μ ν λ μ¬μ©λλ€.
μμ μ½λ
<manifest ... >
<application ... >
<provider android:name="com.example.project.MyContentProvider"
android:authorities="com.example.project.provider"
android:exported="false" />
</application>
</manifest>
μ£Όμ μμ±
- android:name : μ½ν μΈ νλ‘λ°μ΄λ ν΄λμ€ κ²½λ‘
- android:authorities : λ°μ΄ν° μλ³μ μν κ³ μ ν λ¬Έμμ΄
- android:exported : μΈλΆ μ±μ΄ μ κ·Όν μ μλμ§ μ¬λΆ (falseμ΄λ©΄ λ΄λΆ μ±μμλ§ μ¬μ© κ°λ₯)
κ²°λ‘
Android μ±μ ν΅μ¬ μμμΈ 4λ μ»΄ν¬λνΈλ λ°λμ 맀λνμ€νΈ νμΌμ μ μΈν΄μΌ μμ€ν μ΄ μ¬λ°λ₯΄κ² μΈμνκ³ μ€νν μ μλ€. μμμ μ΄ν΄λ³Έ κ²μ²λΌ κ° μ»΄ν¬λνΈλ νΉμ μμ±κ³Ό ν¨κ» λ±λ‘ν΄μΌ νλ©°, API λ²μ μ λ°λΌ μΌλΆ κΈ°λ₯μλ μΆκ°μ μΈ μ νμ΄ μμ μ μλ€.
'π€ μλλ‘μ΄λ > μν€ν μ²' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μλλ‘μ΄λ] μλλ‘μ΄λ μν€ν μ² κΆμ₯μ¬ν (0) | 2025.03.26 |
---|---|
[μλλ‘μ΄λ] μλλ‘μ΄λ μ’ μ νλͺ© μ½μ (DI) (0) | 2025.03.25 |
[μλλ‘μ΄λ] μλλ‘μ΄λ 4λ μ»΄ν¬λνΈ (0) | 2025.03.23 |
[μλλ‘μ΄λ] μλλ‘μ΄λ μ±μμ μ’ μ νλͺ©μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ λ°©λ² (0) | 2025.03.22 |
[μλλ‘μ΄λ] μλλ‘μ΄λ μ± μν€ν μ² (0) | 2025.03.21 |