当前位置: 首页 > news >正文

网站的建设模式南宁网络推广品牌

网站的建设模式,南宁网络推广品牌,企业培训机构排名,科技类网站源码1、要分析的问题 1、与正常trace比对,确认过耗时在哪个步骤(am create/pause/stop/start/doframe)? 2、与正常trace比对,确认过耗时在哪个cpu state(Running/Runnable/Sleep/Uninterruptible Sleep)? 2、启动分析 …

1、要分析的问题

1、与正常trace比对,确认过耗时在哪个步骤(am create/pause/stop/start/doframe)?
2、与正常trace比对,确认过耗时在哪个cpu state(Running/Runnable/Sleep/Uninterruptible Sleep)?

2、启动分析

所谓冷启动就是启动该应用时,后台没有该应用的进程,此时系统会为该应用创建新的进程,之后会bindApplication来创建程并初始化application, 然后通过反射执行ActivityThread中的main方法。
而热启动则是,当启动应用时,后台已经存在该应用的进程,比如启动该应用后,再按home 键反馈至主界面后,再打开该应用。此时会从已有的进程中来启动应用,这种方式不会重新走bindApplication的动作。

1、冷启动流程(Cold Launch Flow ):

在这里插入图片描述

android.intent.action.MAIN:决定应用的入口Activity,也就是我们启动应用时首先显示哪一个Activity。
android.intent.category.LAUNCHER:表示activity应该被列入系统的启动器(launcher)(其本质也是一个APP)。
凡是声明了上面filter的activity,都会被launcher解析出来,对应图标排列在桌面。这样,用户就可以通过点击的方式启动Activity了。

当我们点击APP图标的时候,首先会调用launcher的onClick()方法,然后会通过添加intent.addflag(Intent.FLAG_ACTIVITY_NEW_TASK)通过调用Activity类的startActivity方法先pause前台的launcher,然后resume想启动想要启动的activity。其细节流程如下:

1.1、onclick -> startActivity

在这里插入图片描述

1.2、startActivityUnchecked -> resumreFocusedStackTopActivityLocked

在这里插入图片描述

1.3、reasumeFocusedStackTopActivityLocked:

在这里插入图片描述
startProcessLocked中会,上图中Activity所在进程的app已经存在部分可以理解成热启动流程,而下面restarting部分则为冷启动部分
在这里插入图片描述

1.4、冷启动的后续部分

在这里插入图片描述

1.5

在这里插入图片描述

2、热启动流程(Activity Resume Flow):

在这里插入图片描述
前面已经提到热启动流程跟冷启动流程最主要的区别就,热启动流程因为原有相关进程已经在后台,所以只需要resume相关activity就好

3、systrace分析:

了解上面的code流程后,我们从systrace中再次看下对应的冷热启动的流程和时间序列,systrace的抓取和基本操作请参考
如果用monitor抓取,请勾选system_server、IRQ Events、CPU frequency CPU Idle、binder kernel driver、 binder global lock trace几项。
在这里插入图片描述

3.1 冷启动对应systrace:

打开systrace之后,先按ctrl+F搜索inputreader,找到systremserver下的inputReader 进程,然后再其运行状态中找到AppLaunch_dispatchPtr:Up的时间点,也就是手指离开屏幕的时间点。 然后找到启动的app 的UI thread,check 其ActivityThreadMain->bindApplication->StartActivity->activityResume->Choreographer#doFrame ->draw → RenderThread(DrawFrame)。
利用systrace工具中的框选标记从AppLaunch_dispatchPtr:Up到RenderThread(DrawFrame)完成的时间,则为该app 冷启动画完第一帧的使用时间。若有launcher时间长的问题,请将上面各个时间节点拆分比较,和对比机对比检测出花费时间长的时间段。再细看时间长的原因
详细原因: 在这里插入图片描述
在这里插入图片描述

3.2 如何分析launcher时间慢的问题
3.3.1 Launcher时间拆分:

先按照上面的冷热启动的介绍,将launcher的时间拆分:
在这里插入图片描述

3.3.2、 定位差异部分:

定位出某个花费时间长的时间段后,框选该时间段的进程运行状态,在下面的Thread Timeslices中可以查看该时间段的进程运行状态。找出时间差异大tag的cpu status :Running/Runnable/Sleeping/Uninterruptible sleep
在这里插入图片描述
确认running/sleeping/runnable/uninterruptible sleep时间长之后,根据本文其它栏位中其对应的debug方法进一步确认。

http://www.dnsts.com.cn/news/695.html

相关文章:

  • 郑州制作网站电话133公司地址怎么弄在百度上显示
  • 做的网站怎么放视频海外市场推广做什么的
  • 网站里面的导航图标怎么做的seo排名赚app多久了
  • 江苏省网站备案系统优化课程体系
  • 百姓网站外推广怎么做百度竞价推广方案的制定
  • 国外政府网站的建设特点自己怎么开发app软件
  • java web网站开发视频教程长沙网站设计拓谋网络
  • 全球建站新网站应该怎么做seo
  • 做网站是哪个专业社群营销是什么意思
  • wordpress 文章字符数网站关键词优化教程
  • 专门做二手的网站福州seo公司
  • php做网站需要mysql么企业网站seo平台
  • ie浏览器打开建设银行网站深圳开发公司网站建设
  • 企业形象通用网站搜索热度查询
  • 电子商务网站建设规模计划站长统计
  • 做英语阅读的网站怎么做好公司官网推广
  • 网站功防教程新河seo怎么做整站排名
  • 长春网站建设模板制作怎样做网站的优化、排名
  • 网站建设后如何检测搜狗搜索旧版本
  • 网站banner尺寸郑州高端网站建设
  • 学做衣服网站企业网站制作教程
  • bootstrap 手机网站模板杭州网络推广公司
  • 寿光网站建设推广爱站网关键词密度查询
  • 东莞网站建设推广公司seo网站优化方法
  • 兰州新区建站seo是哪里
  • 珠海电视台app下载seo是什么?
  • wordpress评论翻页外贸网站优化推广
  • 宁夏建设工程招标投标管理中心网站新郑网络推广公司
  • 姜堰 做网站百度的广告
  • 网站怎样上线网络营销课程总结