《一种将应用程序装载到安卓手机上的方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种将应用程序装载到安卓手机上的方法及系统.pdf(9页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102331940A43申请公布日20120125CN102331940ACN102331940A21申请号201110172858222申请日20110624G06F9/445200601H04M1/72520060171申请人浙大网新科技股份有限公司地址310030浙江省杭州市三墩西园八路1号浙大网新软件园A楼15层72发明人毛德操王承志徐鼎鼎陈天洲吴斌斌74专利代理机构杭州宇信知识产权代理事务所普通合伙33231代理人张宇娟54发明名称一种将应用程序装载到安卓手机上的方法及系统57摘要本发明涉及一种将应用程序装载到安卓手机上的方法及系统。该方法包括步骤1,判断应用程序二。
2、进制映像的装载地址是否处于冲突范围;如果是,执行步骤2,否则中间件将应用程序二进制映像装载到安卓手机上;步骤2,修改应用程序二进制映像的基地址以避开冲突范围,中间件根据修改后的应用程序二进制映像的基地址将应用程序二进制映像装载到安卓手机上;其中,所述应用程序不是基于安卓操作系统的应用程序。本发明解决了在ANDROID手机上通过WINE应用程序运行WINCE二进制映像时装载失败的问题。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书5页附图2页CN102331953A1/1页21一种将应用程序装载到安卓手机上的方法,其特征在于,包括步骤1,判断应用程序二进制映像。
3、的装载地址是否处于冲突范围;如果是,执行步骤2,否则中间件将应用程序二进制映像装载到安卓手机上;步骤2,修改应用程序二进制映像的基地址以避开冲突范围,中间件根据修改后的应用程序二进制映像的基地址将应用程序二进制映像装载到安卓手机上;其中,所述应用程序不是基于安卓操作系统的应用程序。2权利要求1所述的方法,其特征在于,所述应用程序为基于WINCE操作系统或者WINDOWSMOBILE操作系统的应用程序;所述中间件为WINE应用程序。3权利要求2所述的方法,其特征在于,步骤1中,应用程序二进制映像的基地址大于或等于0X110000,并且基地址没有被占用时,应用程序二进制映像的装载地址不处于冲突范围。
4、,否则应用程序二进制映像的装载地址处于冲突范围。4权利要求2所述的方法,其特征在于,步骤3中,通过WINE应用程序中的MAP_VIEW函数修改应用程序二进制映像的基地址;MAP_VIEW函数的第二个传入参数为NULL。5权利要求2所述的方法,其特征在于,该方法还包括步骤3,将WINESERVER生成的WINEPTHREAD的映射地址设置为0X80000000。6一种将应用程序装载到安卓手机上的系统,其特征在于,包括冲突判定模块,用于判断应用程序二进制映像的装载地址是否处于冲突范围;地址修改模块,用于在应用程序二进制映像的装载地址处于冲突范围时,修改应用程序二进制映像的基地址以避开冲突范围;中间。
5、件,用于在应用程序二进制映像的装载地址未处于冲突范围时,根据应用程序二进制映像的该装载地址将应用程序二进制映像装载到安卓手机上;或者根据修改后的应用程序二进制映像的基地址将应用程序二进制映像装载到安卓手机上;其中,所述应用程序不是基于安卓操作系统的应用程序。7如权利要求6所述的系统,其特征在于,所述应用程序为基于WINCE操作系统或者WINDOWSMOBILE操作系统的应用程序;所述中间件为WINE应用程序。8如权利要求7所述的系统,其特征在于,在应用程序二进制映像的基地址大于或等于0X110000,并且基地址没有被占用时,应用程序二进制映像的装载地址不处于冲突范围,否则应用程序二进制映像的装。
6、载地址处于冲突范围。9如权利要求7所述的系统,其特征在于,WINE应用程序中的MAP_VIEW函数修改应用程序二进制映像的基地址;MAP_VIEW函数的第二个传入参数为NULL。10如权利要求7所述的系统,其特征在于,地址修改模块,还用于将WINESERVER生成的WINEPTHREAD的映射地址设置为0X80000000。权利要求书CN102331940ACN102331953A1/5页3一种将应用程序装载到安卓手机上的方法及系统技术领域0001本发明涉及移动通信领域,尤其涉及一种将应用程序装载到安卓手机上的方法及系统。背景技术0002以手机为代表的智能化移动终端设备既是计算机技术的一个重要。
7、发展方向,又是一个竞争十分激烈的市场。自从谷歌公司和开放手机联盟推出安卓ANDROID操作系统和基于ANDROID操作系统的手机以来,很快就在世界手机市场上占有了不小的份额,各种ANDROID手机层出不穷。0003所谓ANDROID操作系统,实际上是对LINUX操作系统的一种改编和扩充,它的内核基本上就是LINUX的内核,但是在用户空间却专门针对手机和移动终端设备的特点作了大幅的改进和增强,这些改动大都与编程模式和图形界面,即图形化用户界面GUI有关。图1显示了WINCE和LINUX操作系统的内存格局。0004为了让现有的WINCE应用程序在ANDROID手机上运行,需要利用经过移植的WINE。
8、应用程序来执行WINCE应用程序。但WINE应用程序最初是针对桌面WINDOWS操作系统开发的,在ANDROID手机上通过WINE应用程序来运行WINCE的应用程序存在以下问题0005首先,与桌面WINDOWS应用程序不同,WINCE应用程序不存在兼容16位应用程序的问题,无需保留最低的DOS空间,因此WINCE的应用程序的开发环境往往把可执行应用程序映像装载地址定得很低,例如0X10000,而又不提供重定位信息;而WINE应用程序却保留了用户空间地址最低端的0X110000,即17个64KB的空间不让使用。因此在WINCE的应用程序通过WINE装载的时候,会出现装载失败的问题。0006其次,。
9、为了执行WINCE的应用程序,WINESERVER会生成WINEPTHREAD,WINEPTHREAD与WINCE目标映像属于同一个地址空间,因此可能形成冲突。发明内容0007为了解决上述的技术问题,提供了一种将应用程序装载到安卓手机上的方法及系统,其目的在于,解决了在ANDROID手机上通过WINE应用程序运行WINCE二进制映像时装载失败的问题。0008本发明提供了一种将应用程序装载到安卓手机上的方法,包括0009步骤1,判断应用程序二进制映像的装载地址是否处于冲突范围;如果是,执行步骤2,否则中间件将应用程序二进制映像装载到安卓手机上;0010步骤2,修改应用程序二进制映像的基地址以避开。
10、冲突范围,中间件根据修改后的应用程序二进制映像的基地址将应用程序二进制映像装载到安卓手机上;0011其中,所述应用程序不是基于安卓操作系统的应用程序。0012在一个示例中,所述应用程序为基于WINCE操作系统或者WINDOWSMOBILE操作系统的应用程序;所述中间件为WINE应用程序。说明书CN102331940ACN102331953A2/5页40013在一个示例中,步骤1中,应用程序二进制映像的基地址大于或等于0X110000,并且基地址没有被占用时,应用程序二进制映像的装载地址不处于冲突范围,否则应用程序二进制映像的装载地址处于冲突范围。0014在一个示例中,步骤3中,通过WINE应用。
11、程序中的MAP_VIEW函数修改应用程序二进制映像的基地址;MAP_VIEW函数的第二个传入参数为NULL。0015在一个示例中,该方法还包括步骤4,将WINESERVER生成的WINEPTHREAD的映射地址设置为0X80000000。0016本发明提供了一种将应用程序装载到安卓手机上的系统,包括0017冲突判定模块,用于判断应用程序二进制映像的装载地址是否处于冲突范围;0018地址修改模块,用于在应用程序二进制映像的装载地址处于冲突范围时,修改应用程序二进制映像的基地址以避开冲突范围;0019中间件,用于在应用程序二进制映像的装载地址未处于冲突范围时,根据应用程序二进制映像的该装载地址将应。
12、用程序二进制映像装载到安卓手机上;或者根据修改后的应用程序二进制映像的基地址将应用程序二进制映像装载到安卓手机上;0020其中,所述应用程序不是基于安卓操作系统的应用程序。0021在一个示例中,所述应用程序为基于WINCE操作系统或者WINDOWSMOBILE操作系统的应用程序;所述中间件为WINE应用程序。0022在一个示例中,在应用程序二进制映像的基地址大于或等于0X110000,并且基地址没有被占用时,应用程序二进制映像的装载地址不处于冲突范围,否则应用程序二进制映像的装载地址处于冲突范围。0023在一个示例中,WINE应用程序中的MAP_VIEW函数修改应用程序二进制映像的基地址;MA。
13、P_VIEW函数的第二个传入参数为NULL。0024在一个示例中,地址修改模块,还用于将WINESERVER生成的WINEPTHREAD的映射地址设置为0X80000000。0025本发明解决了在ANDROID手机上通过WINE应用程序运行WINCE二进制映像时装载失败的问题;无需对手机的操作系统进行修改;映射地址的冲突检测和重映射的过程对用户完全透明。附图说明0026图1是WINCE和LINUX操作系统的内存格局;0027图2是WINCE应用程序二进制映像在ANDROID手机上重定向装载的流程图。具体实施方式0028本发明针对在ANDROID手机上通过WINE来运行WINCE应用程序产生的地。
14、址空间冲突的问题,设计了一种将WINCE二进制映像在ANDROID手机上装载的技术方案,在WINCE应用程序二进制映像不提供重定位信息的情况下,不需进行ANDROID手机系统内核的修改,顺利解决WINCE应用程序在ANDROID手机上通过WINE应用程序装载出现失败的问题。0029本发明提供的将应用程序装载到ANDROID手机上的流程如图2所示,包括0030步骤201,WINE装载WINCE二进制应用程序映像入口;说明书CN102331940ACN102331953A3/5页50031步骤202,WINCE应用程序二进制映像装载初始化;0032步骤203,如果判断基BASE地址是否大于或等于0。
15、X110000,如果是,执行步骤204,否则执行步骤206;0033步骤204,进行映像地址分配;0034步骤205,判断是否分配成功,如果是,执行步骤207,否则执行步骤206;0035步骤206,进行映像装载地址重定向,具体为在WINE应用程序源代码中的DLLSNTDLLVIRTUALC中的MAP_IMAGE函数中,如果判断映像装载地址与现有的内存空间使用情况冲突,则利用MAP_VIEW函数进行映像装载地址重定向,其中于进行重定向的关键是将MAP_VIEW函数的第二个传入参数设定为NULL,则MAP_VIEW函数会根据进程的内存空间的实际使用情况,寻找未被使用的地址空间,分配给映像作为映像。
16、装载的地址空间;0036步骤207,装载二进制映像。0037为了实现上述流程,需要对WINE应用程序的源代码进行修改00381、修改WINE源代码DLLSNTDLLVIRTUALC中的MAP_IMAGE函数00390040说明书CN102331940ACN102331953A4/5页600412、在函数MMAP_INIT中,增加条件编译0042IFDEFINED_DOS_RESERVE_00430044ENDIF0045上述条件编译模块只在_DOS_RESERVE_被定义时,才被编译,而在编译ANDROID手机上运行的WINE应用程序时,该变量未被定义,所以该模块不会被编译。00460047说。
17、明书CN102331940ACN102331953A5/5页700483、将WINEPTHREAD定位在0X80000000的地址范围0049增加一个连接脚本LOADSCRIPTLOADER/WINELDS,其中关键性的代码为00500051虽然本发明主要的目的在于WINCE二进制映像在ANDROID手机上重定向装载的方法,但实际上也适用于WINDOWSMOBILE二进制映像在ANDROID手机上的重定向装载。0052本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。说明书CN102331940ACN102331953A1/2页8图1说明书附图CN102331940ACN102331953A2/2页9图2说明书附图CN102331940A。