Activity 启动速度分析方法(启动流程分析)
统计方法 按照 Android 官方文档:android_developer: 应用启动时间 ,activity 启动时间的统计方法主要有下面几种: logcat: “Displayed” 在启动 activity 之后抓 logcat,在 log 里面搜 Displayed 关
统计方法 按照 Android 官方文档:android_developer: 应用启动时间 ,activity 启动时间的统计方法主要有下面几种: logcat: “Displayed” 在启动 activity 之后抓 logcat,在 log 里面搜 Displayed 关
统计方法 做优化相关的工作,最重要的就是要有可以量化的指标。所以我们先要知道哪些可以衡量系统占用内存的方法和工具。结合自身工作的一些经验和网上的一些资料,下面先介绍一些查看内存占用情况的方法和工具: dumpsys meminfo dumpsys meminfo 是 Androi
什么是 dram 带宽 一般提到性能优化,或是硬件性能,大多数人的关注点都在 cpu/gpu 的运算能力,关心到内存指标一般也就是看大小。即便是关注到内存的运行频率,很多人也只是知道越高越好,并不理解内存频率是怎么影响整个系统运行的,可能也没想到过内存带宽可能也会成为整个系统的瓶
VR 为何需要性能模式 由于 VR 这个应用场景的特殊性,它需要极低的显示延迟,否则就会出现眩晕感(VR 这套原理网上有,当然也可看看我写的 headtracking 相关文章:VR HeadTracking 分析)。所以用 android 平台跑 VR 业务,是不能使用 and
基本原理 VR 通过分屏渲染一个虚拟的世界,让佩戴者产生沉浸感,如下图所示: 上面中屏幕中的虚拟世界画面,是由 OpenGL 渲染的 3D 世界。我们这里不讨论分屏、反畸变原理,所以只看其中的一边屏幕。我们先说下 OpenGL 中构建虚拟世界的 MVP 矩阵: MVP 矩阵 假
OpenGLES简介 OpenGL 是由 khronos 组织制定的一套跨平台图形接口(Graphic API)规范。简单的理解就是一套 API 。它的实现由各个平台 OEM 来实现,也就是由不同的硬件(GPU)和驱动来实现这套 api。OpenGL ES 是这套 api 的子集
分析之前说一下原理。为要 android 要搞这么复杂的一个东西。那是因为 android 是个多进程的系统,进程间的数据交换、相互调用(某几个程序配合完成某些业务)就涉及跨进程通信。2个进程不能直接访问数据的原因: 每个进程的地址空间的独立的,所以进程A中某个数据的地址在进程
通信就要搞一些协议,binder 的比较简单,但是也有一个基本的模型,这里以最基本的一次 IPC 调用来说明一下。然后涉及的代码主要在(这里不列 java 层的代码了,java 层的代码前面原理篇分析过了,主要是挂马甲调用 native 的方法的): 123456789# nat
前面 binder 原理和通信模型中在接口实现部分(Bp 和 Bn)中应该看到很多地方都有使用 parcel。这个 android 专门设计用来跨进程传递数据的,实现在 native,java 层有接口(基本上是 jni 马甲)。照例先说下源代码位置(4.4 的): 123456
前面分析了 binder 中用来打包、传递数据的 Parcel,一般用来传递 IPC 中的小型参数和返回值。binder 目前每个进程 mmap 接收数据的内存是 1M,所以就算你不考虑效率问题用 Parcel 来传,也无法传过去。只要超过 1M 就会报错(binder 无法分配