针对支持NFC的手机或是平板电脑,我们看下开机logcat,挥发现NfcService在开机时就启动了,它是如何启动的呢?这个问题困扰了我很久:没有加入到系统服务里面,也没有监听系统启动的BOOT_COMPLETED广播。查看NfcService代码可以发现它是extends application的,它并不是一个Service。最后经过各种猜测和尝试发现了如下code
<application android:name=".NfcService"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:persistent="true"
android:backupAgent="com.android.nfc.NfcBackupAgent"
>
其中最主要的是:
android:persistent="true"
以上这行code 决定了系统在启动时会自动启动这个NfcService。至于为什么是这个属性?系统又是如何来解析AndroidManifest.xml?后续时间允许的话在研究。