| # |
| # Syntax: |
| # - Lines starting with # are ignored (anywhere, as long as # is the first char). |
| # - Lines before the first @delimiter are ignored. |
| # - Empty lines just after the @delimiter and before the first < XML line are ignored. |
| # - Valid delimiters are @main for the XML of the main app manifest. |
| # - Following delimiters are @libXYZ, read in the order of definition. The name can be |
| # anything as long as it starts with "@lib". |
| # - Last delimiter should be @result. |
| # |
| |
| @main |
| |
| <!-- |
| This is a canonical manifest that has some uses-permissions, |
| the usual uses-sdk and supports-screens, an app with an activity, |
| customer receiver & service and a widget. |
| --> |
| |
| <manifest |
| xmlns:android="http://schemas.android.com/apk/res/android" |
| package="com.example.app1" |
| android:versionCode="100" |
| android:versionName="1.0.0"> |
| |
| <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="11"/> |
| |
| <supports-screens |
| android:largeScreens="true" |
| android:smallScreens="true" |
| android:normalScreens="true" |
| android:resizeable="true" |
| android:xlargeScreens="true" |
| /> |
| |
| <!-- Typical analytics permissions. --> |
| <uses-permission android:name="android.permission.INTERNET" /> |
| <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> |
| |
| <!-- Touchscreen feature, optional to make sure we can run on devices with no touch screen. --> |
| <uses-feature |
| android:name="android.hardware.touchscreen" |
| android:required="false" /> |
| |
| <application |
| android:label="@string/app_name" |
| android:icon="@drawable/app_icon" |
| android:backupAgent="com.example.app.BackupAgentClass" |
| android:restoreAnyVersion="true" |
| android:allowBackup="true" |
| android:killAfterRestore="true" |
| android:name="com.example.TheApp" > |
| |
| <activity |
| android:name="com.example.MainActivity" |
| android:label="@string/activity_name" |
| android:icon="@drawable/activity_icon" |
| android:theme="@style/Some.Theme"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| <category android:name="android.intent.category.LAUNCHER" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- Receiver --> |
| <receiver |
| android:name="com.example.AppReceiver" |
| android:icon="@drawable/app_icon"> |
| <intent-filter> |
| <action android:name="com.example.action.ACTION_CUSTOM" /> |
| </intent-filter> |
| </receiver> |
| |
| <!-- Broadcast Receiver for a widget. --> |
| <receiver |
| android:label="@string/widget_name" |
| android:icon="@drawable/widget_icon" |
| android:name="com.example.WidgetReceiver" > |
| <intent-filter> |
| <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> |
| </intent-filter> |
| <meta-data |
| android:name="android.appwidget.provider" |
| android:resource="@xml/widget_provider" |
| /> |
| </receiver> |
| |
| <service |
| android:icon="@drawable/app_icon" |
| android:name="com.example.AppService" /> |
| |
| <!-- Activity to configure widget --> |
| <activity |
| android:icon="@drawable/widget_icon" |
| android:label="Configure Widget" |
| android:name="com.example.WidgetConfigurationUI" |
| android:theme="@style/Theme.WidgetConfigurationUI" > |
| <intent-filter > |
| <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- Provider extracted from ApiDemos --> |
| <provider android:name=".app.LoaderThrottle$SimpleProvider" |
| android:authorities="com.example.android.apis.app.LoaderThrottle" |
| android:enabled="@bool/atLeastHoneycomb" /> |
| |
| </application> |
| |
| </manifest> |
| |
| @lib1 |
| |
| <manifest |
| xmlns:android="http://schemas.android.com/apk/res/android" |
| package="com.example.lib1"> |
| </manifest> |
| |
| |
| @lib2 |
| |
| # An empty library is not supported. It must be a valid XML file. |
| <manifest/> |
| |
| @result |
| |
| <!-- |
| This is a canonical manifest that has some uses-permissions, |
| the usual uses-sdk and supports-screens, an app with an activity, |
| customer receiver & service and a widget. |
| --> |
| |
| <manifest |
| xmlns:android="http://schemas.android.com/apk/res/android" |
| package="com.example.app1" |
| android:versionCode="100" |
| android:versionName="1.0.0"> |
| |
| <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="11"/> |
| |
| <supports-screens |
| android:largeScreens="true" |
| android:smallScreens="true" |
| android:normalScreens="true" |
| android:resizeable="true" |
| android:xlargeScreens="true" |
| /> |
| |
| <!-- Typical analytics permissions. --> |
| <uses-permission android:name="android.permission.INTERNET" /> |
| <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> |
| |
| <!-- Touchscreen feature, optional to make sure we can run on devices with no touch screen. --> |
| <uses-feature |
| android:name="android.hardware.touchscreen" |
| android:required="false" /> |
| |
| <application |
| android:label="@string/app_name" |
| android:icon="@drawable/app_icon" |
| android:backupAgent="com.example.app.BackupAgentClass" |
| android:restoreAnyVersion="true" |
| android:allowBackup="true" |
| android:killAfterRestore="true" |
| android:name="com.example.TheApp" > |
| |
| <activity |
| android:name="com.example.MainActivity" |
| android:label="@string/activity_name" |
| android:icon="@drawable/activity_icon" |
| android:theme="@style/Some.Theme"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| <category android:name="android.intent.category.LAUNCHER" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- Receiver --> |
| <receiver |
| android:name="com.example.AppReceiver" |
| android:icon="@drawable/app_icon"> |
| <intent-filter> |
| <action android:name="com.example.action.ACTION_CUSTOM" /> |
| </intent-filter> |
| </receiver> |
| |
| <!-- Broadcast Receiver for a widget. --> |
| <receiver |
| android:label="@string/widget_name" |
| android:icon="@drawable/widget_icon" |
| android:name="com.example.WidgetReceiver" > |
| <intent-filter> |
| <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> |
| </intent-filter> |
| <meta-data |
| android:name="android.appwidget.provider" |
| android:resource="@xml/widget_provider" |
| /> |
| </receiver> |
| |
| <service |
| android:icon="@drawable/app_icon" |
| android:name="com.example.AppService" /> |
| |
| <!-- Activity to configure widget --> |
| <activity |
| android:icon="@drawable/widget_icon" |
| android:label="Configure Widget" |
| android:name="com.example.WidgetConfigurationUI" |
| android:theme="@style/Theme.WidgetConfigurationUI" > |
| <intent-filter > |
| <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- Provider extracted from ApiDemos --> |
| <provider |
| android:name="com.example.app1.app.LoaderThrottle$SimpleProvider" |
| android:authorities="com.example.android.apis.app.LoaderThrottle" |
| android:enabled="@bool/atLeastHoneycomb" /> |
| |
| </application> |
| |
| </manifest> |
| |
| |
| @errors |
| |
| W [ManifestMergerTest2_lib2.xml:1] Missing 'package' attribute in manifest. |