欢迎来到天天文库
浏览记录
ID:21918371
大小:124.91 KB
页数:5页
时间:2018-10-25
《创建phone进程以及创建phone进程的异常过程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、(1)创逮com.android.phone的进程./packages/services/Telephony/AndroidManifest.xml1:systemReadyAndroidManifest.xml中的application有属性android:persistent,表不•它是常驻的应川<>2、Jandcoid:label=11@stringzphoneAppLabe111.Lcon=”@mipmap/ic_launcher_phone11:allowsaclcup»nfalse11""i=,3、,truen>有这个屈性的话,乎机在开机过程由AcitivityManagerService负贵把该进程启动起来。如卜'时序图:1,14、addAppLockedQ111startProcessLockedO1.1.1.1:startQa.—个APK若需要运行在phone进程屮需要在AndroidManifest.xml文件屮添加android:shareUserld="android.uid.phone"并且对应的APK—定是系统APK。b.—个组件若需要运行在phone进税屮需要AndroidManifest.xml文件屮对应组件屮添加:android:process=〃com.andr5、oid.phone〃。〈activityandroid:name=M.deviceinfo.SimStatusMandroid:label=M@string/sim_status_ti11e°:irv:.=Mgstyle^Theme-SubSettingsDialogwhenLacge”iandroickphon^>组件对应的APK也一定足系统APK。(2)注册网络类型双卡项目:a.主卡注册哪个网络类型根据首选网络类型以及你的SIM具备注册哪个网络的能力;b.帛1卡只能注册GSMM络。假如副卡插入的是屮国电信卡,因为电信没有GSM2G网络,那么它在国内足没办法注册上网络的。单卡项目:a.注6、册哪个网络类型根据酋选网络类型以及你的SIM具备注册哪个网络的能力;首选网络类型可以在设置中查看:首选网络类型®4G(建议)O3G/2GautoO2Gonly取消代码体现:./frameworks/opt/telephony/src/java/co爾/android/internal/telephony/PhoneFactory.javamakeDefaultPhone方法:if(i==(capabilityPhoneId-1)){networkModes[i]=calculatePreferredNetworkType(context);}else{networkModes[i]=RIL7、Constants.^ETVJORK_MODE_GSM_O^LY;}---其中capabilityPhoneld由属性persist.radio.simswitch來决定,默认是卡槽1关于切换主副卡的资料可以参考FAQ12629和FAQ13485(1)创建Phone对象首先來看下时序图PhoneGlobals的onCreate是在创建com.android.phone进程时调用Phone可以分为三种:⑴GSMPhone(2)CDMAPhone(3)CDMALTEPhone双卡项H:a.主卡由首选网络类型决定创建什么类型的Phone对象。b.副卞总是创建GSMPhone的对象。単卡项H:a.8、由首选网络类型决定和双卡项目屮(a>-致。CDMAPhone和CDMALTEPhone是CDMA制式手机吋创建,比如说电信C2K项H。C2K资料参考FAQOnline:《C2K快速入门》除此之外都是创建GsmPhone,不管是你的首选网络类型是LTE、WCDMA还是GSM,为什么呢?看下代码./fram©works/basG/t©lephony/java/android/telephony/TelephonyManager.javagetPhoneTypepublic3taticintgetPhoneType(intnetworkMode){switch(networkMode)(case9、RILCOnstantS.NSTWORK_MODS_CDMA:caseRILConstants.NST^JORK_MODE:_CDMA_NO_EVDOzcaseRILConstant3.NETmRK_MODE_EVDO__NO_CDMAzreturnPhoneConstants.PHONS_TYPS_CDMA;casecasecasecasecasecasecaseRILConstant5.NSTWORK_MODE_^C
2、Jandcoid:label=11@stringzphoneAppLabe111.Lcon=”@mipmap/ic_launcher_phone11:allowsaclcup»nfalse11""i=,
3、,truen>有这个屈性的话,乎机在开机过程由AcitivityManagerService负贵把该进程启动起来。如卜'时序图:1,1
4、addAppLockedQ111startProcessLockedO1.1.1.1:startQa.—个APK若需要运行在phone进程屮需要在AndroidManifest.xml文件屮添加android:shareUserld="android.uid.phone"并且对应的APK—定是系统APK。b.—个组件若需要运行在phone进税屮需要AndroidManifest.xml文件屮对应组件屮添加:android:process=〃com.andr
5、oid.phone〃。〈activityandroid:name=M.deviceinfo.SimStatusMandroid:label=M@string/sim_status_ti11e°:irv:.=Mgstyle^Theme-SubSettingsDialogwhenLacge”iandroickphon^>组件对应的APK也一定足系统APK。(2)注册网络类型双卡项目:a.主卡注册哪个网络类型根据首选网络类型以及你的SIM具备注册哪个网络的能力;b.帛1卡只能注册GSMM络。假如副卡插入的是屮国电信卡,因为电信没有GSM2G网络,那么它在国内足没办法注册上网络的。单卡项目:a.注
6、册哪个网络类型根据酋选网络类型以及你的SIM具备注册哪个网络的能力;首选网络类型可以在设置中查看:首选网络类型®4G(建议)O3G/2GautoO2Gonly取消代码体现:./frameworks/opt/telephony/src/java/co爾/android/internal/telephony/PhoneFactory.javamakeDefaultPhone方法:if(i==(capabilityPhoneId-1)){networkModes[i]=calculatePreferredNetworkType(context);}else{networkModes[i]=RIL
7、Constants.^ETVJORK_MODE_GSM_O^LY;}---其中capabilityPhoneld由属性persist.radio.simswitch來决定,默认是卡槽1关于切换主副卡的资料可以参考FAQ12629和FAQ13485(1)创建Phone对象首先來看下时序图PhoneGlobals的onCreate是在创建com.android.phone进程时调用Phone可以分为三种:⑴GSMPhone(2)CDMAPhone(3)CDMALTEPhone双卡项H:a.主卡由首选网络类型决定创建什么类型的Phone对象。b.副卞总是创建GSMPhone的对象。単卡项H:a.
8、由首选网络类型决定和双卡项目屮(a>-致。CDMAPhone和CDMALTEPhone是CDMA制式手机吋创建,比如说电信C2K项H。C2K资料参考FAQOnline:《C2K快速入门》除此之外都是创建GsmPhone,不管是你的首选网络类型是LTE、WCDMA还是GSM,为什么呢?看下代码./fram©works/basG/t©lephony/java/android/telephony/TelephonyManager.javagetPhoneTypepublic3taticintgetPhoneType(intnetworkMode){switch(networkMode)(case
9、RILCOnstantS.NSTWORK_MODS_CDMA:caseRILConstants.NST^JORK_MODE:_CDMA_NO_EVDOzcaseRILConstant3.NETmRK_MODE_EVDO__NO_CDMAzreturnPhoneConstants.PHONS_TYPS_CDMA;casecasecasecasecasecasecaseRILConstant5.NSTWORK_MODE_^C
此文档下载收益归作者所有