应用程序生成方法、装置、云服务器及可读存储介质.pdf

上传人:磨** 文档编号:11086699 上传时间:2021-09-03 格式:PDF 页数:25 大小:680.78KB
收藏 版权申诉 举报 下载
应用程序生成方法、装置、云服务器及可读存储介质.pdf_第1页
第1页 / 共25页
应用程序生成方法、装置、云服务器及可读存储介质.pdf_第2页
第2页 / 共25页
应用程序生成方法、装置、云服务器及可读存储介质.pdf_第3页
第3页 / 共25页
文档描述:

《应用程序生成方法、装置、云服务器及可读存储介质.pdf》由会员分享,可在线阅读,更多相关《应用程序生成方法、装置、云服务器及可读存储介质.pdf(25页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910755119.2 (22)申请日 2019.08.15 (71)申请人 华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华 为总部办公楼 (72)发明人 郑博文安光霖王洋袁健 龙海涛林学森王刚 (74)专利代理机构 北京同立钧成知识产权代理 有限公司 11205 代理人 荣甜甜刘芳 (51)Int.Cl. G06F 11/34(2006.01) G06F 8/61(2018.01) G06F 8/41(2018.01) (54)发明名称 应用程序生成方法、。

2、 装置、 云服务器及可读 存储介质 (57)摘要 本申请实施例提供一种应用程序生成方法、 装置、 云服务器及可读存储介质, 用该包括: 执行 测试用例, 所述测试用例用于触发第一目标应用 在第一终端设备上执行, 所述执行为启动和/或 运行, 并获取所述第一目标应用执行中的热点对 象的信息, 进而, 根据所述第一目标应用执行中 的热点对象的信息, 生成第二目标应用, 所述第 二目标应用中包括所述第一目标应用执行中的 热点对象的信息。 该方法能够使得第二目标APP 在安装之后首次启动和运行时性能即可极大提 升, 而无需等到运行一段时间后才可以实现性能 提升。 因此, 使得APP性能提升的效果有了极。

3、大改 善, 用户体验可以得到极大提升。 权利要求书3页 说明书16页 附图5页 CN 110659189 A 2020.01.07 CN 110659189 A 1.一种应用程序生成方法, 其特征在于, 包括: 执行测试用例, 所述测试用例用于触发第一目标应用在第一终端设备上执行, 所述执 行为启动和/或运行; 获取所述第一目标应用执行中的热点对象的信息; 根据所述第一目标应用执行中的热点对象的信息, 生成第二目标应用, 所述第二目标 应用中包括所述第一目标应用执行中的热点对象的信息。 2.根据权利要求1所述的方法, 其特征在于, 所述获取所述第一目标应用执行中的热点 对象的信息, 包括: 从。

4、第一终端设备获取所述第一目标应用执行中的热点对象的信息, 所述第一终端设备 用于在所述第一目标应用执行时采集所述热点对象的信息。 3.根据权利要求1或2所述的方法, 其特征在于, 所述测试用例用于对所述第一目标应 用进行兼容性测试, 和/或, 所述测试用例用于对所述第一目标应用进行目标功能模块对应 的测试, 所述目标功能模块为所述第一目标应用中用户使用频率大于第三预设频率的功能 模块。 4.根据权利要求1-3任一项所述的方法, 其特征在于, 所述方法还包括: 接收多个第二终端设备上报的所述第二目标应用执行中的热点对象的信息; 根据所述第二目标应用执行中的热点对象的信息, 生成第三目标应用, 所。

5、述第三目标 应用中包括所述第二目标应用执行中的热点对象的信息。 5.根据权利要求4所述的方法, 其特征在于, 所述根据所述第二目标应用执行中的热点 对象的信息, 生成第三目标应用, 包括: 根据所述第二目标应用执行中的热点对象的信息, 以及所述第一目标应用执行中的热 点对象的信息, 生成所述第三目标应用。 6.根据权利要求5所述的方法, 其特征在于, 所述根据所述第二目标应用启动和运行中 的热点对象的信息, 以及所述第一目标应用执行中的热点对象的信息, 生成所述第三目标 应用, 包括: 统计所述多个第二终端设备以及所述第一终端设备中上报第一热点对象的信息的终 端设备的数量; 若所述多个第二终端。

6、设备以及所述第一终端设备中上报第一热点对象的信息的终端 设备的数量大于第二预设阈值, 则将所述第一热点对象作为所述第三目标应用中的一个热 点对象。 7.根据权利要求1-6任一项所述的方法, 其特征在于, 所述热点对象为在应用执行中被 调用次数大于第一预设阈值的对象, 所述热点对象包括: 类、 方法、 函数、 字段中的至少一 种。 8.根据权利要求1-7任一项所述的方法, 其特征在于, 所述热点对象的信息包括: 热点 对象的标识、 热点对象的类型、 热点对象是否属于被类初始化方法调用的对象。 9.根据权利要求1-8任一项所述的方法, 其特征在于, 类型相同的所述热点对象的信息 有序存储于同一分区。

7、中, 所述分区为安装应用的终端设备中的存储区域。 10.一种应用程序生成装置, 其特征在于, 包括: 处理模块; 所述处理模块, 用于执行测试用例, 所述测试用例用于触发第一目标应用在第一终端 权利要求书 1/3 页 2 CN 110659189 A 2 设备上执行, 所述执行为启动和/或运行; 以及, 获取所述第一目标应用执行中的热点对象的信息; 以及, 根据所述第一目标应用执行中的热点对象的信息, 生成第二目标应用, 所述第二目标 应用中包括所述第一目标应用执行中的热点对象的信息。 11.根据权利要求10所述的装置, 其特征在于, 所述处理模块具体用于: 从第一终端设备获取所述第一目标应用。

8、执行中的热点对象的信息, 所述第一终端设备 用于在所述第一目标应用执行时采集所述热点对象的信息。 12.根据权利要求10或11所述的装置, 其特征在于, 所述测试用例用于对所述第一目标 应用进行兼容性测试, 和/或, 所述测试用例用于对所述第一目标应用进行目标功能模块对 应的测试, 所述目标功能模块为所述第一目标应用中用户使用频率大于第三预设频率的功 能模块。 13.根据权利要求10-12任一项所述的装置, 其特征在于, 所述装置还包括: 接收模块; 所述接收模块, 用于接收多个第二终端设备上报的所述第二目标应用执行中的热点对 象的信息; 所述处理模块, 还用于根据所述第二目标应用执行中的热点。

9、对象的信息, 生成第三目 标应用, 所述第三目标应用中包括所述第二目标应用执行中的热点对象的信息。 14.根据权利要求13所述的装置, 其特征在于, 所述处理模块具体用于: 根据所述第二目标应用执行中的热点对象的信息, 以及所述第一目标应用执行中的热 点对象的信息, 生成所述第三目标应用。 15.根据权利要求14所述的装置, 其特征在于, 所述处理模块具体用于: 统计所述多个第二终端设备以及所述第一终端设备中上报第一热点对象的信息的终 端设备的数量; 以及, 在所述多个第二终端设备以及所述第一终端设备中上报第一热点对 象的信息的终端设备的数量大于第二预设阈值时, 将所述第一热点对象作为所述第三。

10、目标 应用中的一个热点对象。 16.根据权利要求10-15任一项所述的装置, 其特征在于, 所述热点对象为在应用执行 中被调用次数大于第一预设阈值的对象, 所述热点对象包括: 类、 方法、 函数、 字段中的至少 一种。 17.根据权利要求10-16任一项所述的装置, 其特征在于, 所述热点对象的信息包括: 热 点对象的标识、 热点对象的类型、 热点对象是否属于被类初始化方法调用的对象。 18.根据权利要求10-17任一项所述的装置, 其特征在于, 类型相同的所述热点对象的 信息有序存储于同一分区中, 所述分区为安装应用的终端设备中的存储区域。 19.一种云服务器, 其特征在于, 包括: 存储器。

11、和处理器; 所述处理器用于与所述存储器耦合, 读取并执行所述存储器中的指令, 以实现权利要 求1-9任一项所述的方法步骤。 20.一种计算机程序产品, 其特征在于, 所述计算机程序产品包括计算机程序代码, 当 所述计算机程序代码被计算机执行时, 使得所述计算机执行权利要求1-9任一项所述的方 法。 21.一种计算机可读存储介质, 其特征在于, 所述计算机存储介质存储有计算机指令, 当所述计算机指令被计算机执行时, 使得所述计算机执行权利要求1-9任一项所述的方法 权利要求书 2/3 页 3 CN 110659189 A 3 的指令。 权利要求书 3/3 页 4 CN 110659189 A 4。

12、 应用程序生成方法、 装置、 云服务器及可读存储介质 技术领域 0001 本申请实施例涉及智能终端技术, 尤其涉及一种应用程序生成方法、 装置、 云服务 器及可读存储介质。 背景技术 0002 随着移动互联网技术以及手机等终端设备的不断发展, 利用终端设备使用移动互 联网的各种服务, 成为越来越多用户首选。 其中, 用户对于终端设备的评价结果是衡量用户 使用体验的重要指标。 用户对于终端设备的评价结果可以包括多种评价维度的评价结果, 评价维度可以包括外观、 应用程序(application, APP)的性能、 拍照能力、 屏幕显示效果等。 其中, 性能是一个重要的评价维度。 APP的性能可以包。

13、括APP的冷启动性能、 高频应用场景运 行性能等。 其中, APP的冷启动性能是指在APP进程未创建时, 从用户点击APP图标到APP界面 加载完成所消耗的时间。 如何提升APP的性能, 是亟待解决的问题。 0003 现有技术中, 提出了一种提升APP的性能的方法, 在用户使用APP的过程中, 随着 APP用次数的增加, 编译器统计APP运行时类和函数被调用的频率, 当某个类或函数的使用 频率达到预设阈值时, 将该类或函数标记为热点类或热点函数。 将统计到的各热点类以及 热点函数编译为本地代码(native code), 当APP再次运行时, 各热点类和热点函数无需再 次解释执行, 而是被直接。

14、运行, 从而提升APP的性能。 0004 但是, 现有技术的方法需要在APP运行一定时间后才能提升APP的性能, 导致APP性 能提升的效果不佳, 用户体验差。 发明内容 0005 本申请实施例提供一种应用程序生成方法、 装置、 云服务器及可读存储介质, 用于 快速提升APP性能, 提升用户体验。 0006 第一方面, 本申请实施例提供一种应用程序生成方法, 该方法包括: 执行测试用 例, 所述测试用例用于触发第一目标应用在第一终端设备上执行, 所述执行为启动和/或运 行, 并获取所述第一目标应用执行中的热点对象的信息, 进而, 根据所述第一目标应用执行 中的热点对象的信息, 生成第二目标应用。

15、, 所述第二目标应用中包括所述第一目标应用执 行中的热点对象的信息。 0007 该方法中, 通过执行测试用例, 可以获取到第一目标APP启动和运行中的热点对象 的信息, 将这些热点对象的信息加入到可以发布的第二目标APP之后, 能够使得第二目标 APP在安装之后首次启动和运行时性能即可极大提升, 而无需等到运行一段时间后才可以 实现性能提升。 因此, 使得APP性能提升的效果有了极大改善, 用户体验可以得到极大提升。 0008 在一种可能的实现方式中, 所述获取所述待第一目标应用执行中的热点对象的信 息, 包括: 0009 从第一终端设备获取所述第一目标应用执行中的热点对象的信息, 所述第一终。

16、端 设备用于在所述第一目标应用执行时采集所述热点对象的信息。 说明书 1/16 页 5 CN 110659189 A 5 0010 该方法中, 第一终端设备为目标APP测试阶段对应的终端设备, 通过从第一终端设 备获取热点对象的信息, 使得在目标APP的测试阶段即可获取到热点对象的信息。 0011 在一种可能的实现方式中, 所述测试用例用于对所述第一目标应用进行兼容性测 试, 和/或, 所述测试用例用于对所述第一目标应用进行目标功能模块对应的测试, 所述目 标功能模块为所述第一目标应用中用户使用频率大于第三预设频率的功能模块。 0012 该方法中, 可以根据用户的实际优化需要采集不同应用场景下。

17、的热点对象的信 息, 因此, 灵活性高, 可以满足不同应用场景的需要。 0013 在一种可能的实现方式中, 所述方法还包括: 0014 接收多个第二终端设备上报的所述第二目标应用执行中的热点对象的信息; 0015 根据所述第二目标应用执行中的热点对象的信息, 生成第三目标应用, 所述第三 目标应用中包括所述第二目标应用执行中的热点对象的信息。 0016 该方法中, 根据多个第二终端设备在用户实际使用过程所采集到的热点对象得到 热点对象的信息, 因此能够符合用户的真实使用场景, 可以使得APP性能提升效果更佳。 0017 在一种可能的实现方式中, 所述根据所述第二目标应用执行中的热点对象的信 息。

18、, 生成第三目标应用, 包括: 0018 根据所述第二目标应用执行中的热点对象的信息, 以及所述第一目标应用执行中 的热点对象的信息, 生成所述第三目标应用。 0019 在一种可能的实现方式中, 所述根据所述第二目标应用启动和运行中的热点对象 的信息, 以及所述第一目标应用执行中的热点对象的信息, 生成所述第三目标应用, 包括: 0020 统计所述多个第二终端设备以及所述第一终端设备中上报第一热点对象的信息 的终端设备的数量; 0021 若所述多个第二终端设备以及所述第一终端设备中上报第一热点对象的信息的 终端设备的数量大于第二预设阈值, 则将所述第一热点对象作为所述第三目标应用中的一 个热点。

19、对象。 0022 在一种可能的实现方式中, 所述热点对象为在应用执行中被调用次数大于第一预 设阈值的对象, 所述热点对象包括: 类、 方法、 函数、 字段中的至少一种。 0023 在一种可能的实现方式中, 所述热点对象的信息包括: 热点对象的标识、 热点对象 的类型、 热点对象是否属于被类初始化方法调用的对象。 0024 在一种可能的实现方式中, 类型相同的所述热点对象的信息有序存储于同一分区 中, 所述分区为安装应用的终端设备中的存储区域。 0025 该方法中, 通过目标应用的启动阶段的热点对象包括类、 方法、 函数、 字段中的至 少一种, 以及将所述目标应用的启动阶段的热点对象的信息有序存。

20、储于同一分区中, 使得 热点对象被有序存储于同一分区中, 终端设备仅需要执行一次分区读取, 即可读取到多个 热点对象的信息, 当需要调用这些对象时, 可以直接进行调用, 无需进行频繁的分区读取, 因此, 能够明显减少I/O操作。 终端设备能够采集的热点对象至少包括类、 方法、 函数以及字 段, 对这些热点对象均可以按照有序存储的同一分区的方式存储, 使得减少I/O操作的效果 更佳, 进而使得目标APP的性能优化更加深入。 0026 第二方面, 本申请实施例提供一种信息采集方法, 该方法包括: 接收启动第二目标 应用的指示; 根据所述启动第二目标应用的指示, 触发所述第二目标应用执行, 所述执行。

21、为 说明书 2/16 页 6 CN 110659189 A 6 启动和/或运行; 采集所述第二目标应用执行中的热点对象的信息; 向云服务器上报所述第 二目标应用执行中的热点对象的信息。 0027 该方法中, 第二终端设备为安装了可以发布的目标APP的由用户实际使用的终端 设备, 多个第二终端设备可以分别采集目标APP的热点对象的信息, 使得云服务器可以根据 多个第二终端设备在用户实际使用过程所采集到的热点对象得到热点对象的信息, 因此能 够符合用户的真实使用场景, 可以使得APP性能提升效果更佳。 0028 在一种可能的实现方式中, 所述采集所述第二目标应用启动和/或运行中的热点 对象的信息,。

22、 包括: 0029 统计所述第二目标应用启动和/或运行中目标对象被调用的次数; 0030 若所述目标对象被调用的次数大于第一预设阈值, 则将所述目标对象作为一个热 点对象。 0031 在一种可能的实现方式中, 所述统计所述第二目标应用启动和运行中目标对象被 调用的次数, 包括: 0032 通过操作系统的运行时监测所述目标对象是否被调用; 0033 根据所述运行时的监测结果, 统计所述目标对象被调用的次数。 0034 在一种可能的实现方式中, 所述热点对象包括: 类、 方法、 函数、 字段中的至少一 种。 0035 在一种可能的实现方式中, 类型相同的所述热点对象的信息有序存储于同一分区 中, 。

23、所述分区为安装应用的终端设备中的存储区域。 0036 第三方面, 本申请实施例提供一种应用程序生成装置, 包括: 处理模块; 0037 所述处理模块, 用于执行测试用例, 所述测试用例用于触发第一目标应用在第一 终端设备上执行, 所述执行为启动和/或运行; 以及, 0038 获取所述第一目标应用执行中的热点对象的信息; 以及, 0039 根据所述第一目标应用执行中的热点对象的信息, 生成第二目标应用, 所述第二 目标应用中包括所述第一目标应用执行中的热点对象的信息。 0040 在一种可能的实现方式中, 所述处理模块具体用于: 0041 从第一终端设备获取所述第一目标应用执行中的热点对象的信息,。

24、 所述第一终端 设备用于在所述第一目标应用执行时采集所述热点对象的信息。 0042 在一种可能的实现方式中, 所述测试用例用于对所述第一目标应用进行兼容性测 试, 和/或, 所述测试用例用于对所述第一目标应用进行目标功能模块对应的测试, 所述目 标功能模块为所述第一目标应用中用户使用频率大于第三预设频率的功能模块。 0043 在一种可能的实现方式中, 所述装置还包括: 接收模块; 0044 所述接收模块, 用于接收多个第二终端设备上报的所述第二目标应用执行中的热 点对象的信息; 0045 所述处理模块, 还用于根据所述第二目标应用执行中的热点对象的信息, 生成第 三目标应用, 所述第三目标应用。

25、中包括所述第二目标应用执行中的热点对象的信息。 0046 在一种可能的实现方式中, 所述处理模块具体用于: 0047 根据所述第二目标应用执行中的热点对象的信息, 以及所述第一目标应用执行中 的热点对象的信息, 生成所述第三目标应用。 说明书 3/16 页 7 CN 110659189 A 7 0048 在一种可能的实现方式中, 所述处理模块具体用于: 0049 统计所述多个第二终端设备以及所述第一终端设备中上报第一热点对象的信息 的终端设备的数量; 以及, 在所述多个第二终端设备以及所述第一终端设备中上报第一热 点对象的信息的终端设备的数量大于第二预设阈值时, 将所述第一热点对象作为所述第三。

26、 目标应用中的一个热点对象。 0050 在一种可能的实现方式中, 所述热点对象为在应用执行中被调用次数大于第一预 设阈值的对象, 所述热点对象包括: 类、 方法、 函数、 字段中的至少一种。 0051 在一种可能的实现方式中, 所述热点对象的信息包括: 热点对象的标识、 热点对象 的类型、 热点对象是否属于被类初始化方法调用的对象。 0052 在一种可能的实现方式中, 类型相同的所述热点对象的信息有序存储于同一分区 中, 所述分区为安装应用的终端设备中的存储区域。 0053 第四方面, 本申请实施例提供一种信息采集装置, 包括: 0054 接收模块, 用于接收启动第二目标应用的指示; 0055。

27、 处理模块, 用于根据所述启动第二目标应用的指示, 触发所述第二目标应用执行, 所述执行为启动和/或运行; 以及, 0056 采集所述第二目标应用执行中的热点对象的信息; 以及, 0057 向云服务器上报所述第二目标应用执行中的热点对象的信息。 0058 在一种可能的实现方式中, 所述处理模块具体用于: 0059 统计所述第二目标应用启动和/或运行中目标对象被调用的次数; 以及, 0060 在所述目标对象被调用的次数大于第一预设阈值时, 则所述目标对象作为一个热 点对象。 0061 在一种可能的实现方式中, 所述处理模块具体用于: 0062 通过操作系统的运行时监测所述目标对象是否被调用; 以。

28、及, 0063 根据所述运行时的监测结果, 统计所述目标对象被调用的次数。 0064 在一种可能的实现方式中, 所述热点对象包括: 类、 方法、 函数、 字段中的至少一 种。 0065 在一种可能的实现方式中, 类型相同的所述热点对象的信息有序存储于同一分区 中, 所述分区为安装应用的终端设备中的存储区域。 0066 第五方面, 本申请实施例提供一种装置, 包括: 输入接口电路, 逻辑电路, 输出接口 电路, 其中, 所述逻辑电路用于执行上述第一方面所述的方法。 0067 第六方面, 本申请实施例提供一种装置, 包括: 输入接口电路, 逻辑电路, 输出接口 电路, 其中, 所述逻辑电路用于执行。

29、上述第二方面所述的方法。 0068 第七方面, 本申请实施例提供一种云服务器, 包括: 存储器和处理器; 0069 所述处理器用于与所述存储器耦合, 读取并执行所述存储器中的指令, 以实现上 述第一方面所述的方法步骤。 0070 第八方面, 本申请实施例提供一种终端设备, 包括: 存储器、 处理器和收发器; 0071 所述处理器用于与所述存储器耦合, 读取并执行所述存储器中的指令, 以实现上 述第二方面所述的方法步骤; 0072 所述收发器与所述处理器耦合, 由所述处理器控制所述收发器进行消息收发。 说明书 4/16 页 8 CN 110659189 A 8 0073 第九方面, 本申请实施例。

30、提供一种计算机程序产品, 所述计算机程序产品包括计 算机程序代码, 当所述计算机程序代码被计算机执行时, 使得所述计算机执行上述第一方 面或第二方面所述的方法。 0074 第十方面, 本申请实施例提供一种计算机可读存储介质, 所述计算机存储介质存 储有计算机指令, 当所述计算机指令被计算机执行时, 使得所述计算机执行上述第一方面 或第二方面所述的方法的指令。 附图说明 0075 图1为本申请实施例提供的应用程序生成方法的示例性系统架构图; 0076 图2为本申请实施例提供的应用程序生成方法实施例一的交互流程图; 0077 图3为本申请实施例提供的应用程序生成方法实施例二的交互流程图; 0078。

31、 图4为本申请实施例提供的一种应用程序生成装置的模块结构图; 0079 图5为本申请实施例提供的一种信息采集装置的模块结构图; 0080 图6为本申请实施例提供的另一种应用程序生成装置的模块结构图; 0081 图7为本申请实施例提供的另一种信息采集装置的模块结构图; 0082 图8为本申请实施例提供的一种云服务器的结构示意图; 0083 图9为本申请实施例提供的一种终端设备的结构示意图。 具体实施方式 0084 现有技术在APP运行一定时间之后, 将在运行时统计到的各热点类以及热点函数 编译为本地代码, 当APP再次运行时, 直接运行这些本地代码, 从而提升APP的性能。 但是, 该 方法需要。

32、在APP运行一定时间后才能提升APP的性能, 而从APP安装到编译出本地代码的时 间段内, 由于不存在本地代码, 因此, APP的类和代码均需要进行解释执行, 因此, 在从APP安 装到编译出本地代码的时间段内, APP的性能并不能得到提升, 因此, 导致APP性能提升的效 果不佳。 另外, 现有技术仅能统计出APP中的热点类和热点函数, 而无法统计出其他热点对 象, 例如无法统计出类中的热点字段, 因此, 这些热点对象需要同非热点对象一样, 在APP每 次运行时被解释执行, 这种处理影响APP的性能提升, 也会导致APP性能提升的效果不佳。 0085 本申请实施例的技术方案, 旨在解决上述问。

33、题。 0086 在说明本申请实施例的技术方案之前, 首先对本申请实施例涉及的技术术语进行 解释说明。 0087 1、 类 0088 在面向对象的程序设计中, 通过一组数据抽象来建立问题的模型, 这种抽象可以 称为类。 一个类中可以包括若干数据和方法。 其中, 数据用于描述类的特征, 数据具体可以 指字段。 0089 2、 方法 0090 一个类中可以包含若干方法, 方法是类中定义的函数, 一个方法用于描述类的一 个行为。 0091 3、 函数 0092 函数与方法的本质相同, 一个函数用于描述一个行为, 函数不属于某个类, 而方法 说明书 5/16 页 9 CN 110659189 A 9 隶。

34、属于一个类。 0093 4、 热点对象 0094 热点对象可以指在APP启动和运行过程中, 被调用的次数大于第一预设阈值的对 象。 热点对象至少可以包括: 类、 方法、 函数、 字段。 0095 本申请实施例旨在提升安装在终端设备上的APP的性能, 为便于描述, 本申请以下 实施例将该APP称为 “目标APP” 。 值得说明的是, 在本申请实施例中,“目标APP” 等同于 “目标 应用” 。 0096 图1为本申请实施例提供的应用程序生成方法的示例性系统架构图, 如图1所示, 该系统包括云服务器、 第一终端设备、 第二终端设备以及第三终端设备。 其中, 第一终端设 备的数量可以为一个。 第二终。

35、端设备的数量可以为一个, 也可以为多个。 第三终端设备的数 量可以为一个, 也可以为多个。 0097 第一终端设备为安装了第一目标APP的终端设备, 该第一目标APP为待测试的目标 APP。 目标APP完成研发后, 可以生成一个待测试的版本, 该版本安装在第一终端设备上, 第 一终端设备与云服务器连接。 云服务器运行测试用例, 该测试用例用于对目标APP进行测 试。 当运行测试用例时, 测试用例触发目标APP在第一终端设备上启动并运行, 当目标APP在 第一终端设备上启动和运行时, 第一终端设备采集目标APP启动和运行时所调用的热点对 象的信息, 云服务器获取这些热点对象的信息, 并根据这些热。

36、点对象的信息, 得到第二目标 APP, 该第二目标APP为完成测试以后, 可以发布的目标APP。 0098 第二终端设备为安装了第二目标APP的终端设备, 当目标APP在第二终端设备上启 动和运行时, 第二终端设备采集目标APP启动和运行时所调用的热点对象, 并将这些热点对 象的信息上报至云服务器, 云服务器基于这些热点对象的信息以及运行测试用例时所获取 到的热点对象的信息, 得到新的热点对象的信息编译至第三目标APP, 该第三目标APP为在 第二目标APP的基础上对热点对象的信息进行更新后的可以发布的目标APP。 0099 第三终端设备可以从云服务器上安装上述第三目标APP。 0100 值得。

37、说明的是, 本申请实施例所述的第一目标APP、 第二目标APP和第三目标APP分 别对应同一个目标APP在不同阶段。 该不同阶段例如可以为不同版本。 示例性的, 上述第一 目标APP对应目标APP的测试版本, 第二目标APP对应目标APP的首个发布版本, 第三目标APP 对应目标APP的第二个发布版本。 0101 本申请实施例所涉及的终端设备(包括第一终端设备和第二终端设备)也可以称 为终端Terminal、 用户设备(user equipment, UE)、 移动台(mobile station, MS)、 移动终端 (mobile terminal, MT)等。 终端设备可以是手机(mob。

38、ile phone)、 平板电脑(Pad)、 带无线 收发功能的电脑、 虚拟现实(Virtual Reality, VR)终端设备、 增强现实(Augmented Reality, AR)终端设备、 工业控制(industrial control)中的无线终端、 无人驾驶(self driving)中的无线终端、 远程手术(remote medical surgery)中的无线终端、 智能电网 (smart grid)中的无线终端、 运输安全(transportation safety)中的无线终端、 智慧城市 (smart city)中的无线终端、 智慧家庭(smart home)中的无线终。

39、端等等。 0102 终端设备可以部署在陆地上, 包括室内或室外、 手持或车载; 也可以部署在水面 上; 还可以部署在空中的飞机、 气球和人造卫星上。 本申请的实施例对终端设备的应用场景 不做限定。 说明书 6/16 页 10 CN 110659189 A 10 0103 图2为本申请实施例提供的应用程序生成方法实施例一的交互流程图, 如图2所 示, 该方法包括: 0104 S201、 云服务器获取测试用例。 0105 上述测试用例由测试人员预先编写并保存, 测试人员可以将测试用例保存在云服 务器上, 或者, 也可以保存在其他设备上, 在执行本实施例之前, 将测试用例从其他设备传 输至云服务器上。

40、。 0106 可选的, 上述测试用例可以包括不同测试场景的用例, 在不同的测试场景下, 第一 目标APP可能执行不同的动作。 0107 示例性的, 上述测试场景至少可以包括兼容性测试场景和高频测试场景。 对于兼 容性测试场景对应的测试用例, 当该测试用例被执行时, 可以触发第一目标APP执行启动、 页面及控件显示、 对点击控件的行为进行响应、 显示虚拟键盘、 收起虚拟键盘、 在多个输入 框之间切换等常规动作。 对于高频测试场景对应的测试用例, 当该测试用例被执行时, 除了 触发第一目标APP执行上述常规动作外, 还会触发第一目标APP执行用户使用频率较高的功 能模块对应的动作。 示例性的, 假。

41、设第一目标APP为APP1, 其中注册模块以及对话模块为该 APP1的主要功能模块, 在发布之后用户使用的频率可能较高, 则可以在编写测试用例时, 将 注册模块和对话模块的测试内容编写进测试用例中, 得到包括了 “注册” 和 “对话” 这两个高 频模块的测试用例。 当该测试用例被执行时, 触发APP1执行注册场景下的动作以及对话场 景下的动作, 注册场景下的动作例如可以包括对用户输入的注册信息进行有效性验证、 对 用户点击注册按钮的操作进行响应等, 对话场景下的动作例如可以包括接收消息、 发送消 息等。 0108 S202、 云服务器运行测试用例, 向第一终端设备发送操作指令。 0109 S2。

42、03、 第一终端设备根据云服务器的操作指令启动并运行第一目标APP。 0110 上述操作指令用于指示第一终端设备向第一目标APP执行对应的操作指令, 例如, 指示第一终端设备启动第一目标APP, 第一目标APP即可启动。 0111 一个示例中, 测试用例中包括一项测试代码, 内容为 “点击APP1的启动图标” , 则当 该测试代码被运行时, 云服务器向第一终端设备发送点击APP1的启动图标的指示, 第一终 端设备接收到该指示后, 启动APP1。 0112 另一个示例中, 测试用例中包括一项测试代码, 内容为 “点击注册按钮” , 则当该测 试代码被运行时, 云服务器向第一终端设备发送点击注册按。

43、钮的指示, 第一终端设备接收 到该指示后, 运行APP1, 向APP1指示注册按钮已被触发, APP1根据该指示执行响应点击注册 按钮的动作。 0113 值得说明的是, 在本申请下述实施例中, 第一终端设备和第二终端设备可以在目 标APP在启动和运行中均采集热点对象的信息, 或者, 也可以仅在其中一个阶段中采集热点 对象的信息, 例如, 仅在启动阶段采集热点对象的信息, 或者, 仅在运行阶段采集热点对象 的信息。 本申请以下实施例均以在启动和运行中采集热点对象的信息为例进行说明。 0114 S204、 第一终端设备采集第一目标APP在启动和运行中的热点对象的信息。 0115 可选的, 第一目标。

44、APP在启动和运行过程中, 可能调用到各种各样的对象, 该对象 可能为类、 方法、 函数、 字段等。 当对象被调用时, 第一终端设备可以监测对象被调用的行 为, 并对对象在第一目标APP启动和运用过程中被调用的次数进行记录。 示例性的, 第一终 说明书 7/16 页 11 CN 110659189 A 11 端设备可以通过其运行时(runtime)监测对象被调用的行为以及记录各对象的调用次数。 对于第一终端设备来说, 其上所安装的所有APP的运行均基于runtime进行, 因此, runtime 能够获知APP中所有对象的调用信息。 本实施例中, 第一目标APP基于runtime运行, 当第一。

45、 目标APP中的某个目标对象被调用时, runtime可以监测到并记录该目标对象被调用的行 为。 并根据runtime的监测结果, 统计标对象被调用的次数。 示例性的, 当第一目标APP中的 某个对象A第一次被调用时, runtime为该对象A分配一个调用次数变量, 并将该变量的值置 为1, 当对象A再次被调用时, runtime将该变量的值加上1, 作为该变量的新值, 依次类推。 0116 本申请实施例中, 第一终端设备能够支持至少如下类型的对象的调用监测以及调 用次数记录: 0117 classmeta: 类 0118 Methodmeta: 方法 0119 Function: 函数 01。

46、20 Fieldmeta:字段 0121 String: C风格字符串 0122 Literal: Java字符串 0123 可选的, 第一终端设备在记录各对象的调用次数后, 可以对各对象的调用次数进 行判断, 如果某个目标对象的调用次数达到第一预设阈值, 则将该目标对象作为一个热点 对象。 该热点对象具有唯一的标识, 以区别于其他对象。 示例性的, 可以将热点对象的名称 作为热点对象的标识。 同时, 第一终端设备还可以记录该热点对象的类型。 热点对象的类型 是指该热点对象是哪个阶段的热点对象。 示例性的, 热点对象的类型可以包括如下三种: 启 动热点、 运行热点、 启动及运行热点。 其中, 。

47、启动热点类型是指仅属于APP启动阶段的热点, 运行热点类型是指仅属于APP运行阶段的热点, 启动及运行热点类型是指既属于APP启动阶 段又属于APP运行阶段的热点。 可选的, 第一终端设备还可以记录热点对象是否属于被类初 始化方法调用的对象。 如果一个热点对象属于被类初始化方法调用的对象, 则说明在APP启 动时, 需要首先执行类初始化方法(例如clinit方法)对该热点对象进行初始化, 进而才可 以调用该热点对象。 0124 第一终端设备在执行上述的记录过程后, 可以得到第一目标APP在启动和运行中 的热点对象的信息。 热点对象的信息可以包括热点对象的标识、 热点对象的类型以及热点 对象是否。

48、属于被类初始化方法调用的对象。 0125 S205、 第一终端设备向云服务器上报第一目标APP启动和运行中的热点对象的信 息。 0126 可选的, 第一终端设备可以将上述步骤S204所得到的第一目标APP在启动和运行 中的热点对象的信息保存在特定格式的文件中并上报至云服务器。 0127 示例性的, 第一终端设备可以将热点对象的信息保存在概述(profile)配置文件 中, 并将profile文件上报至云服务器。 Profile文件中的每一行用于记录一个热点对象的 信息。 下述为profile文件中某一行所记录的内容示例: 0128 Landroid/os/SystemProperties; _。

49、7c_7c()V:boot-only-hot:1 0129 在该示例中, 热点对象为SystemProperties这个类, 热点对象属于被类初始化方 法调用的对象, 同时, 热点对象的类型为boot-only-hot, 即热点对象的类型为启动热点。 说明书 8/16 页 12 CN 110659189 A 12 0130 S206、 云服务器根据第一目标APP启动和运行中的热点对象的信息, 生成第二目标 APP, 该第二目标APP中包括第一目标APP启动和运行中的热点对象的信息。 0131 在得到热点对象的信息之后, 在本步骤中, 可选的, 云服务器可以在编译第二目标 APP时, 将第一目标。

50、APP的热点对象的信息编译至第二目标APP的安装文件中, 从而使得编译 生成的第二目标APP中包括热点对象的信息。 0132 一种可选方式中, 云服务器在编译第二目标APP时, 可以根据热点对象的名称、 类 型以及是否属于被类初始化方法调用的对象, 将第一目标APP的同一类型的热点对象的信 息有序排布于同一文件中, 并使用该有序存储的文件生成第二目标APP的安装文件。 该安装 文件被安装至第二终端设备后, 该有序存储的文件中的热点对象的信息被有序存储于第二 终端设备的同一分区中, 其中, 该分区为安装APP的终端设备中的存储区域。 示例性的, 云服 务器在编译第二目标APP时, 将属于启动热点。

展开阅读全文
内容关键字: 应用程序 生成 方法 装置 服务器 可读 存储 介质
关于本文
本文标题:应用程序生成方法、装置、云服务器及可读存储介质.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/11086699.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1