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

做网站能力介绍/营销策略包括哪些内容

做网站能力介绍,营销策略包括哪些内容,做网站公司简介模版,做PPT参考图片网站 知乎一、应用的启动 启动方式 通常来说,在安卓中应用的启动方式分为两种:冷启动和热启动。 1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动…

一、应用的启动

启动方式

通常来说,在安卓中应用的启动方式分为两种:冷启动和热启动。

  • 1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。
  • 2、热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。

特点

1、冷启动:冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创建和初始化MainActivity类(包括一系列的测量、布局、绘制),最后显示在界面上。

2、热启动:热启动因为会从已有的进程中来启动,所以热启动就不会走Application这步了,而是直接走MainActivity(包括一系列的测量、布局、绘制),所以热启动的过程只需要创建和初始化一个MainActivity就行了,而不必创建和初始化Application,因为一个应用从新进程的创建到进程的销毁,Application只会初始化一次。

上面说的启动是点击app的启动图标来启动的,而另外一种方式是进入最近使用的列表界面来启动应用,这种不应该叫启动,应该叫恢复。

二、应用启动的流程

在安卓系统上,应用在没有进程的情况下,应用的启动都是这样一个流程:当点击app的启动图标时,安卓系统会从Zygote进程中fork创建出一个新的进程分配给该应用,之后会依次创建和初始化Application类、创建MainActivity类、加载主题样式Theme中的windowBackground等属性设置给MainActivity以及配置Activity层级上的一些属性、再inflate布局、当onCreate/onStart/onResume方法都走完了后最后才进行contentView的measure/layout/draw显示在界面上,所以直到这里,应用的第一次启动才算完成,这时候我们看到的界面也就是所说的第一帧。

所以,总结一下,应用的启动流程如下:

Application的构造器方法——>attachBaseContext()——>onCreate()——>Activity的构造方法——>onCreate()——>配置主题中背景等属性——>onStart()——>onResume()——>测量布局绘制显示在界面上。

三、测量应用启动的时间

在上面这个启动流程中,任何一个地方有耗时操作都会拖慢我们应用的启动速度,而应用启动时间是用毫秒度量的,对于毫秒级别的快慢度量我们还是需要去精确的测量到到底应用启动花了多少时间,而根据这个时间来做衡量。

什么才是应用的启动时间

从点击应用的启动图标开始创建出一个新的进程直到我们看到了界面的第一帧,这段时间就是应用的启动时间。

我们要测量的也就是这段时间,测量这段时间可以通过adb shell命令的方式进行测量,这种方法测量的最为精确,命令为:

?
1
adb shell am start -W [packageName]/[packageName.MainActivity]

执行成功后将返回三个测量到的时间: 
1、ThisTime:一般和TotalTime时间一样,除非在应用启动时开了一个透明的Activity预先处理一些事再显示出主Activity,这样将比TotalTime小。 
2、TotalTime:应用的启动时间,包括创建进程+Application初始化+Activity初始化到界面显示。 
3、WaitTime:一般比TotalTime大点,包括系统影响的耗时。

下面是测量一个应用冷启动和热启动的时间: 
冷启动: 

热启动: 

可以看到在进程已经存在的情况下,只需要重新初始化MainActivity,这样的启动比较快,不过大多数情况下应用的启动都是冷启动,因为用户都会在任务列表中手动关闭遗留的应用进程。

四、减少应用启动时的耗时

针对冷启动时候的一些耗时,如上测得这个应用算是中型的app,在冷启动的时候耗时已经快700ms了,如果项目再大点在Application中配置了更多的初始化操作,这样将可能达到1s,这样每次启动都明显感觉延迟,所以在进行应用初始化的时候采取以下策略: 

  • 1、在Application的构造器方法、attachBaseContext()、onCreate()方法中不要进行耗时操作的初始化,一些数据预取放在异步线程中,可以采取Callable实现。
  • 2、对于sp的初始化,因为sp的特性在初始化时候会对数据全部读出来存在内存中,所以这个初始化放在主线程中不合适,反而会延迟应用的启动速度,对于这个还是需要放在异步线程中处理。
  • 3、对于MainActivity,由于在获取到第一帧前,需要对contentView进行测量布局绘制操作,尽量减少布局的层次,考虑StubView的延迟加载策略,当然在onCreate、onStart、onResume方法中避免做耗时操作。

遵循上面三种策略可明显提高app启动速度。

转载于:https://www.cnblogs.com/mawenqiangios/p/9001087.html

http://www.lbrq.cn/news/836947.html

相关文章:

  • 汽车网站更新怎么做/百度推广是怎么做的
  • wordpress建站的案例/网络推广优化方案
  • 阜宁网站制作费用/免费国外ddos网站
  • 公司网站高端网站建设/真正免费的网站建站平台运营
  • 化妆品做的不好的网站/十大app开发公司排名
  • 舟山公司网站建设/google官网下载安装
  • 二次元动漫网站设计方案/网页制作平台有哪些
  • 网站建设明薇通网络价格美丽/广告制作公司
  • 商务网站设计实训总结/广告公司推广方案
  • 大连模板建站哪家好/手机百度app安装下载
  • 买网站做淘宝客/守游网络推广平台
  • html制作简单个人主页代码/东莞百度推广排名优化
  • 网站建设报价单模板下载/百度电脑版官方下载
  • 怎么在网站做gif/北京外贸网站优化
  • 建立自己的公司网站/昆明优化网站公司
  • 权威的手机网站建设/360提交入口网址
  • 做网站年入多少/谷歌官网下载app
  • wap网站乱码/百度一下你就知道下
  • 手机企业网站建设开发/刚刚济南发通知
  • 无极网页游戏/武汉seo托管公司
  • 泉州网站建设多少钱/如何开发软件app
  • 织梦网站模板响应式/台州seo快速排名
  • 苏州园区建设网站首页/seo设置是什么
  • 郑州专业网站设计公司地址/产品推广
  • 做公司的网站的需求有哪些内容/免费个人网站建站申请
  • 网站推广软件价格/谷歌seo和百度seo区别
  • ps做网站logo尺寸/搜索引擎优化的目的是对用户友好
  • 怎么做电脑端网站设计稿/nba赛程排名
  • 建网站是什么技术/河南省疫情最新情况
  • 长沙手机网站建设哪些内容/百度seo优
  • 下载anaconda和pycharm,管理python环境
  • github上传大文件(多种解决方案)
  • 分布式系统高可用性设计 - 监控与日志系统
  • Python高级编程技巧探讨:装饰器、Patch与语法糖详解
  • C# 8.0 创建一个简单的控制台应用程序
  • 端侧推理软件栈