android 动态切换布局,基于Android平台的应用布局动态切换方法及系统的制作方法...

基于Android平台的应用布局动态切换方法及系统的制作方法

【技术领域】

[0001]本发明涉及Android应用开发技术领域,尤其涉及基于Android平台的应用布局动态切换方法及系统。

【背景技术】

[0002]为了更好地管理Android应用的用户界面里面的各个控件,Android提供了布局管理器,使各个控件能在不同的设备的屏幕上都能运行良好,现在Android共有线性布局(Linear Layout)、表格布局(Table Layout)、帧布局(Frame Layout)、相对布局(Relative Layout)和绝对布局(Absolute Layout) 5 种布局。

[0003]但是上述5种布局方式都是预先通过代码或者在软件发行包APK (AndroidPackage,即Android安装包)的Layout目录下通过XML布局文件中定义好各个界面的布局方式然后通过代码引用显示,layout目录的内容在APK软件包发行后是无法修改的,也就是有多少个布局方式就要预先定义好多个布局文件,对于想要根据用户意愿来动态变动布局的情况在传统方式下是难以实现。布局确定以后如果发现在某种显示设备的显示界面效果不好或对布局效果不满意,只能是通过开发人员再次去修改相关的代码以适应之。

[0004]现有技术中有开发两套相同功能但不同布局的应用,来实现布局的切换,这个方法无疑增加开发者的工作。或者是通过建立远程平台,通过远程管理平台管理不同终端的布局,来实现布局的切换,这个方法除了增加开发者的工作外,还需要建立远程平台,增加成本。另外有时候需要开发针对不同屏幕尺寸的设备,比如手机与电视,由于分辨率不同,采用的布局文件不同,增加重复工作。总之,现有技术中的布局切换程序麻烦,成本高,给用户切换布局带来了不便。

[0005]因此,现有技术还有待于改进和发展。

【发明内容】

[0006]鉴于现有技术的不足,本发明目的在于提供一种基于Android平台的应用布局动态切换方法及系统,旨在解决现有技术中的当设备的分辨率不同时,要重新设计布局文件,布局文件切换不方便缺陷。

[0007]本发明的技术方案如下:

一种基于Android平台的应用布局动态切换方法,其中,方法包括:

A、根据需要切换布局的界面名称及切换后的布局名称查询数据库,获取需要切换布局的界面的Activity加载的布局;

B、判断需要切换布局的界面的Activity加载的布局与当前Activity加载的布局是否一致,如果不一致,则根据查询数据库的结果获取当前Activity加载的第一布局ID ;

C、获取终端分辨率,根据分辨率从云端下载与切换后的布局名称及与需要切换布局的界面的Activity名称一致的bundle布局文件; D、安装bundle布局文件,获取安装后的bundle布局文件对应的第二布局ID和bundle布局文件的符号名称和版本号;

E、卸载第一布局,更新数据库。

[0008]所述的基于Android平台的应用布局动态切换方法,其中,所述步骤A之前还包括:

51、根据系统接口获取设备分辨率及默认Activity名称;

52、终端根据分辨率与主Activity名称请求云端获取该Activity默认布局的bundle布局文件;

53、安装并启动默认Activity布局文件,并更新数据库。

[0009]所述的基于Android平台的应用布局动态切换方法,其中,所述步骤S1之前还包括:

S0、预先在云端针对同一分辨率生成不同风格的bundle布局文件并存储。

[0010]所述的基于Android平台的应用布局动态切换方法,其中,所述bundle布局文件生成具体包括:

S11、通过在xml文件中用相应的类下定义标签,根据类进行编码生成jar文件;

S21、在jar文件中加入特定元数据生成bundle布局文件。

[0011 ] 所述的基于Andro id平台的应用布局动态切换方法,其中,所述特定元数据包括可读信息、bundle识别信息和代码可见性信息。

[0012]一种基于Android平台的应用布局动态切换系统,其中,系统包括:

查询模块,用于根据需要切换布局的界面名称及切换后的布局名称查询数据库,获取需要切换布局的界面的Activity加载的布局;

判断与获取模块,用于判断需要切换布局的界面的Activity加载的布局与当前Activity加载的布局是否一致,如果不一致,则根据查询数据库的结果获取当前Activity加载的第一布局ID ;

下载模块,用于获取终端分辨率,根据分辨率从云端下载与切换后的布局名称及与需要切换布局的界面的Activity名称一致的bundle布局文件;

安装模块,用于安装bundle布局文件,获取安装后的bundle布局文件对应的第二布局ID和bundle布局文件的符号名称和版本号;

卸载与更新模块,用于卸载第一布局,更新数据库。

[0013]所述的基于Android平台的应用布局动态切换系统,其中,所述系统还包括:

分辨率获取模块,用于根据系统接口获取设备分辨率及默认Activity名称;

请求模块,用于终端根据分辨率与主Activity名称请求云端获取该Activity默认布局的bundle布局文件;

安装与更新模块,用于安装并启动默认Activity布局文件,并更新数据库。

[0014]所述的基于Android平台的应用布局动态切换系统,其中,所述系统还包括: 预先存储模块,用于预先在云端针对同一分辨率生成不同风格的bundle布局文件并存储。

[0015]所述的基于Android平台的应用布局动态切换系统,其中,所述系统还包括:

编码模块,用于通过在xml文件中用相应的类下定义标签,根据类进行编码生成jar文件;

bundle布局文件生成模块,用于在jar文件中加入特定元数据生成bundle布局文件。

[0016]所述的基于Andro id平台的应用布局动态切换系统,其中,所述特定元数据包括可读信息、bundle识别信息和代码可见性信息。

[0017]有益效果:本发明提供了一种基于Android平台的应用布局动态切换方法及系统,可实现同一应用可适应不同分辨率Android终端设备,针对同一 Android终端设备,提供各种布局供用户选择,并根据用户选择动态变换布局。

【附图说明】

[0018]图1为本发明的一种基于Android平台的应用布局动态切换方法的较佳实施例的流程图。

[0019]图2为本发明的一种基于Android平台的应用布局动态切换方法的具体应用实施例的应用初始化的细化步骤流程图。

[0020]图3为本发明的一种基于Android平台的应用布局动态切换方法的具体应用实施例的布局动态变换的细化步骤流程图。

[0021]图4为本发明的一种基于Android平台的应用布局动态切换系统的较佳实施例的功能原理框图。

【具体实施方式】

[0022]为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

[0023]本发明实施例中涉及0SG1、bundle布局文件等。因此对0SGI服务及bundle布局文件进行介绍。

[0024]0SGI (Open Service Gateway Initiative)是一种面向 JAVA 的动态模型系统,而0SGI服务平台由两部分组成:0SGI框架和0SGI标准服务。0SGI框架是实现并提供0SGI功能的运行环境,0SGI标准服务定义了很多用于执行常见任务的可重用API。0SGI框架和标准服务的规范由0SGI联盟管理。0SGI框架在创建基于0SGI的应用时起着核心作用,因为它是应用的执行环境。

[0025]0SGI联盟在0SGI框架规范中定义了框架的正确行为,这样就可以基于一个定义清晰的API进行编程。这个框架是依据0SGI规范中定义的三个概念层设计的:

模块层:关注于打包和共享代码。

[0026]生命周期层:关注于提供执行时模块管理和对底层0SGI框架的访问。

[0027]服务层:关注于模块,特别是模块内的组件间的交互和通信。

[0028]模块层定义了 0SGI模块的概念,并将之称为一个bundle。bundle是一个包含元数据(关于数据的数据)的jar文件,由类文件和相关资源组成。它是构成一个特定应用程序的多个逻辑模块。

[0029]生命周期层定义了在0SGI框架中是如何动态安装和管理来的。生命周期层定义了 bundle生命周期的操作(如安装、更新、启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值