一种定制应用程序启动控制方法及装置的制造方法
【技术领域】
[0001]本发明涉及移动通信技术领域,尤其涉及一种定制应用程序启动控制方法及装置。
【背景技术】
[0002]随着第三代(3G)移动通信技术时代的到来,终端的网络制式除了传统的全球移动通信系统(GSM)和码分多址(CDMA)外,又增加了宽带码分多址(WCDMA)、CDMA200以及时分同步码分多址(TD-SCDMA)等网络制式。现在,各网络运营商都希望通过公开渠道出售的手机在插入运营商的SM卡后,能够显示运营商的自有业务,比如网络设置,打开浏览器显示的首页,应用等等。
[0003]目前,已知的方法是:使用android操作系统中的开机启动机制读取SM卡的PLMN的参数(包括移动国家号码MNC、移动网号MCC),并根据读取到的参数加载对应的资源。但是,在使用android默认的开机启动机制读到PLMN的参数值时,Android程序安装包APK的加载过程已经结束,此时就无法再根据PLMN的参数值来加载APK。否则,就需要重启手机,在下次启动的过程中根据上次读到的PLMN值去加载APK。因此,通过重启手机来加载APK的体验对用户来说,很可能被认为是手机故障。
【发明内容】
[0004]本发明要解决的技术问题是提供一种定制应用程序启动控制方法及装置,能够在操作系统启动前获取SIM卡的PLMN值,并在操作系统启动后进行定制的应用程序的加载,可以避免重启手机加载定制APK的情况。
[0005]为解决上述问题,本发明提供一种定制应用程序启动控制方法,所述方法包括:执行终端系统初始化启动,并获取所述终端当前SIM卡的公共陆地移动网络PLMN值;启动操作系统并根据所述当前SIM卡的PLMN值加载对应的应用程序;以及启动所述应用程序。
[0006]其中,启动操作系统并根据所述当前SIM卡的PLMN值加载对应的应用程序的步骤具体为:启动操作系统并将所述当前SIM卡的PLMN值写入系统属性;根据所述当前SIM卡的PLMN值从所述终端的运营商应用程序列表中获取对应的应用程序;其中,所述运营商应用程序列表记录了 SIM卡的PLMN值与对应的应用程序;以及加载所述应用程序。
[0007]其中,将所述当前SM卡的PLMN值写入系统属性的步骤之前,所述方法还包括:判断所述当前SIM卡的PLMN值是否在所述运营商应用程序列表中;若是,则执行所述将所述当前SIM卡的PLMN值写入系统属性的步骤,否则,则确定没有相应的资源可以加载。
[0008]其中,当确定所述当前SIM卡的PLMN值在所述运营商应用程序列表中时,所述方法还包括:判断所述终端保存的SM卡的PLMN值与所述当前SM卡的PLMN值是否相同;若是,则直接执行所述加载所述应用程序的步骤;否则,则执行所述将所述当前SIM卡的PLMN值写入系统属性的步骤。
[0009]其中,当确定所述终端保存的SM卡的PLMN值与所述当前SM卡的PLMN值不同时,启动所述应用程序的步骤之后,所述方法还包括:保存所述当前SIM卡的PLMN值。
[0010]为解决上述问题,本发明还提供一种定制应用程序启动控制装置,所述装置包括:第一获取模块,用于在所述装置执行系统初始化启动后获取所述装置当前SIM卡的公共陆地移动网络PLMN值;加载模块,用于启动操作系统并根据所述第一获取模块获取的所述当前SIM卡的PLMN值加载对应的应用程序;执行模块,用于启动所述应用程序。
[0011]其中,所述装置还包括第二获取模块,用于将所述第一获取模块获取的所述当前SIM卡的PLMN值写入系统属性,并根据所述当前SIM卡的PLMN值从运营商应用程序列表中获取对应的应用程序;其中,所述运营商应用程序列表记录了 SIM卡的PLMN值与对应的应用程序;所述加载模块加载所述第二获取模块获取的所述应用程序。
[0012]其中,所述装置还包括判断模块,用于判断所述第一获取模块获取的所述当前SM卡的PLMN值是否在所述运营商应用程序列表中;当确定所述当前SIM卡的PLMN值在所述运营商应用程序列表中时,所述第二获取模块将所述第一获取模块获取的所述当前SIM卡的PLMN值写入系统属性;当确定所述当前SIM卡的PLMN值不在所述运营商应用程序列表中时,所述加载模块确定没有相应的应用程序可以加载。
[0013]其中,当确定所述当前SIM卡的PLMN值在所述运营商应用程序列表中时,所述判断模块还用于判断所述装置保存的SIM卡的PLMN值与所述当前SM卡的PLMN值是否相同;当确定所述装置保存的SIM卡的PLMN值与所述当前SIM卡的PLMN值相同时,所述加载模块直接加载所述应用程序;当确定所述装置保存的SIM卡的PLMN值与所述当前SIM卡的PLMN值不同时,所述第二获取模块将所述第一获取模块获取的所述当前SIM卡的PLMN值写入系统属性。
[0014]其中,所述装置还包括信息保存模块,当所述判断模块确定所述装置保存的SIM卡的PLMN值与所述当前SIM卡的PLMN值不同时,所述信息保存模块在所述执行模块启动所述应用程序后保存所述当前SIM卡的PLMN值。
[0015]本发明提供的一种定制应用程序启动控制方法及装置,在进行系统初始化启动时获取当前SIM卡的PLMN值,并在启动操作系统时根据该当前SIM卡的PLMN值加载对应的应用程序,以及启动该应用程序。在系统初始化时获取SIM卡的PLMN值,并在操作系统启动后进行定制的应用程序的加载,可以避免重启手机加载定制APK的情况。
【附图说明】
[0016]图1为本发明一实施方式中的一种定制应用程序启动控制方法的流程示意图;
[0017]图2为本发明一实施方式中的根据当前SIM卡的PLMN值加载应用程序方法的流程不意图;
[0018]图3为本发明第一实施方式中的一种定制应用程序启动控制装置的结构示意图;
[0019]图4为本发明第二实施方式中的一种定制应用程序启动控制装置的结构示意图;
[0020]图5为本发明第三实施方式中的一种定制应用程序启动控制装置的结构示意图。
[0021]元件标号:
[0022]装置30、40、50
[0023]第一获取模块31、42、51
[0024]加载模块32、43、54
[0025]执行模块33、44、55
[0026]控制模块41、
[0027]Boot 程序410
[0028]Bootloader411
[0029]Kernel412
[0030]第二获取模块52
[0031]判断模块53
[0032]信息保存模块56
【具体实施方式】
[0033]为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合附图和实施例对本发明进行详细说明。
[0034]请参阅图1,为本发明一实施方式中的一种定制应用程序启动控制方法的流程示意图。该实施方式示出的定制应用程序启动控制方法包括如下步骤:
[0035]步骤S10,执行终端系统初始化启动,并获取该终端当前SM卡的公共陆地移动网络PLMN值。
[0036]其中,PLMN值包括移动国家号码MCC值和移动网号MNC值,能够表示SIM卡的状态以及所属运营商。
[0037]步骤S11,启动操作系统并根据该当前SIM卡的PLMN值加载对应的应用程序。
[0038]在本实施方式中,装置预先存储一运营商应用程序列表,根据当前SIM卡的PLMN值在该运营商应用程序列表中查找到匹配的应用程序,从而加载该应用程序。其中,该应用程序可以是运营商定制程序,例如,基于移动网络的音乐播放程序、基于联通网络的聊天软件等等。
[0039]步骤S12,启动该应用程序。
[0040]当系统完成初始化后,获取当前SIM卡的PLMN值,然后在操作系统启动时加载该SIM卡的PLMN值对应的应用程序,从而实现根据SIM卡的运营商在终端开机时安装加载相应定制的应用程序。
[0041]下面将以基于Linux操作平台的Android嵌入式操作系统为例对本发明进行说明。
[0042]第一步:启动Linux操作系统,具体地,通过bootloader引导加载程序加载并执行内核文件Kernel,启动操作系统。
[0043]第二步,启动System Server,读取系统属性值gsm.sim.ril.mcc.mnc以获取该终端当前SIM卡的MCC、MNC值,读取系统属性值r0.ssv.mccmnclist以得到终端本机存储的运营商应用程序列表,即mcc mnc列表。然后,判断当前SM卡的MCC、MNC值是否在指定的mcc mnc列表中:如果当前SIM卡的MCC、MNC值在本机有对应的值,则代表有对应资源可以加载;否则,则代表没有特殊的资源可以加载。
[0044]当确定当前SM卡的MCC、MNC值在本机有对应的值时,从/data/system/sim_status, xml中读取〈pre_mccmnc>〈/pre_mccmnc>标签下的内容,表示为上次手机中所使用的SM卡的MCC、MNC值。根据当前的SM卡的MCC、MNC值和上一次保存SM卡的MCC、MNC值判断SM卡是否有改变。应用启动时调用isAppNeedChange函数,确认是否需要重置定制化资源。应用调用appChangeComplete函数,保存SIM卡切换信息。
[0045]第三步:启动嵌入式操作Android操作系统以及启动定制的应用程序。
[0046]具体地,加载解析init.rc。其中,init过程需要创建系统文件夹并启动USB守护进程、Android Debug Bridge 守护进程、Debug 守护进程、ServiceManager 进程、Zygote 进程等。
[0047]Service manager启动,明确将哪些服务添加到service_list中,动作添加到act1n_list中。扫描/system/framework目录下的apk文件以确定所启用的应用程序,其中,/system/framework表示该目录下的文件都是系统库;/system/app表示该目录下是默认的系统应用;/vendor/app表示该目录下是厂商定制的应用。
[0048]第四步:运行package Manager,应用应用程序。
[0049]如上所述,在系统开机初始化后就读取SM卡的MCC、MNC值,通过系统属性值传递给系统Service,而系统Service和上层应用就通过Binder调用对应Manager的接口完成状态判断。然后,在系统开机后读取SIM的MCC、MNC值,通过平台提供的接口,重新修改ril的过程,把获取SIM卡的MCC、MNC值写入gsm.sim.ril.mcc.mnc属性值,以后续进行状态判断和应用程序加载。
[0050]请参阅图2,为本发明一实施方式中的根据当前SIM卡的PLMN值加载应用程序方法的流程示意图。该实施方式示出的根据当前SIM卡的PLMN值加载应用程序的方法包括如下步骤: