一、Telephony进程
<application android:name="PhoneApp"
android:persistent="true"
android:label="@string/phoneAppLabel"
android:icon="@mipmap/ic_launcher_phone"
android:supportsRtl="true">
这个声明创建了一个名叫“PhoneApp”的application,并且确定了他的name、label、icon等信息,而且将该application的persistent属性置为true。那么这个persistent属性的作用是什么呢?
这里的persistent属性具备两个关键作用:
1、该模块会在开机时被系统自动初始化;
2、该模块所在的进程(com.android.phone)由于任何原因被kill掉之后,都会自动重启;
以上两点是十分必要的,他保证/导致了两个效果:
1、所有Application层和Framework层中与Telephony相关的操作,包括各种Service的创建、与RIL层交互的RILJ的初始化等,都是通过Phone进程创建的;
2、Phone进程由于任何原因被kill掉后,都会发生重新搜网的动作;
二、Telephony实体对象
这里要引入一个非常重要的对象: Phone对象。该对象可以看做是Telephony框架的实体,可以向该对象