Android7.0 数据拨号前的准备工作

背景
在介绍PhoneApp的创建过程时,我们知道为了支持双卡手机,PhoneFactory创建了两个Phone对象。
然而由于通信制式、功耗等的限制,目前底层的芯片厂商规定modem工作于DSDS模式下,于是同一时间内只有一个Phone具有上网的能力。
本文旨在揭示激活Phone拨号能力的过程,即讲述数据拨号前的准备工作。

版本
android 7.0

1 TelephonyProvider的启动
数据业务在建立之前,必须有可用的APN,因此我们首先看看Android 7.0中APN加载的过程。
之前分析PhoneApp启动过程时,我们知道PhoneApp的onCreate函数是靠ActivityThread.java中的handleBindApplication函数调用的。

private void handleBindApplication(AppBindData data) {
	........
	try {
		Application app = data.info.makeApplication(data.restrictedBackupMode, null);
		mInitialApplication = app;

		if (!data.restrictedBackupMode) {
			if (!ArrayUtils.isEmpty(data.providers)) {
				//加载App中的provider
				installContentProviders(app, data.providers);
				...........
			}
		}

		try {
			mInstrumentation.onCreate(data.instrumentationArgs);
		} catch (Exception e) {
			.........
		}

		try {
			//调用App的onCreate函数
			mInstrumentation.callApplicationOnCreate(app);

你可能感兴趣的:(Android源码学习笔记)