一种面向智能手表的Android应用重构方法

文档序号:9810294阅读:526来源:国知局
一种面向智能手表的Android应用重构方法
【技术领域】
[0001]本发明是一种面向智能手表的Android应用重构方法,利用程序分析与重构技术将针对智能手机开发的Android应用重构成适用于智能手表的应用,属于软件技术领域。
【背景技术】
[0002]《2015年中国智能手表行业发展现状与未来前景分析》显示:智能手表或将成为自iPad引领的平板电脑时代之后,消费电子领域出现的又一个具有划时代意义的产品。目前主流的智能手表有搭载Watch OS的Apple Watch、Android Wear系统的Gear、LG、Moto360等。以Android Wear为例,智能手表的应用仍然比较缺乏,多数Android应用不能够简单地移植,因为智能手表屏幕尺寸小,交互方式与手机不同,并且具有更紧密地与传感器结合的特点。
[0003]针对上述问题,最直接的解决方案是重新开发一个面向智能手表的全新App。开发者基于Google Android Wear的官方开发文档以及推荐的设计方式,使得应用可以针对智能手表的屏幕尺寸、操作方式和通讯方式,重新开发一个与原有智能手机应用对应的智能手表版本应用。虽然这种方式保证了应用的体验,但是也存在两方面问题:一方面,重新开发智能手表应用对于个人或中小型企业而言,开发成本和代价较大;另一方面,当需要修改应用内容时,必须同时修改Android版和Android Wear版两个不同的应用,这将会增大维护成本。
[0004]由此可见,尽管重新开发一个智能手表版本的应用会使用户得到最好的体验,但是开发成本、维护成本都较大。因此,如何将既有Android手机应用半自动地转为智能手表应用是一个值得研究的技术问题。

【发明内容】

[0005]本发明的目的是提供一种面向智能手表的Android应用重构方法。其核心思想为:在重构时为既有Android手机应用拥有者(以下简称开发者)提供半自动转化技术,将Android手机应用重构为面向智能手表的Android Wear应用。根据Google Android Wear官方网站的描述,一个Android Wear智能手表应用包括手机端MobiIe模块与手表端Wear模块。本方法通过将用户指定的功能从手机端迀移至Wear模块重新打包生成一个带有Wear模块的智能手表应用,达到快速开发节约成本的目的。
[0006]本发明的技术方案为:
[0007]一种面向智能手表的Android应用重构方法。具体的重构过程的步骤为:
[0008]I)应用结构自动调整。Android Wear应用在源码结构上相比于Android应用增加了运行于手表端的Wear模块(文件夹)。本方法是基于现有的Android应用源码的基础上进行重构的。首先通过Android Studiο工具打开现有的Android应用项目(假定为八_Project),新建一个空文件夹命名Mobile,将项目源文件都迀移到Mobile模块(文件夹)中,然后在该项目的根目录下用脚本调用AndroidStud1的新建模块功能,自动生成一个内容为空的Wear模块(文件夹),即仅仅包含一个空Activity的手表页面,编写脚本自动修改Wear模块src目录下的AndroidManif est.xml文件,添加对手表特性的支持(具体添加代码为〈uses-feature android:name = "android.hardware.type.watch〃/>),编写脚本修改build, gradle文件添加手表特有的依赖库文件(dependencies:com.google.android.support: wearable与com.google.android.gms:play-services-wearable);编写脚本复制一份原有的Android应用源码到Wear模块的src目录下。
[0009]2)应用编程接口(Applicat1n Programming Interface,API)的自动调整。本方法利用程序分析和重构,分析出复制到Wear模块的原有Android应用程序中对Android系统底层API的调用,将原有Android应用中的API替换为适用于手表Android Wear系统的API,对于部分手机系统独有特性的API则替换成远程方法调用(以蓝牙进行通信),通过调用运行于手机端的Mobile模块(文件夹)中的对应方法获取返回值。
[0010]3)应用界面布局的自动适配。现有常见的智能手表表盘有圆形与方形两种。本方法提供多种自动化适配方案供开发者选择。最简单的一种就是将整体页面布局按照手机与手表的对应比例进行缩小,虽然针对部分控件较少的应用此种方法已经足够,但是如果控件数目较多则可能导致页面某些控件太小影响操作及用户观感体验。因此本方法还提供了另外两种适配方案:列表式与卡片式。二者共同点在于首先识别出页面所有单元控件,例如列表、网格、段落、表格、图片、按钮等,对于每个单元控件缩小至符合手表屏幕宽度的尺寸,并提供一个默认的根据内容相关性进行单元控件重要性排序。列表式适配方案将适配好的单元控件按照顺序纵向排列成一个列表,生成总体的手表应用页面。卡片式适配方案是将单元控件卡片按照重要性层叠成卡片集。
[0011]4)应用参数值以及页面布局的手工调整。本方法以AndroidStud1插件形式支持以所见即所得的方式对应用参数值以及页面布局进行手工调整。在以上自动化API替换与页面布局适配中,转换的结果并一定能让开发者完全满意,例如API替换后参数个数变化,参数值的调整,页面自动化适配时控件识别错误,开发者希望更换适配方案等等。在手动调整的阶段,开发者可以修改程序中用到的值包括values.xml以及上述步骤的API替换中涉及的参数,使得界面转换更加适合智能手表的屏幕;也可以手动更换页面布局的适配方案,并就适配方案的细节在单元控件的粒度上进行顺序的调整。
[0012]与现有技术相比,本发明的积极效果为:
[0013]本发明通过半自动地完成将Android应用重构成面向智能手表的应用,同时保证了较高的转换质量和转换效率,降低了智能手表应用的开发维护成本。
【附图说明】
[0014]图1为本发明的方法流程图;
[0015]图2为2048游戏应用页面图
[0016](a)手机应用页面,(b)智能手表应用页面。
【具体实施方式】
[0017]本节以一个流行的An dr ο id应用 “2 O 48 游戏” (https: //gi thub.com/pi ter /Android2048Game Lesson)为例进行面向智能手表的应用重构,其处理方法流程如图1所示。2048游戏是一款益智游戏,初始页面有16个格子,其中有两个格子上安放了两个数字2,其操作规则是每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢外,系统也会在空白的地方随机出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。不断的叠加最终拼凑出2048这个数字就算成功。
[0018]首先,对Android游戏2048的源码结构进行自动化调整,增加空Activity的Wear模块,修改AndroidManifest.xml文件添加对手表特性的支持(〈uses-feature android:name= //android.hardware.type.watch///>)以及添加依赖库文件(com.google.android.support:wearable与com.google.android.gms:play-services-wearable)。
[0019]之后将原有Android应用中的自定义布局文件layout以及与布局文件相关的功能函数从Mobile文件夹迀移到Wear模块,借助程序分析手段,分析出应用中的调用Android系统底层的API,然后进行AP I的替换,例如,将Notifi cat 1n.Bui Ider替换为Notificat1nCompat.Builder;对于部分手机系统独有特性的API则替换成远程方法调用(以蓝牙进行通信),通过调用Mob i I e文件夹中的对应方法获取返回值。
[0020]接下来进行页面的适配,本例将自定义layout与textView控件按照顺序排列,各个控件都进行按照手机对手表的比例进行缩小。由于2048每个方块的宽高信息是硬编码在代码之中,因此需要手工调整以适应手表屏幕大小。此外,手表默认的滑动退出必须禁用,否则会与游戏操作中的滑动冲突,这个需要修改styles, xml文件,添加〈item name ="android:window SwipeToDismiss〃>false〈/item〉。退出操作可以通过长按实现,只需要对layout文件添加一个长按回调函数执行退出即可。
[0021 ] 最后,将Mobile模块与Wear模块一起编译打包生成一个适用于搭载Android Wear系统的智能手表的APK文件,重构后的应用也放置在gi thub上(https: / / github.com/ymifa/jike_wear2048),附图2是2048游戏在手机与手表上的截图。
【主权项】
1.一种面向智能手表的Android应用重构方法,其步骤为: 1)对于一设定的Android应用,仓Li建一空文件夹Mobile,将该Android应用的源文件都迀移到该Mobile文件夹中,然后在该Android应用的根目录下生成一Wear模块; 2)在该Wear模块中添加支持手表特性的代码,以及添加手表的依赖库文件;并将该Android应用源码复制到该Wear模块中; 3)将复制到该Wear模块中的Andrοid应用源码中的API替换为适用于手表Andro idWear系统的API; 4)将该Android应用的整体页面布局按照手机与手表的对应比例进行缩小;或者先识别出该Android应用的页面中所有单元控件,然后将每个单元控件缩小至符合手表屏幕宽度的尺寸,并对单元控件重要性排序。2.如权利要求1所述的方法,其特征在于,所述步骤2)中,对于该Android应用源码中无法替换为适用于手表Android Wear系统中API的API,则通过调用该Mobile文件夹中对应方法获取返回值替换该API。3.如权利要求1或2所述的方法,其特征在于,采用列表式或卡片式对排序后的单元控件进行展示。4.如权利要求3所述的方法,其特征在于,以AndroidStud1插件形式支持以所见即所得的方式对该Android应用的整体页面布局的应用参数值以及页面布局进行手工调整。5.如权利要求1或2所述的方法,其特征在于,所述根据内容相关性对单元控件进行重要性排序。6.如权利要求1或2所述的方法,其特征在于,通过AndroidStudiο工具打开该设定的Android应用,创建一文件夹Mobile。
【专利摘要】本发明公开了一种面向智能手表的Android应用重构方法。本方法为:1)对于一设定的Android应用,创建一空文件夹Mobile,将该应用的源文件都迁移到该Mobile文件夹中,然后在该应用的根目录下生成一Wear模块;2)在该Wear模块中添加支持手表特性的代码,以及添加手表的依赖库文件;并将该应用源码复制到该Wear模块中;3)将Wear模块中的API替换为手表应用的API;4)将该应用的整体页面布局按照手机与手表的对应比例进行缩小;或者先识别出该应用的页面中所有单元控件,然后将每个单元控件缩小至符合手表屏幕宽度的尺寸,并对单元控件重要性排序。本方法降低了智能手表应用的开发维护成本。
【IPC分类】G06F9/44
【公开号】CN105573764
【申请号】CN201510983203
【发明人】黄罡, 刘譞哲, 余美华, 马郓, 柳熠, 徐梦炜
【申请人】北京大学
【公开日】2016年5月11日
【申请日】2015年12月24日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1