从一个开源项目我得到了这个清单文件
<?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操作系统基于这样的清单是什么?
答案 0 :(得分:1)
这样的清单是否有意义?
是的,因为它声明了sync adapter和验证者。
通常,这样的清单在图书馆项目中也有意义。然后,使用该库的应用程序项目提供主启动器活动。构建过程将清单文件合并在一起,因此每个APK都会获得一个清单。
Android操作系统基于这样的清单是什么?
因此,它有一个入口点,如活动和声明的两个服务。通常,您通过Intent
调用这些入口点。这些服务被声明为同步适配器和身份验证器,因此可以由框架调用它们。该活动可能由身份验证服务器为UI目的调用。
由于没有主启动器活动,因此无法看到菜单图标。