第1章 STK流程分析
说一下和显示有关的几个类:
StkDialogActivity:负责建立插卡后的所有弹窗(如:“欢迎使用中国国联通”)。
StkMenuActivity:负责插卡后的建立所有列表(如:进入SIM卡工具包-各菜单列表)。
StkAppInstaller:负责“SIM卡工具包”应用的图标显示(如:我们下载QQ后,桌面会有一个企鹅)。
1.1 PhoneApp实例化PhoneGlobals
PhoneApp中实例化了PhoneGlobals。
图1中实例化了PhoneGlobals
1.2 makeDefaultPhones
PhoneGlobals中有调用了PhoneFactory.makeDefaultPhones();
图2调用makeDefaultPhones()
1.3 实例化SubscriptionInfoUpdater、IccCardProxy等
PhoneFactory.makeDefaultPhones()方法中间接实例化SubscriptionInfoUpdater,实例化SubscriptionController、UiccController。PhoneFactory创建出GsmCdmaPhone之后,GsmCdmaPhone在其初始化函数中将创建IccCardProxy对象。
图3通过TelephonyComponentFactory间接实例化SubscriptionInfoUpdater
图4实例化SubscriptionController、UiccController
1.4 UiccController
UiccController中创建或者更新UiccCard。收到EVENT_ICC_STATUS_CHANGED会调用RIL的getIccCardStatus()方法,向modem发消息查询SIM卡的状态。然后就会收到EVENT_GET_ICC_STATUS_DONE的反馈消息,调用onGetIccCardStatusDone()方法。