安卓逆向_11 --- methodprofiling(方法分析)【在 smali 代码中打印信息 --- 协议分析常用】

 

From【修改 smali 代码打印信息】:https://www.bilibili.com/video/BV1UE411A7rW?p=38

【Android】开发优化之 --- 调优工具:TrackView、Method Profiling:https://blog.csdn.net/fcly2013/article/details/38080333

 

 

TrackView、Method Profiling

 

Android SDK 自带的 tool TrackView 位于 sdk 的 tools 目录下。用法为:进入到 tools下,运行

traceview e:\loginActivityTracing.trace

即可。那 trace 文件怎么生成的呢。

 

 

有两种方式生成

 

1、使用代码生成,想调哪调哪。

只需要在需要调用的地方调用

Debug.startMethodTracing("loginActivityTracing");

和结束调用的地方调用

Debug.stopMethodTracing();

就会在 sd 卡的根目录生成 loginActivityTracing.trace 文件。

 

2、没有代码呢,可以使用 DDMS 来生成。

这是开始,然后同一个按钮再点一次就生成 .trace 文件并打开了。

执行之后可以看到这样一个图片:

 

 

TraceView 界面信息介绍

TraceView 界面包括 时间面板方法面板

  • (1) 时间面板 ( Timeline Panel ):时间面板展示了每个线程的执行情况,其中的[1]main即为ui主线程。移动到某个位置可以查看该点对应的方法的执行信息,点击方法面板则会选中相应的方法。可以左键按住不放选中区域放大局部精细查看,不同方法用不同颜色标注
  • (2) 方法面板 ( Profile Panel ):方法面板展示了所有方法的执行情况,点击某个方法可以查看在对应线程上的执行时间区域,并会显示其父方法及子方法。每个方法包括如下信息列,可点击某列进行排序,从而确定产生性能问题的函数:Incl Cpu Time, Excl Cpu Time, Incl Real Time, Excl Real Time, Incl Cpu Time%, Excl Cpu Time%, Incl Real Time%, Excl Real Time%, Calls+RecurCalls/Total, Cpu Time/Call, Real Time/Call 。

所有的 Time 都是以毫秒计算。每列具体含义及作用如下:

  • a. Incl表示将所有子函数耗时也计算在内,Excl则表示不包括子函数的调用时间。对比可以确定耗时操作发生是自身还是子函数中。
  • b. Cpu Time表示占用cpu执行的时间,Real Time包括Cpu Time以及等待、切换的时间等,所以一般都大于Cpu Time。对比可以判断耗时操作是否在cpu执行段内。
  • c. 上面四个指标对应的%表示函数在总时间的占比。方便查看某个函数的时间占比。
  • d. Calls+RecurCalls/Total表示被外部调用次数+递归次数/总次数。可以查看调用次数是否符合自己预期。
  • e. Cpu Time/Call, Real Time/Call表示总的Cpu Time及Real Time与总调用次数的比例。查看每次调用的耗时,一般可通过简单此项确定每个函数的性能。

常用字段的属性说明如下:

列名                           描述
Name                        该线程运行过程中所调用的函数名
Incle Cpu Time        某函数占用的CPU时间,包含内部调用其他函数的CPU时间
Excl Cpu  Time        某函数占用的CPU时间,但不含内部调用其他函数所占用的CPU时间
Incl Real Time         某函数运行的真实时间,含调用其他函数所占用的真实时间
Excl Real Time        某函数运行的真实时间,不含调用其他函数所占用的真实时间
Call +Recur Calls/Total 某函数被调用次数以及递归调用占总调用次数的百分比
Cpu Time/Call        某函数调用CPU时间与调用次数的比,相当于该函数平均执行时间
Real Time/Call       某函数调用CPU的真实时间;

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Getting Started with Google Guava--思维导图笔记

Getting Started with Google Guava--思维导图笔记 分享地址:https://www.processon.com/view/link/5d413527e4b020861117eb7b

德国科学院院士:传统企业寻求变革,向智能制造靠近

来源:亿欧摘要:中新人工智能高峰论坛上,德国科学院院士汉斯乌思克尔特详细介绍了AI在工业上的概念和具体运用案例。他把“AI工业”原理分为三层,由内到外分别是:生产层、运行层和数据结合层。经由这三层,智…

安卓逆向_12 --- jeb工具的使用 ( 动态调试 smali 代码 【 普通调试 和 debug调试 】)

From:https://www.52pojie.cn/forum.php?modviewthread&tid742250 jeb 动态调试 smali 代码:https://www.bilibili.com/video/BV1UE411A7rW?p39 使用 JEB 调试 Android App:https://www.jianshu.com/p/a1a7cf687cd2 了解 JEB 和 IDA 使…

Hamcrest总结--思维导图

来源:https://blog.csdn.net/neven7/article/details/42489723 思维导图:https://www.processon.com/view/link/5da81f53e4b09df55016b55d

机器学习应用的未来是什么?微型化

作者 | Pete Warden编译 | 专知翻译 | Yongxi, Huaiwen数据科学家,Jetpac 公司CTO Pete Warden发表了一篇博文,详细阐述了微型化是机器学习应用的一条出路,并且相信机器学习可以在微小的、低功耗的芯片上运行,利用深度学习可以做到…

Python 爬虫 性能 相关( asyncio 模块 --- 高性能爬虫 )

From:https://www.cnblogs.com/bravexz/p/7741633.html 爬虫应用 asyncio 模块 ( 高性能爬虫 ):https://www.cnblogs.com/morgana/p/8495555.html python异步编程之asyncio(百万并发):https://www.cnblogs.com/shenh…

“反机器学习”:人工智能突破的关键是“遗忘”

来源:36Kr摘要:人工智能越来越频繁地出现在人们的生活中,而其技术上的重大进步仍然不曾明朗。本文作者Natalie Fratto在“Machine Un-Learning: Why Forgetting Might Be the Key to AI”一文中讲述了实现人工智能战略性遗忘的三个方法。让我…

打造一个宇宙 星系模拟产生对宇宙进化惊人见解

图片来源:TNG COLLABORATION来源:中国科学报摘要:研究人员不断发展宇宙模型,并借此发现新的宇宙理论。美国加州理工学院理论物理学家Philip Hopkins喜欢跟他的同事恶作剧。作为模拟星系形成的专家,Hopkins有时会在演讲…

Scrapy 性能

参考:https://blog.csdn.net/s150503/article/details/72571680 CONCURRENT_REQUESTS 与 DOWNLOAD_DELAY Scrapy 中 CONCURRENT_REQUESTS 与 DOWNLOAD_DELAY 的联系,先建立一个项目来找CONCURRENT_REQUESTS与DOWNLOAD_DELAY的联系 以豆瓣电影top250 为例…

5G 发展报告:以四项技术为基础,广泛应用还需十年

来源:36Kr摘要:近年来,在5G领域的竞争非常激烈。但5G的部署与应用到底是一个什么样的过程?人们到底需要多久才能普遍用上5G技术?日前,CB Insights发表了一篇报告,在对无线技术的背景进行研究的基…

33个优秀的 jQuery 图片展示插件分享

这篇文章收集了33个优秀的 jQuery 图片插件分享给大家。jQuery 是一个非常优秀的 JavaScript 框架,使用简单灵活,同时还有许多成熟的插件可供选择,其中最令人印象深刻的应用之一就是对图片的处理,它可以让帮助你在你的项目中加入一…

安卓逆向_13 --- AndroidStudio + Smalidea 动态调试 smali 代码【APK可调试】、gradle 配置

教我兄弟学Android逆向04 动态调试smali代码:https://www.52pojie.cn/thread-658865-1-1.html From:Android Studio 3.6 调试 smali:https://blog.csdn.net/jha334201553/article/details/104494732 From:SmalideaIntelliJ IDEA/…

IEEE协会首次在京举办研讨会,王飞跃称不存在AI芯片

本文来源:网易智能摘要:6月9日至10日,IEEE SMC学会(IEEE System,Man,and Cybernetics Society)与中国自动化学会、中国科学院自动化研究所、青岛智能产业技术研究院共同在京举办IEEE人工智能与控…

安卓逆向_14 --- 单机和弱联网游戏内购 突破口 和 思路

From:https://www.bilibili.com/video/BV1UE411A7rW?p41 Android 逆向资源收集( apk ):https://blog.csdn.net/qq_36869808/article/details/79290420 Android逆向-Android基础逆向7(内购干货集合)&#…

OpenAI最新研究:如何通过无监督学习提升「自然语言理解能力」?

来源:amazonaws.com摘要:长期以来,使用无监督(预)训练来提高区别性任务的性能表现一直是机器学习研究的一个重要目标。最近,OpenAI通过使用一个具有可扩展性的任务不可知系统,在一系列不同的自然…

安卓逆向_15( 一 ) --- JNI 和 NDK

From:较详细的介绍JNI:https://blog.csdn.net/lizhifa2011/article/details/21021177 From:https://www.jb51.net/article/126111.htm NDK 官方文档:https://developer.android.google.cn/training/articles/perf-jni JNI / NDK …

Nature:科学家成功绘制出大脑神经细胞“地图”

图片来源:Thomas Hainmller, Marlene Bartos来源:生物谷摘要:最近,一项刊登在国际杂志Nature上的研究报告中,来自弗莱堡大学的科学家们通过研究开发出了一种新型模型来解释大脑如何储存一些“有形事件”(ta…

互联网的大脑模型与原子的太阳系模型,科学史上的巨系统对比

作者:刘锋 计算机博士,互联网进化论作者科学探索中,有两种重要的促进力量,第一种是认同,会帮助研究者增强对探索方向的信心和勇气,第二种是批判,会帮助研究者获知探索路上的障碍和陷阱。10年前…

安卓逆向_15( 二 ) --- Android Studio 3.6.3 JNI 环境配置 和 so 生成开发 demo

From:Android Studio 3.0 JNI 的实现:https://blog.csdn.net/ziyoutiankoong/article/details/79696279 Android Studio 生成so包和.H文件给jni调用产生新so包。(即so包调so包):https://blog.csdn.net/sxh_android/article/details/80694291…

卡内基梅隆大学机器学习系副主任邢波:AI落地现在最缺的是思维方式

来源:亿欧摘要:邢波认为:人工智能现在最缺的不是算法和知识,而是落地应用的思维方式;数据如何被处理、系统如何被调试、资源如何配置,目前阶段还处于黑箱,很混沌的状态;人工智能未来…