冷启动、getMeasureHeight、8.0透明activity异常(2019年9月26日 实习总结)

  1. 冷启动优化
    • 视觉方面优化处理
      1. 冷启动,app从头开始启动。需要创建进程
      2. 热启动, 将应用程序从后台提到前台
    • 代码逻辑优化处理
      冷启动加载流程:
      冷启动的任务:加载并启动这个app -----> 在启动之后立刻显示空白的启动窗体(Starting Window) ---------> 给这个app创建进程。 创建完进程之后进入下一阶段:创建app这个对象—>启动主线程—>创建应用的入口—>加载View—>在屏幕上执行View的绘制过程.measure -> layout -> draw
      Once the app process has completed the first draw, the system process swaps out the currently displayed background window, replacing it with the main activity. At this point, the user can start using the app. 总结:就是上面那个阶段完成了之后,才是用户自己的界面。
      Q:为什么会出现白色的闪屏页?
      A: 因为启动之后,activity的视图绘制完毕距离距离启动这个app还有一段时间,所以会有空白的启动窗体。
      Q:android 启动时间的统计
      A:
      开始时间: Application 初始化后会调用 attachBaseContext() 方法,再调用 Application 的 onCreate(),再到入口 Activity的创建和执行 onCreate() 方法。所以我们就可以在 Application 中记录启动时间。
      结束时间:Acitivty 显示给用户的时间(View绘制完毕),在博客( View的工作流程)中了解到,在onWindowFocusChanged()的回调时机中表示可以获取用户的触摸时间和View的流程绘制完毕,所以我们可以在这个方法里记录显示时间。

视觉优化处理方案(在style中处理):

  1. 透明主题
    true

  2. 设置默认闪屏页,也就是给AppTheme设置一个默认的背景。
    @mipmap/ic_launcher

    注:这里的背景图推荐使用mipmap文件夹下的图片。(mipmap和drawable的区别,android中mipmap技术主要是为了应对图片大小缩放的处理问题,比如拿到一个bitmap图片,需要进行缩放动画,可能对这个bitmap进行比较缩小的操作,为了提高缩小的速度和质量,可能用过bitmap技术提前将生成的图片存在内存中,这样就提高了图片渲染的速度和质量。总体来说,drawable和mipmap的区别就是这个渲染效果有没有开启)

  3. NDK
    JNI:Java Native Interface缩写,即Java本地接口
    JNI是Java的编程框架,你可以抽象的把它理解为Java开发中的一种技巧,这种技巧可以使得Java与c/c++语言交互,即可以达到我们Java层调用c/c++的目的。
    NDK的直接释义不好理解,我们一样从简单易懂出来,把Android NDK理解为Android中实现JNI的工具就可以了,所以Android NDK就是适应Android特性来实现JNI的工具。

  4. Only fullscreen opaque activities can request orientation

    这个以前记录过,既然发现了再记一次。这个触发场景是8.0版本,在非全屏的情况下设置透明。在以后就改了。

  5. getMeasureHeight是由自身决定的,getHeight是由他的父布局决定的

  6. 自定义体重选择滑动控件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值