一种Android原生和QT混合开发的实现方法和系统技术方案

技术编号:28672435 阅读:20 留言:0更新日期:2021-06-02 02:48
本发明专利技术提供一种Android原生和QT混合开发的实现方法和系统。该方法包括:步骤1:预先确定在同一个Activity中显示QT界面和Android原生界面的尺寸以及位置关系;步骤2:在创建应用的Activity时,基于所述尺寸以及位置关系自定义设置布局文件,并将整体布局Layout分为QT界面所属的子布局Layout和其他子布局Layout;步骤3:在QT初始化过程中,基于Android系统环境创建Surface,将创建的Surface附加到QT界面所属的子布局Layout上;步骤4:通过QT框架开发至少一个QT界面,并将至少一个QT界面显示到Surface上;通过Android原生开发框架开发至少一个Activity,并将QT的Surface关联到至少一个所述Activity对应的QT界面所属的子布局Layout上。本发明专利技术能够将QT界面和Android原生界面显示在同一个Activity上,实现画面融合。

【技术实现步骤摘要】
一种Android原生和QT混合开发的实现方法和系统
本专利技术涉及应用程序开发
,尤其涉及一种Android原生和QT混合开发的实现方法和系统。
技术介绍
随着汽车的发展,QT在车载系统领域应用地越来越广泛,主要应用在汽车仪表、信息娱乐系统、后排娱乐系统等应用开发中,QT在开发3D应用方面相比Android原生开发具有一定的优势;而Android原生开发适用性更为广泛,很多第三方库都只提供Android原生开发的库;如果在应用开发中,将两者结合使用,各自完成不同的功能,不仅能提高开发效率,而且结合QT在3D方面的优势能实现更多酷炫的效果。现有的QT本身是跨平台的,可以移植到Android平台,并且在应用开发中允许扩展Activity、Service等组件,也支持QT应用和Android组件进行交互;但同一个Activity只能全部显示QT开发的界面(简称:QT界面)或者全部显示Android原生开发的界面(简称:Android原生界面);这很大程度上限制了两者结合的灵活性和应用场景,如在汽车领域,屏幕上需要展示QT开发的车辆3D界面和Android原生开发的地图导航信息;对于现有的QT开发来说,无法在一个屏幕上同时显示地图信息与3D车辆信息,无法实现信息的融合;需要通过用户去操作,在两者之间进行切换显示(如图1所示);这在一定程度上增加了驾驶风险。
技术实现思路
针对现有的QT开发存在的无法同屏显示QT界面和Android原生界面的问题,本专利技术提供一种Android原生和QT混合开发的实现方法和系统。一方面,本专利技术提供一种Android原生和QT混合开发的实现方法,包括:步骤1:预先确定在同一个Activity中显示QT界面和Android原生界面的尺寸以及位置关系;步骤2:在创建应用的Activity时,基于所述尺寸以及位置关系自定义设置布局文件,并将整体布局Layout分为QT界面所属的子布局Layout和其他子布局Layout;步骤3:在QT初始化过程中,基于Android系统环境创建Surface,将创建的Surface附加到QT界面所属的子布局Layout上;步骤4:通过QT框架开发至少一个QT界面,并将至少一个QT界面显示到Surface上;通过Android原生开发框架开发至少一个Activity,并将QT的Surface关联到至少一个所述Activity对应的QT界面所属的子布局Layout上。进一步地,在所述步骤2之后,还包括:修改所述布局文件,自定义QT界面和Android原生界面的位置关系和尺寸。进一步地,所述自定义QT界面和Android原生界面的位置关系和尺寸具体包括:将QT界面和Android原生界面自定义为上下布局模式、左右布局模式、或者QT界面覆盖Android原生界面布局模式。进一步地,所述应用的整体布局Layout由Android窗口管理系统管理,QT界面作为子布局Layout显示到Surface上,并由QT窗口管理系统管理QT界面内部的窗口和控件显示。进一步地,在所述步骤4之后,还包括:当启动所述应用时,首先在Android原生开发框架侧启动所述应用对应的Activity;加载所述Activity对应的布局文件,并启动QT框架;在QT框架侧,初始化QT窗口管理系统;由QT框架基于Android系统环境创建Surface;获取QT界面所属的子布局Layout;将创建的Surface附加到QT界面所属的子布局Layout上;将QT界面显示到Surface上,同时将Android原生界面显示到其他子布局Layout上,以实现QT界面和Android原生界面的同屏显示。进一步地,所述QT界面用于显示3D车辆信息,所述Android原生界面用于显示地图导航信息。另一方面,本专利技术还提供一种Android原生和QT混合开发的实现系统,包括:Android原生开发框架和QT框架;所述Android原生开发框架,用于创建应用的至少一个Activity,并基于同一个Activity中显示QT界面和Android原生界面的尺寸以及位置关系自定义设置布局文件,并将整体布局Layout分为QT界面所属的子布局Layout和其他子布局Layout;以及将QT的Surface关联到至少一个所述Activity对应的QT界面所属的子布局Layout上;所述QT框架,用于基于Android系统环境创建Surface,将创建的Surface附加到QT界面所属的子布局Layout上;以及用于开发至少一个QT界面,并将至少一个所述QT界面显示到Surface上。进一步地,所述应用的整体布局Layout由Android窗口管理系统管理,QT界面作为子布局Layout显示到surface上,并由QT窗口管理系统管理QT界面内部的窗口和控件显示。本专利技术的有益效果:本专利技术通过修改QT框架上层流程,在QT创建Surface时,将创建的Surface附加到指定给QT的Layout上,指定给QT的Layout作为Activity整体布局的子Layout,以此实现QT开发的界面和Android原生开发的界面显示在同一个Activity上,实现画面融合。另外,本专利技术的QT界面和Android原生界面的位置关系和大小布局可以任意组合,具体可以自定义为但不限于上下、左右、或者QT覆盖Android等布局方式,进一步实现画面融合的多样性,满足不同用户的视觉体验。附图说明图1为现有技术实现的Android与QT混合开发效果图;图2为本专利技术实施例提供一种Android原生和QT混合开发的实现方法的流程示意图;图3为本专利技术实施例提供的布局示意图;图4为本专利技术实施例提供的同一个Activity中的QT界面和Android原生界面的同屏显示效果图;图5为本专利技术实施例提供的Android原生和QT混合开发的Activity启动流程示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图2和图3所示,本专利技术实施例提出一种Android原生和QT混合开发的实现方法,所述方法包括以下步骤:S101:预先确定在同一个Activity中显示QT界面和Android原生界面的尺寸以及位置关系;具体地,Activity作为Android的四大组件之一,Activity是一个应用程序的组件,它在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作,比如打电话、照相、发送邮件、或者显示一个地图。Activity可以理本文档来自技高网...

【技术保护点】
1.一种Android原生和QT混合开发的实现方法,其特征在于,包括:/n步骤1:预先确定在同一个Activity中显示QT界面和Android原生界面的尺寸以及位置关系;/n步骤2:在创建应用的Activity时,基于所述尺寸以及位置关系自定义设置布局文件,并将整体布局Layout分为QT界面所属的子布局Layout和其他子布局Layout;/n步骤3:在QT初始化过程中,基于Android系统环境创建Surface,将创建的Surface附加到QT界面所属的子布局Layout上;/n步骤4:通过QT框架开发至少一个QT界面,并将至少一个QT界面显示到Surface上;通过Android原生开发框架开发至少一个Activity,并将QT的Surface关联到至少一个所述Activity对应的QT界面所属的子布局Layout上。/n

【技术特征摘要】
1.一种Android原生和QT混合开发的实现方法,其特征在于,包括:
步骤1:预先确定在同一个Activity中显示QT界面和Android原生界面的尺寸以及位置关系;
步骤2:在创建应用的Activity时,基于所述尺寸以及位置关系自定义设置布局文件,并将整体布局Layout分为QT界面所属的子布局Layout和其他子布局Layout;
步骤3:在QT初始化过程中,基于Android系统环境创建Surface,将创建的Surface附加到QT界面所属的子布局Layout上;
步骤4:通过QT框架开发至少一个QT界面,并将至少一个QT界面显示到Surface上;通过Android原生开发框架开发至少一个Activity,并将QT的Surface关联到至少一个所述Activity对应的QT界面所属的子布局Layout上。


2.根据权利要求1所述的方法,其特征在于,在所述步骤2之后,还包括:
修改所述布局文件,自定义QT界面和Android原生界面的位置关系和尺寸。


3.根据权利要求2所述的方法,其特征在于,所述自定义QT界面和Android原生界面的位置关系和尺寸具体包括:
将QT界面和Android原生界面自定义为上下布局模式、左右布局模式、或者QT界面覆盖Android原生界面布局模式。


4.根据权利要求1所述的方法,其特征在于,所述应用的整体布局Layout由Android窗口管理系统管理,QT界面作为子布局Layout显示到Surface上,并由QT窗口管理系统管理QT界面内部的窗口和控件显示。


5.根据权利要求1所述的方法,其特征在于,在所述步骤4之后,还包括:
当启动所述应用时,首先在Android原生开发框架侧启...

【专利技术属性】
技术研发人员:谭帅郭卫斌马骥王佳王超王平
申请(专利权)人:郑州信大捷安信息技术股份有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1