Android Manifest 파일 소개

8198 단어 androidxml
머리말
안 드 로 이 드 프로그램 을 개발 한 사람들 은 안 드 로 이 드 프로그램 에 반드시 안 드 로 이 드 매 니 페스트 파일 이 있다 는 것 을 안다.이 파일 은 Android 시스템 에 자신의 app 정 보 를 알려 줍 니 다. app 을 실행 하기 전에 시스템 이 알 아야 할 정 보 를 알려 줍 니 다.또한, 이 프로그램의 실행 환경, app 에 필요 한 권한, app 에 포 함 된 4 대 구성 요소 의 내용 등 Android Manifest 파일 에 정 보 를 정의 해 야 합 니 다.Andorid Manifest 파일 의 구 조 는 일반적으로 다음 과 같 습 니 다.
<?xml version="1.0" encoding="utf-8"?>
<manifest>

    <uses-permission />
    <permission />
    <permission-tree />
    <permission-group />
    <instrumentation />
    <uses-sdk />
    <uses-configuration />
    <uses-feature />
    <supports-screens />
    <compatible-screens />
    <supports-gl-texture />

    <application>

        <activity>
            <intent-filter>
                <action />
                <category />
                <data />
            </intent-filter>
            <meta-data />
        </activity>

        <activity-alias>
            <intent-filter>. . .</intent-filter>
            <meta-data />
        </activity-alias>

        <service>
            <intent-filter>. . .</intent-filter>
            <meta-data />
        </service>

        <receiver>
            <intent-filter>. . .</intent-filter>
            <meta-data />
        </receiver>

        <provider>
            <grant-uri-permission />
            <meta-data />
            <path-permission />
        </provider>

        <uses-library />
    </application>
</manifest>

다음은 각 라벨 이 표현 하 는 뜻 을 한 번 살 펴 보 겠 습 니 다.
action
액 션 태그 입 니 다. 이것 은 매우 흔히 볼 수 있 는 태그 입 니 다. intent - filter 태그 에 존재 합 니 다.하나의 activity 와 연결 되면 이 활동 이 이 동작 을 가지 고 있다 는 것 을 나 타 낼 수 있 습 니 다. 의도 적 으로 보 내 고 이러한 Activity 정의 동작 이 있 으 면 이 activity 를 찾 을 수 있 습 니 다. 보통 category 와 함께 사용 합 니 다.
Example:
<action android:name="android.intent.action.MAIN" />

activity
활동 태그, 가장 자주 사용 하 는 태그, 활동 을 정의 하고 대량의 속성 을 가 지 며 공식 문 서 를 구체 적 으로 참고 합 니 다.
activity-alias
이벤트 탭 의 대체 자, 가장 중요 한 속성 은 android: targetActivity 입 니 다. 이 속성 을 통 해 가리 키 는 activity 를 설정 할 수 있 습 니 다.일반적으로 활동 의 별명 으로 이해 할 수 있다.아래 와 같이 정의 하면 두 프로그램의 입 구 를 얻 을 수 있 습 니 다.
<activity   
    android:name=".MainActivity"  
>  
    <intent-filter>  
        <action android:name="android.intent.action.MAIN" />  
        <category android:name="android.intent.category.LAUNCHER" />  
    </intent-filter>  
</activity>
<activity-alias   
    android:name="MainActivityAlias"  
    android:targetActivity="MainActivity"  
    android:label="MainActivityAlias"  
    >  
    <intent-filter>  
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />  
    </intent-filter>  
</activity-alias> 

application
응용 프로그램 에 대한 성명 역시 대량의 속성 을 가지 고 있다.우리 가 흔히 볼 수 있 는 Activity, Service, Receiver 는 이 탭 내 부 를 정의 합 니 다.또한 설정 테마 등 전역 설정 과 유사 한 역할 도 합 니 다.
category
category 탭 은 일반적으로 Action 과 함께 사용 되 며, activity 를 찾 는 데 도 사 용 됩 니 다. action 이 유일한 activity 를 확인 할 수 없 을 때, 이 때 Intent - filter 에 category 탭 을 추가 하면 어떤 activity 인지 확인 할 수 있 습 니 다. 하나의 Intent - filter 는 여러 개의 activity 를 가 질 수 있 습 니 다.
Example:
    <activity
        android:name=".MainActivity"
        android:theme="@android:style/Theme.NoDisplay"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

compatible-screens
일반적으로 이 탭 을 사용 하 는 것 을 권장 하지 않 습 니 다. 이 탭 은 프로그램 자체 에 영향 을 주지 않 지만 Google Play 등 앱 시장 에서 프로그램의 호환성 을 판단 하 는 데 영향 을 줄 수 있 습 니 다.
data
data 도 Intent - filter 에 사 용 됩 니 다.그것 은 또 다른 포 지 셔 닝 activity 방식 을 제공 했다.네트워크 의 URL 주소 가 웹 페이지 에 위치 할 수 있 듯 이 형식 을 정의 한 다음 특정한 activity 로 이동 할 수 있 습 니 다.브 라 우 저 에서 어떤 프로그램 을 열거 나 설치 하 라 는 힌트 를 보 았 다 면.이 안의 실현 원 리 는 바로 이것 이다.나 는 이전에 이런 문장 을 쓴 적 이 있다.
grant-uri-permission
이것 은 콘 텐 츠 제공 자가 클 라 이언 트 에 게 데 이 터 를 제공 하 는 데 사용 되 는 속성 입 니 다.grandUriPermisson 이 true 로 설정 되 었 을 때 클 라 이언 트 는 콘 텐 츠 제공 자의 모든 데 이 터 를 얻 을 수 있 습 니 다. false 로 설정 되면 grant - uri - permission 이 정의 하 는 경로 에 만 접근 할 수 있 습 니 다.이 탭 은 권한 이 없 는 상태 에서 다른 프로그램 이 제공 하 는 데 이 터 를 방문 하 는 데 사 용 됩 니 다.이 탭 은 Provider 탭 에 포함 되 어 있 습 니 다. 문법 은 다음 과 같 습 니 다.
<grant-uri-permission android:path="string"
                  android:pathPattern="string"
                  android:pathPrefix="string" />

instrumentation
이 탭 은 보통 유닛 테스트 에서 사 용 됩 니 다. 만 든 Instrumentation 류 는 프로그램의 상호작용 을 모니터링 할 수 있 고 프로그램의 모든 구성 요소 가 초기 화 됩 니 다.
SYNTAX:
<instrumentation android:functionalTest=["true" | "false"]
             android:handleProfiling=["true" | "false"]
             android:icon="drawable resource"
             android:label="string resource"
             android:name="string"
             android:targetPackage="string" />

functionaltest 속성 은 유닛 테스트 에 사용 할 지 여 부 를 결정 합 니 다. handle Profiling 은 분석 기능 을 시작 할 지 여 부 를 결정 합 니 다. andorid: name 은 자신 이 정의 한 Instrumentation 하위 클래스 입 니 다. targetPackgage 는 테스트 할 프로그램 을 정의 합 니 다.
intent-filter
Activity, Service 또는 라디오 에서 받 을 수 있 는 Intent 를 정의 하 는 것 도 가장 많이 사용 되 는 태그 중 하나 입 니 다.action 탭 을 포함해 야 합 니 다.
SYNTAX:
<intent-filter android:icon="drawable resource"
           android:label="string resource"
           android:priority="integer" >
. . .
</intent-filter>

android:priority       。     -1000 1000,   0。       IntentFilter  setPriority()   。

Manifest
이것 은 할 말 이 없습니다. 마치 웹 의 html 태그 와 같 지만 Manifest 파일 에서 많은 정 보 를 정의 할 수 있 습 니 다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="string"
      android:sharedUserId="string"
      android:sharedUserLabel="string resource" 
      android:versionCode="integer"
      android:versionName="string"
      android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
. . .
</manifest>

meta-data
메타 데이터 탭 은 시스템 에서 사용 할 수 있 는 데 이 터 를 정의 하 는 데 사 용 됩 니 다.
<meta-data android:name="string"
       android:resource="resource specification"
       android:value="string" />    

프로그램 이 값 을 얻 을 수 있 도록 메타 데이터 에 유일한 이름 을 정의 해 야 합 니 다. 문자열 이 라면 일반적으로 이렇게 정의 할 수 있 습 니 다.
<meta-data android:name="com.fyales.name"
       android:value="fyales" />    

그림 이 라면 안 드 로 이 드: resource 속성 을 사용 합 니 다.
<meta-data android:name="com.fyales.picture"
        android:value="@drawable/ic_launch" />

이후 activity 에서 호출:
ActivityInfo info = this.getPackageManager().getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);

info.metaData.getString(“com.fyales.picture”);
여기 서 주의해 야 할 것 은 meta - data 가 정의 하 는 위치 가 다 르 면 이 메타 데 이 터 를 가 져 오 는 방법 도 다 릅 니 다. 위의 제 meat - data 는 activity 에 정의 되 어 있 습 니 다. application 에 정의 되면 아래 와 같이 호출 해 야 합 니 다.
ApplicationInfo appInfo = this.getPackageManager()
        .getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
    appInfo.metaData.getString("meta_name");

제시 하 다.
안 드 로 이 드 매 니 페스트 는 구 글 홈 페이지 에 상세 한 설명 이 있 고, 필요 한 친구 가 있 으 면 직접 방문 해 설명 할 수 있다.안에 라벨 의 완전한 설명 이 있다.만약 이 문장 에 무슨 누락 이 있다 면 벽돌 을 찍 는 것 을 환영 합 니 다.
이상:
구호: 재 미 있 는 것들 을 만들어 라!
.

좋은 웹페이지 즐겨찾기