System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,尤其涉及一种安卓平台汽车诊断报告生成方法、设备及介质。
技术介绍
1、在汽车诊断的流程中,生成报告是流程的最后一环,报告在应用中常以多页面的形式进行预览,左右滑动页面可以方便用户查看完整报告,在此基础上,还会提供分享、打印等功能,需要将页面一比一还原并输出为pdf(portable document format,可携带文件格式)文件。目前的android平台上,已有一些实现pdf生成的方案,其中使用itext作为第三方库是较为常见的方法,以下是已有实现方案的主要特点:
2、(1)itext库的使用:传统方法通常会使用itext等第三方库,这些库提供了丰富的api(application programming interface,应用程序编程接口)用于创建和编辑pdf文件。实现过程中,开发者通过编写代码调用这些库的功能来生成所需的pdf文档,但是,使用itext等第三方库可能导致性能问题,特别是在处理大量数据或复杂页面结构时,具体而言,itext等第三方库设计为通用性框架,难以优化特定应用场景的性能要求,因此在处理大量数据或复杂页面结构时,itext可能表现出性能瓶颈,导致生成pdf的过程较为耗时;
3、(2)xml(extensible markup language,可扩展标记语言)和代码混合:在一些实现案例中,开发者通常会使用xml文件定义pdf文档的结构,然后通过代码中的逻辑来填充和定制pdf内容,这种方法允许相对简单地创建和管理pdf文档的结构;然而,xml和代码混合方
4、(3)数据绑定:有些实现方案采用数据绑定技术,将数据与pdf文档的结构进行关联,使得在数据更新时能够自动更新pdf文档,提高开发效率;在实际应用中,数据绑定虽然带来便捷但可能影响性能,具体而言,数据绑定技术用于关联数据与pdf结构,但在某些情况下可能引起性能下降,随着数据量的增加,数据绑定可能导致生成pdf的效率下降,影响应用的响应速度;
5、(4)自定义view:部分实现方案通过自定义view的方式将android界面元素与pdf文档中的元素进行映射,从而实现动态生成pdf的功能;其中,自定义view方式限制了灵活性,实际应用过程中,通过自定义view映射android界面元素与pdf元素,可能在一些情况下限制了pdf生成过程的灵活性,导致针对某些特殊需求,开发者可能无法轻松定制生成的pdf文件,导致功能受限;
6、(5)异步处理:针对性能问题,一些实现方案使用异步处理方式生成pdf,以避免在主线程中执行耗时操作,保证应用的流畅性。尽管异步处理可提高性能,但可能引入复杂性,在具体场景下,为避免在主线程中执行耗时操作才会使用异步处理,但是异步处理可能引入代码复杂性,需要开发者更多地处理线程同步和异步通信,增加了开发的难度。
7、上述各种实现方案在一定程度上解决了pdf生成的技术需求,但仍存在如下缺陷:
8、(1)性能问题:使用itext等第三方库可能导致性能问题,特别是在处理大量数据或复杂页面结构时;
9、(2)复杂性和依赖管理:集成第三方库带来了复杂性和依赖管理的问题,可能需要额外的配置和注意事项;
10、(3)定制性限制:部分实现方案可能受限于第三方库的特性,无法提供足够的定制性以满足特定应用需求。
技术实现思路
1、鉴于以上内容,有必要提供一种安卓平台汽车诊断报告生成方法、设备及介质,旨在解决安卓平台汽车诊断报告生成过程对第三方库的高依赖问题、灵活性差问题以及性能差问题。
2、一种安卓平台汽车诊断报告生成方法,所述安卓平台汽车诊断报告生成方法包括:
3、响应于请求方触发的安卓平台汽车诊断报告生成指令,解析所述安卓平台汽车诊断报告生成指令得到多个视图页、视图页尺寸及视图页属性;
4、基于viewpager2组件及fragment碎片生成视图页载体;
5、根据所述视图页属性对所述viewpager2组件中onpageselected回调函数的offscreenpagelimit属性进行配置,得到加载策略;
6、基于所述加载策略将所述多个视图页加载至所述视图页载体;
7、当检测到所述多个视图页都完成加载时,获取每个视图页的view构建view集合;
8、创建pdfdocument对象,利用所述pdfdocument对象遍历所述view集合,并将所述view集合中的每个view配置至所述pdfdocument对象对应类的canvas对象中;
9、根据所述视图页尺寸将所述pdfdocument对象写出,得到汽车诊断pdf报告;
10、对所述汽车诊断pdf报告进行加密处理得到汽车诊断密文报告,并将所述汽车诊断密文报告发送至所述请求方。
11、根据本专利技术优选实施例,所述根据所述视图页属性对所述viewpager2组件中onpageselected回调函数的offscreenpagelimit属性进行配置,得到加载策略包括:
12、配置所述offscreenpagelimit属性的初始值;
13、根据所述初始值确定首轮加载策略;
14、根据所述视图页属性确定所述多个视图页的页面总数;
15、根据所述页面总数配置所述offscreenpagelimit属性的最终值;
16、根据所述最终值确定次轮加载策略;
17、根据所述首轮加载策略及所述次轮加载策略生成所述加载策略。
18、根据本专利技术优选实施例,所述基于所述加载策略将所述多个视图页加载至所述视图页载体包括:
19、根据所述首轮加载策略从所述多个视图页中获取首个视图页,并将所述首个视图页加载至所述视图页载体;
20、当接收到所述onpageselected回调函数发出的所述首个视图页完成加载的通知时,根据所述次轮加载策略获取所述多个视图页中除所述首个视图页以外的其余视图页;
21、将所述其余视图页一次性加载至所述视图页载体。
22、根据本专利技术优选实施例,所述方法还包括:
23、在所述offscreenpagelimit属性中自定义操作时机标志变量;
24、当检测到所述多个视图页都完成加载时,调用所述操作时机标志变量以控制预设按键为可操作状态。
25、根据本专利技术优选实施例,所述获取每个视图页的view构建view集合后,所述方法还包括:
26、获取每个视图页对应的预览页面;
27、当有视图页对应的预览页面上存在异常时,获取异常的预览页面所对应的代码作为候选代码;
...【技术保护点】
1.一种安卓平台汽车诊断报告生成方法,其特征在于,所述安卓平台汽车诊断报告生成方法包括:
2.如权利要求1所述的安卓平台汽车诊断报告生成方法,其特征在于,所述根据所述视图页属性对所述ViewPager2组件中OnPageSelected回调函数的offscreenPageLimit属性进行配置,得到加载策略包括:
3.如权利要求2所述的安卓平台汽车诊断报告生成方法,其特征在于,所述基于所述加载策略将所述多个视图页加载至所述视图页载体包括:
4.如权利要求1所述的安卓平台汽车诊断报告生成方法,其特征在于,所述方法还包括:
5.如权利要求1所述的安卓平台汽车诊断报告生成方法,其特征在于,所述获取每个视图页的View构建View集合后,所述方法还包括:
6.如权利要求5所述的安卓平台汽车诊断报告生成方法,其特征在于,所述将所述候选代码输入至错误代码定位模型前,所述方法还包括:
7.如权利要求1所述的安卓平台汽车诊断报告生成方法,其特征在于,所述利用所述PDFDocument对象遍历所述View集合,并将所述View
8.如权利要求1所述的安卓平台汽车诊断报告生成方法,其特征在于,所述对所述汽车诊断PDF报告进行加密处理得到汽车诊断密文报告包括:
9. 一种计算机设备,其特征在于,所述计算机设备包括:
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现如权利要求1至8中任意一项所述的安卓平台汽车诊断报告生成方法。
...【技术特征摘要】
1.一种安卓平台汽车诊断报告生成方法,其特征在于,所述安卓平台汽车诊断报告生成方法包括:
2.如权利要求1所述的安卓平台汽车诊断报告生成方法,其特征在于,所述根据所述视图页属性对所述viewpager2组件中onpageselected回调函数的offscreenpagelimit属性进行配置,得到加载策略包括:
3.如权利要求2所述的安卓平台汽车诊断报告生成方法,其特征在于,所述基于所述加载策略将所述多个视图页加载至所述视图页载体包括:
4.如权利要求1所述的安卓平台汽车诊断报告生成方法,其特征在于,所述方法还包括:
5.如权利要求1所述的安卓平台汽车诊断报告生成方法,其特征在于,所述获取每个视图页的view构建view集合后,所述方法还包括:
6.如权利要求5所述的安卓平台汽车诊...
【专利技术属性】
技术研发人员:张江波,陈仲才,
申请(专利权)人:深圳新芯智能有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。