欢迎来到天天文库
浏览记录
ID:59224611
大小:605.40 KB
页数:4页
时间:2020-09-09
《创建phone进程以及创建phone进程的异常过程.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、(1)创建com.android.phone的进程AndroidManifest.xml中的application有属性android:persistent,表示它是常驻的应用。有这个属性的话,手机在开机过程由AcitivityManagerService负责把该进程启动起来。如下时序图:a.一个APK若需要运行在phone进程中需要在AndroidManifest.xml文件中添加android:shareUserId=“android.uid.phone”并且对应的APK一定是系统APK。b.一个组件若需要运行在phone
2、进程中需要AndroidManifest.xml文件中对应组件中添加:android:process=”com.android.phone”。组件对应的APK也一定是系统APK。(2)注册网络类型双卡项目:a.主卡注册哪个网络类型根据首选网络类型以及你的SIM具备注册哪个网络的能力;b.副卡只能注册GSM网络。假如副卡插入的是中国电信卡,因为电信没有GSM2G网络,那么它在国内是没办法注册上网络的。单卡项目:a.注册哪个网络类型根据首选网络类型以及你的SIM具备注册哪个网络的能力;首选网络类型可以在设置中查看:代码体现:mak
3、eDefaultPhone方法:其中capabilityPhoneId由属性persist.radio.simswitch来决定,默认是卡槽1。关于切换主副卡的资料可以参考FAQ12629和FAQ13485(1)创建Phone对象首先来看下时序图PhoneGlobals的onCreate是在创建com.android.phone进程时调用。Phone可以分为三种:(1)GSMPhone(2)CDMAPhone(3)CDMALTEPhone双卡项目:a.主卡由首选网络类型决定创建什么类型的Phone对象。b.副卡总是创建GSMP
4、hone的对象。单卡项目:a.由首选网络类型决定和双卡项目中(a)一致。CDMAPhone和CDMALTEPhone是CDMA制式手机时创建,比如说电信C2K项目。C2K资料参考FAQOnline:《C2K快速入门》除此之外都是创建GsmPhone,不管是你的首选网络类型是LTE、WCDMA还是GSM,为什么呢?看下代码getPhoneType总是返回PhoneConstants.PHONE_TYPE_GSM再看创建Phone对象的代码:makeDefaultPhone方法:(1)案例分析创建com.android.phone
5、进程的正常的log在sys_log.boot(带boot后缀的log是指开机过程的log)用关键字com.android.phone搜索有:784IActivityManager:Startproc1408:com.android.phone/1001foraddedapplicationcom.android.phone创建com.android.phone进程的异常的log784IActivityManager:Startproc1382:com.android.phone/1001forcontentproviderco
6、m.android.providers.telephony/.TelephonyProvidercom.android.phone创建异常的话会导致开机后卡注册上网络耗时很长等问题。参考资料:
此文档下载收益归作者所有