Flutter 하다가 갑자기 Android 프로젝트를 들어가 정리를 해둔다 ..
1. Package name and Application Id
매니페스트 파일의 Root element() 에는 해당 앱의 패키지 네임이 반드시 기재되어야 gksek
"com.ready.example" 이라는 패키지 네임의 manifest 파일
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ready.test"
android:versionCode="1"
android:versionName="1.0" >
</manifest>
여기서 manifest의 패키지 네임은 우리가 앱을 빌드하여 APK 를 추출하는 과정에서 Android Build Tool 에 의해 다음 2가지 목적으로 사용된다.
App Resource 에 접근하는데 사용되는 R 클래스의 네임스페이스로 적용이 된다. 위 예에서는 com.ready.test.R 클래스가 생성된다.
매니페스트 파일 내에서 선언된 상대경로에 적용됩니다.
예를 들어 \<activity android:name=".MainActivity> 라고 선언했다면 이는 "com.ready.example.MainActivity" 를 가리키게 된다.
2. App Components
4대 컴포넌트(Activity, Service, Broadcast Receiver, Content Provider), 이 컴포넌트들을 앱에서 사용한다면 매니페스트 파일에 등록해줘야 한다. Manifest 파일 내에서 각각 다음 태그를 통해 선언할 수 있다.
- <activity> : Activity
- <service> : Service
- <receiver> : Broadcast Receiver
- <provider> : Content Provider
4대 컴포넌트들은 각각 인텐트에 의해 활성화된다.
여기서 인텐트란 메세지 객체로, 어떤 행동을 수행할지에 대한 명령이나 작업에 필요한 데이터를 포함한다.
3. Permissions
안드로이드 앱은 민감한 유저 정보나 카메라나 인터넷 등 특정 시스템 기능을 사용할 때 반드시 권한을 요청한다.
앱에서 필요한 권한을 AndroidManifest.xml 파일에 등록을 해야 합니다. 문법은
<uses-permission android:name="string" android:maxSdkVersion="integer" />
과 같이 작성 한다.
Parameters | |
android:name | 요청하려는 권한의 이름. |
android:maxSdkVersion | 권한이 필요한 최고 레벨 값. (“21” 이라면 API 레벨 21까지만 필요하고 22 이상은 필요 없다는 의미) |
실제 사용 예를 들면 아래처럼 입력하면 됩니다.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
4. Device Compatibility(적합성)
Manifest 파일에는 앱이 필요로 하는 하드웨어나 소프트웨어 특징을 명시할 수 있다.
예를 들어, 카메라 앱을 만들 경우에 카메라가 필수로 있어야 하니 카메라가 있는 기기에서만 Play Store 에서 해당 앱이 다운로드 될 수 있도록 명시하는 것.
예시) compass sensor가 있는 기기에서만 다운로드 가능하게 하기위함
<manifest ... >
<uses-feature android:name="android.hardware.sensor.compass"
android:required="true" />
...
</manifest>
'Android' 카테고리의 다른 글
Android - Garbage Collection(GC) (2) | 2023.11.08 |
---|---|
Android - Manifest & Components (0) | 2023.11.08 |
Android Layout (1) | 2023.09.04 |
안드로이드 Activity 생명주기 (0) | 2023.08.29 |
Android 4대 컴포넌트 (0) | 2023.08.29 |