Android Manifest:没有默认活动?

时间:2015-06-09 11:29:29

标签: android android-manifest

从一个开源项目我得到了这个清单文件

<?xml version="1.0" encoding="utf-8"?>

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="20" />

<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <service
        android:name="org.gege.caldavsyncadapter.syncadapter.SyncService"
        android:exported="true">
        <intent-filter>
            <action android:name="android.content.SyncAdapter" />
        </intent-filter>

        <meta-data
            android:name="android.content.SyncAdapter"
            android:resource="@xml/syncadapter" />
    </service>
    <service
        android:name="org.gege.caldavsyncadapter.authenticator.AuthenticationService"
        android:exported="true">
        <intent-filter>
            <action android:name="android.accounts.AccountAuthenticator" />
        </intent-filter>

        <meta-data
            android:name="android.accounts.AccountAuthenticator"
            android:resource="@xml/authenticator" />
    </service>

    <activity
        android:name="org.gege.caldavsyncadapter.authenticator.AuthenticatorActivity"
        android:label="@string/title_activity_authenticator"
        android:windowSoftInputMode="adjustResize|stateVisible"/>
</application>

我对这个表现感到有些困惑。它有两个服务和一个活动。活动未标记为默认活动。当我在手机上运行项目时,它不显示启动应用程序的任何图标,也不会自动启动应用程序。

这样的清单有意义吗? Android操作系统基于这样的清单是什么?

1 个答案:

答案 0 :(得分:1)

  

这样的清单是否有意义?

是的,因为它声明了sync adapter和验证者。

通常,这样的清单在图书馆项目中也有意义。然后,使用该库的应用程序项目提供主启动器活动。构建过程将清单文件合并在一起,因此每个APK都会获得一个清单。

  

Android操作系统基于这样的清单是什么?

因此,它有一个入口点,如活动和声明的两个服务。通常,您通过Intent调用这些入口点。这些服务被声明为同步适配器和身份验证器,因此可以由框架调用它们。该活动可能由身份验证服务器为UI目的调用。

由于没有主启动器活动,因此无法看到菜单图标。