一种应用程序的跟踪分析方法和装置制造方法及图纸

技术编号:15447552 阅读:204 留言:0更新日期:2017-05-29 21:24
本发明专利技术公开了一种应用程序的跟踪分析方法和装置,用于实现各种版本的Android平台下的性能跟踪分析,可以支持C++代码。本发明专利技术提供的方法包括:根据包含用C++语言编写的源代码的JNI文件夹建立支持本地开发设备NDK编译的第一性能分析组件,所述源代码用于记录日志以及写日志文件;将所述第一性能分析组件保存到Android系统平台下新增加的java文件中,得到第二性能分析组件;使用Android.mk脚本将所述第二性能分析组件编译为本地库文件形式的第三性能分析组件;在应用程序APP运行时将所述第三性能分析组件动态加载到所述APP中,由第三性能分析组件跟踪所述APP,得到所述APP的运行耗时。

Method and device for tracking analysis of application program

The invention discloses a method and a device for tracking analysis of an application, which is used for implementing performance tracking analysis under various versions of an Android platform, and can support C++ codes. The method of the invention comprises: according to the included C++ language source code of the JNI folder set up to support the first performance of the local development equipment NDK compiler analysis component, the source code for the log and write the log file; the first component performance analysis is saved to the java file Android new system platform. The second component analysis performance; using the Android.mk script of the second performance analysis component analysis component compiled for the third performance form of the local library file; applications running in the APP when the third performance analysis of dynamic loading of components to the APP analysis, the APP consists of third components of tracking performance, get the APP run time.

【技术实现步骤摘要】
一种应用程序的跟踪分析方法和装置
本专利技术涉及计算机
,尤其涉及一种应用程序的跟踪分析方法和装置。
技术介绍
随着智能终端的快速发展,智能终端上安装的应用程序(APP,Application)也日益增多,对各类APP的性能需要进行跟踪分析。目前运行在安卓(英文名称:Android)平台下的智能终端中存在Log、TraceView、SysTrace等性能分析工具,可以实现Android平台上做性能优化。但目前,现有的技术方案只能做到部分分析或者支持部分开发语言,无法两者兼得。例如现有的Log工具,只能用于少量数据的性能分析,在复杂情况或者数据比较多的情况下,分析非常困难,各参量读取只能逐行查找,任务量很大。又如现有的TraceView工具,只能适用于Android平台的部分高版本,而在Android2.2以下无法支持,并且主要支持java层的性能分析,在C++代码中无相应接口。又如现有的SysTrace工具,虽然可以支持java层和C++层的性能分析,但同样也只能适用于Android平台的部分高版本,而不支持Android4.0以下的系统版本。综上所述,目前Android平台下的智能终端中已有的性能分析工具,要么分析困难,要么对Android全平台支持不够好,要么是对C++代码支持不足。因此,迫切需要提供一种新的性能分析工具,以解决上述问题。
技术实现思路
本专利技术实施例提供了一种应用程序的跟踪分析方法和装置,用于实现各种版本的Android平台下的性能跟踪分析,并且可以支持C++代码。为解决上述技术问题,本专利技术实施例提供以下技术方案:第一方面,本专利技术实施例提供一种应用程序的跟踪分析方法,包括:根据包含用C++语言编写的源代码的JNI文件夹建立支持本地开发设备NDK编译的第一性能分析组件,所述源代码用于记录日志以及写日志文件;将所述第一性能分析组件保存到Android系统平台下新增加的java文件中,得到第二性能分析组件;使用Android.mk脚本将所述第二性能分析组件编译为本地库文件形式的第三性能分析组件;在应用程序APP运行时将所述第三性能分析组件动态加载到所述APP中,由所述第三性能分析组件跟踪所述APP,得到所述APP的运行耗时。第二方面,本专利技术实施例还提供一种应用程序的跟踪分析装置,包括:第一生成模块,用于根据包含用C++语言编写的源代码的JNI文件夹建立支持本地开发设备NDK编译的第一性能分析组件,所述源代码用于记录日志以及写日志文件;第二生成模块,用于将所述第一性能分析组件保存到Android系统平台下新增加的java文件中,得到第二性能分析组件;编译模块,用于使用Android.mk脚本将所述第二性能分析组件编译为本地库文件形式的第三性能分析组件;跟踪分析模块,用于在应用程序APP运行时将所述第三性能分析组件动态加载到所述APP中,由所述第三性能分析组件跟踪所述APP,得到所述APP的运行耗时。从以上技术方案可以看出,本专利技术实施例具有以下优点:在本专利技术实施例中,首先根据包含用C++语言编写的源代码的JNI文件夹建立支持本地开发设备NDK编译的第一性能分析组件,源代码用于记录日志以及写日志文件,然后将第一性能分析组件保存到Android系统平台下新增加的java文件中,得到第二性能分析组件,接下来使用Android.mk脚本将第二性能分析组件编译为本地库文件形式的第三性能分析组件,最后在应用程序APP运行时将第三性能分析组件动态加载到APP中,由第三性能分析组件跟踪APP,得到APP的运行耗时。由于本专利技术中源代码是用C++语言编写,第一性能分析组件包括有JNI文件夹,第二性能分析组件是以Android系统平台下编写的java文件存在的,通过第二性能分析组件的编译得到了本地库文件,即第三性能分析组件为.so文件,由于第三性能分析组件是动态库,可以在APP运行时动态加载,可以完成第三性能分析组件和APP的自动打包,APP的运行过程可以由第三性能分析组件实时跟踪,从而可以准确分析出APP的运行耗时,为下一步对耗时大的APP进行优化打下基础。另外本专利技术中使用了Android系统平台最基本的增加java文件和编写Android.mk脚本,这对于任何版本的Android系统平台都可以适用,实现各种版本的Android平台下的性能跟踪分析,并且通过对包含C++源代码的JNI文件夹的保存、编译,从而得到本地库文件,实现对C++代码的支持。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种应用程序的跟踪分析方法的流程方框示意图;图2为本专利技术实施例提供的在chrome中对应用程序进行跟踪分析的示意图;图3-a为本专利技术实施例提供的一种应用程序的跟踪分析装置的组成结构示意图;图3-b为本专利技术实施例提供的一种应用程序的跟踪分析装置的组成结构示意图;图3-c为本专利技术实施例提供的一种应用程序的跟踪分析装置的组成结构示意图;图4为本专利技术实施例提供的应用程序的跟踪分析方法应用于终端的组成结构示意图。具体实施方式本专利技术实施例提供了一种应用程序的跟踪分析方法和装置,用于实现各种版本的Android平台下的性能跟踪分析,并且可以支持C++代码。为使得本专利技术的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本专利技术一部分实施例,而非全部实施例。基于本专利技术中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。以下分别进行详细说明。本专利技术应用程序的跟踪分析方法的一个实施例,具体可以应用于对应用程序的耗时分析中,请参阅图1所示,本专利技术一个实施例提供的应用程序的跟踪分析方法,可以包括如下步骤:101、根据包含用C++语言编写的源代码的JNI文件夹建立支持本地开发设备(NDK,NativeDevelopmentKit)编译的第一性能分析组件,源代码用于记录日志以及写日志文件。在本专利技术实施例中,很多可以实现记录日志以及写日志文件的性能分析工具都是用C++编程语言开发实现的,但是Android系统平台作为一个真正意义上的开放式运行平台,却是以java语言作为应用程序开发语言,并提供了完善的开发环境和测试工具集。在运行Android系统平台的智能终端中安装有应用程序,这些应用程序需要在Android系统平台下进行性能优化,从而使应用程序可以运行在最佳状态下。以C++代码实现的性能分析工具并没有相应的接口可以直接支持Android系统平台,这就造成了无法使用这些性能分析工具对Android系统平台下的应用程序进行跟踪监测。为此本专利技术中提出对C++编程语言实现的性能分析工具在本文档来自技高网...
一种应用程序的跟踪分析方法和装置

【技术保护点】
一种应用程序的跟踪分析方法,其特征在于,包括:根据包含用C++语言编写的源代码的JNI文件夹建立支持本地开发设备NDK编译的第一性能分析组件,所述源代码用于记录日志以及写日志文件;将所述第一性能分析组件保存到Android系统平台下新增加的java文件中,得到第二性能分析组件;使用Android.mk脚本将所述第二性能分析组件编译为本地库文件形式的第三性能分析组件;在应用程序APP运行时将所述第三性能分析组件动态加载到所述APP中,由所述第三性能分析组件跟踪所述APP,得到所述APP的运行耗时。

【技术特征摘要】
1.一种应用程序的跟踪分析方法,其特征在于,包括:根据包含用C++语言编写的源代码的JNI文件夹建立支持本地开发设备NDK编译的第一性能分析组件,所述源代码用于记录日志以及写日志文件;将所述第一性能分析组件保存到Android系统平台下新增加的java文件中,得到第二性能分析组件;使用Android.mk脚本将所述第二性能分析组件编译为本地库文件形式的第三性能分析组件;在应用程序APP运行时将所述第三性能分析组件动态加载到所述APP中,由所述第三性能分析组件跟踪所述APP,得到所述APP的运行耗时。2.根据权利要求1所述的方法,其特征在于,所述源代码为C++语言编写的跟踪tracing代码。3.根据权利要求1所述的方法,其特征在于,所述根据包含用C++语言编写的源代码的JNI文件夹建立支持本地开发设备NDK编译的第一性能分析组件,包括:将用C++语言编写的源代码拷贝到JNI文件夹中,得到包含所述源代码的JNI文件夹;将包含所述源代码的JNI文件夹保存到第一性能分析组件中。4.根据权利要求1所述的方法,其特征在于,所述将所述第一性能分析组件保存到Android系统平台下新增加的java文件中,得到第二性能分析组件,包括:在Android系统平台的src目录下增加java文件,所述java文件包括:供Android系统平台调用的多个应用程序编程接口API;将所述第一性能分析组件以native函数的方式定义在所述java文件中,得到第二性能分析组件。5.根据权利要求1所述的方法,其特征在于,所述将所述第一性能分析组件保存到Android系统平台下新增加的java文件中,得到第二性能分析组件之后,所述方法还包括:将所述第二性能分析组件打包为jar形式。6.根据权利要求1所述的方法,其特征在于,所述使用Android.mk脚本将所述第二性能分析组件编译为本地库文件形式的第三性能分析组件,包括:在Android系统平台下编写Android.mk脚本;使用所述Android.mk脚本在所述Android系统平台的lib/armeabi下生成本地库文件;对所述第二性能分析组件进行编译,输出编译后的第二性能分析组件到所述本地库文件,得到第三性能分析组件。7.根据权利要求1所述的方法,其特征在于,所述在应用程序APP运行时将所述第三性能分析组件动态加载到所述APP中之前,所述方法还包括:若所述APP为C++代码,在所述第...

【专利技术属性】
技术研发人员:舒玉强
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1