반응형
안드로이드 매니페스트 파일은 무엇일까?
- 앱 구성 요소(Activity, Broadcast, Service, Provider)를 정의한 파일
- 앱이 요구하는 모든 권한을 식별
- 앱이 요구하는 최소 API을 선언
- 앱에서 요구하는 하드웨어 및 소프트웨어 기능(카메라, 블루투스 등)을 선언
- 앱이 링크되어야 하는 API 라이브러리(Google Maps 라이브러리 등)를 선언
구성 요소 선언
AndroidManifest에서 앱의 구성 요소에 대해 정의할 수 있습니다.
예를 들면 다음과 같은 선언을 할 수 있습니다.
<application
android:name=".AppClass"
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Test"
tools:replace="android:theme">
<activity
android:name=".ui.activity.MainActivity"
android:exported="false" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
이처럼 안드로이드 구성 요소를 정의해야 합니다.
- <activity> 요소
- <service> 요소
- <receiver> 요소
- <provider> 요소
앱 별 언어 설정
Android13부터 앱별 언어 설정을 AndroidManifest에서 실시할 수 있습니다.
1. res/xml/locales_config.xml 이라는 파일을 생성
예를 들면 다음과 같은 코드로 파일을 생성할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
<locale android:name="en"/>
<locale android:name="en-GB"/>
<locale android:name="fr"/>
<locale android:name="ja"/>
<locale android:name="zh-Hans-MO"/>
<locale android:name="zh-Hant-MO"/>
</locale-config>
원하는 국가의 언어의 locale 이름은 다음 링크에서 확인할 수 있습니다.
https://developer.android.com/guide/topics/resources/app-languages?hl=ko#sample-config
2. 매니페스트에서 생성한 파일을 가리키는 코드를 작성한다.
<manifest>
...
<application
...
android:localeConfig="@xml/locales_config">
</application>
</manifest>
3. 대체 언어를 작성해서 삽입한다.
/res/values/string.xml에 각 국가별 언어를 삽입합니다.
4. 앱 레벨의 build.gradle에 다음과 같은 코드를 넣습니다.
위에서 지정한 locale 이름을 선업 합니다.
android {
...
defaultConfig {
resourceConfigurations += ["en", "en-rGB", "fr", "ja", "b+zh+Hans+MO", "b+zh+Hant+MO"]
}
}
기기 호환성 지정
<uses-feature>
앱에 필요한 하드웨어 및 소프트웨어 기능을 선언할 수 있습니다.
<manifest ... >
<uses-feature android:name="android.hardware.sensor.compass"
android:required="true" />
...
</manifest>
<uses-sdk>
앱이 호환되는 최소 버전을 정의할 수 있습니다.
android {
defaultConfig {
applicationId 'com.example.myapp'
// Defines the minimum API level required to run the app.
minSdkVersion 15
// Specifies the API level used to test the app.
targetSdkVersion 28
...
}
}
단, 매니페스트에서 정의한 호환 버전은 build.gradle에서 재정의될 수 있습니다.
반응형
'안드로이드(kotlin)' 카테고리의 다른 글
MVVM에서 viewModel 이벤트를 받을 수 있는 방법-2 (0) | 2023.03.30 |
---|---|
MVVM에서 viewModel 이벤트를 받을 수 있는 방법-1 (0) | 2023.03.26 |
안드로이드 MVVM을 사용하기 위한 필수 요소 AAC란 무엇인가? (0) | 2023.03.21 |
안드로이드 MVVM 아키텍처란 무엇인가 필요성과 그 배경 (0) | 2023.03.17 |
안드로이드 Broadcast Receiver 테스트 하기 (0) | 2023.03.16 |
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글