안드로이드 매니페스트 파일은 무엇일까?
- 앱 구성 요소(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
앱별 언어 설정 | Android 개발자 | Android Developers
앱별 언어 설정 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 시스템 설정의 앱별 언어 다국어 사용자의 경우 시스템 언어는 한 가지 언어(예: 영어)로 설
developer.android.com
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에서 재정의될 수 있습니다.
안드로이드 MVVM을 사용하기 위한 필수 요소 AAC란 무엇인가?
기존에 사용하던 MVVM을 좀 더 간편하게 좀 더 정확하게 사용하기 위해 나온 것이 AAC이다. 즉, AAC란 아키텍쳐가 아니라 MVVM을 좀 더 잘 사용하기 위한 도구라고 생각하면 쉽다. 이전에 MVVM이란 무
android-developer.tistory.com
안드로이드 MVVM 아키텍처란 무엇인가 필요성과 그 배경
안드로이드 MVVM 아키텍처 MVC vs MVP vs MVVM 비교 MVVM의 탄생 이유 및 필요성 MVVM 구현 방법 MVC : View와 Controller를 Activity, Fragment에서 담당 MVC 패턴의 경우 그림과 같이 View와 Controller가 연결되어 있습
android-developer.tistory.com
안드로이드 WorkManager는 왜 필요하고 어디서 쓰면될까?
안드로이드 코틀린 WorkManager는 어디서 사용하고 어떻게 사용하면될까? WorkManager는 왜 필요한가? 다른 백그라운드 처리들과의 차이 WorkManager는 어디에 사용하면될까? WorkManager는 어떻게 사용할 수
android-developer.tistory.com
리사이클러뷰의 생명주기 분석 및 메모릭의 원인
리사이클러뷰의 라이프 사이클 (화면에 보여지기까지의 순서) onAttachedToRecyclerView - 리사이클러뷰를 화면에 붙임 onCreateViewHolder - 홀더를 생성 onBindViewHolder - 홀더와 뷰를 바인딩 onViewAttachedToWindow
android-developer.tistory.com
Navigation을 사용한 화면 이동 시 라이프사이클 변화
Jetpack의 Navigation을 사용하여 화면 이동을 했을 때 Activity, Fragment가 정확히 어떤 타이밍에 어떻게 lifecycle이 순환하는지 확인한다 HTML 삽입 미리보기할 수 없는 소스 필요한 종속 항목 선언 https://d
android-developer.tistory.com
'안드로이드(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 |
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글