performence
very_on
这个作者很懒,什么都没留下…
展开
-
链表反转(Java三种实现方式)
####Mackyhuang本博文转移:链表反转(Java三种实现方式)可移步查看####链表这个数据结果经常遇见,这里提供一个链表反转的java代码实现,有三种算法,一种是递归的,俩种是非递归的。####首先为了方便测试,在博文最后贴上递归实现链表创建的代码,以供读者快速上手测试,提供的代码可以复制以后直接测试####先看看Node节点把public class Node {//链表用于存储值private final int value;//指向下一个节点 理解为Node next更转载 2020-07-20 15:07:22 · 19709 阅读 · 0 评论 -
Android App 保活之 ADJ 算法
Android开发中,令人头疼的保活问题始终缠绕每一个开发者。如何保证自己的进程不被系统回收呢?首当其冲应该是保证自己进程的优先级。Android系统在运行时,如果遭遇到内存过低,为保证系统稳定与流畅,会回收一部分不常用的进程(当然很多三方rom如miui会在电量过低也会回收)。这个回收过程当然不是随意回收,系统需要有一个判断进程优先级的指标,帮助系统判断哪些资源是优先级高需要保留,哪些资源优先级比较低需要释放该资源。ADJ就是系统杀死进程的重要指标本文从linux\Android进程优先级:adj分转载 2020-07-20 11:09:46 · 3327 阅读 · 0 评论 -
Android显示系统框架初探
Android显示系统框架初探 一、前言:Android显示系统框架跟随着谷歌Android 8的Treble架构改革而发生较大的变动,从此之后hal层就以单独的hwc(hwcomposer)进程而存在,SurfaceFlinger进程通过hwbinder跟hwc进程打交道,两兄弟从此相爱相恨。 而Linux内核显示部分也从帧缓存(FrameBuffer)迈进了DRM时代(英文全称...转载 2020-06-22 17:00:19 · 1490 阅读 · 1 评论 -
Android虚拟机的JIT编译器
Android虚拟机的JIT编译器0.0962019.06.07 10:48:26字数 1765阅读 363背景最近参加了华为方舟的Workshop,从编译到Runtime都有了一些体会,并且对于虚拟机的运行也有了一些了解。Android虚拟机的演变4.4版本前,使用的是Dalvik虚拟机5.0版本以后,使用的是Art虚拟机Dalvik虚拟机原理Dalvik是基于寄存器的虚拟机...转载 2019-10-17 15:37:52 · 1506 阅读 · 0 评论 -
Android性能分析工具
性能优化系列消除卡顿 内存优化 性能分析工具TraceView Android性能分析工具内存分析工具1.1 heap工具获得hprof文件heap工具主要是用来检测堆内存的分配情况的。它可以导出一个hprof文件,这个是手机某个时间段的内存镜像,通过分析该文件,就可以得知堆内存的分配情况。heap工具位于Android Device Monitor中(这个Android ...转载 2018-08-20 22:21:26 · 1354 阅读 · 0 评论 -
高通---GPU&CPU频率和工作模式的获取设置
1gpu信息获取 1.1 高通gpu说明 高通设备CPU采用cpufreq框架动态调节频率,相似的GPU这块采用了Linux devfreq框架进行调节。Devfreq有四种对频率的管理策略governor(框架规定,实际实现各厂商不同):1、 performance:GPU会固定工作在其支持的最高频率上,以追求最高性能。2、 powersave:GPU会固定工...转载 2018-10-11 11:08:27 · 6957 阅读 · 0 评论 -
Android 性能优化之旋转屏幕优化
我的博客原文地址问题背景在桌面转屏发现响应不够迅速,对比其他产品有很大的提升空间,针对此问题进行了一些分析和优化。问题分析和解决方法首先简单介绍一下旋转屏幕的流程,首先各个界面要进行重绘,在重绘过程中要进行冻屏,只有所有Window都进行绘制完成了才进行转屏,因此这里面就有个木桶效应,转屏的时间取决于重绘最慢的那个。首先分析Log,找出可以优化的点:adb shell du...转载 2018-10-11 14:14:35 · 2008 阅读 · 0 评论 -
Android 系统重启原因分析
重启原因分类1.上层造成重启system_server被杀 watchdog重启 重要线程阻塞2.kernel造成重启空指针 非法地址3.kernel watchdog造成重启,原因不确定内存原因 nand驱动log查看步骤及关键字1. 重启后的kernel.log或misc/cmdline.log在log最前面,会有很长的一段,如:initrd=0x8...转载 2018-10-11 15:53:52 · 1517 阅读 · 0 评论 -
高通---GPU&CPU频率和工作模式的获取设置
1gpu信息获取 1.1 高通gpu说明 高通设备CPU采用cpufreq框架动态调节频率,相似的GPU这块采用了Linux devfreq框架进行调节。Devfreq有四种对频率的管理策略governor(框架规定,实际实现各厂商不同):1、 performance:GPU会固定工作在其支持的最高频率上,以追求最高性能。2、 powersave:GPU会固定工...转载 2018-10-11 16:11:41 · 1337 阅读 · 0 评论 -
Android 工具:Profile GPU Rendering
一、Profile GPU Rendering工具Profile GPU Rendering工具对于相对于16毫秒每帧的基准花了多少时间来渲染UI,给了一个快速可视化的展示:1. 它帮你快速查看一个UI窗口有多少超过了16毫秒每帧的目标;2. 确定是否渲染线条的任何部分在处理时间上都超出了;3. 寻找在用户或者程序操作相关的渲染时间峰值;二、启动Profile GPU Renderi...转载 2018-09-28 13:39:23 · 1558 阅读 · 1 评论 -
Android 性能分析之TraceView使用(应用耗时分析)
文章概览:TraceView概述 trace文件的3种生成方式 Android studio 直接生成(推荐) 嵌入代码代码生成 使用DDMS来生成 TraceView界面及参数介绍 使用TraceView分析,定位问题 相关资料TraceView概述Traceview是android平台配备一个很好的性能分析的工具。它可以把trace文件转化为图形,通过图形化...转载 2018-09-29 14:45:39 · 296 阅读 · 0 评论 -
android性能分析之Systrace的使用
一、概述 保证系统流畅度,也就是保证系统能连续不间断地提供每秒60帧的运行状态。当出现掉帧时(也可称为Jank),需要知道当前整个系统所处的状态,systrace便是最佳的选择,它能手机检测Android系统各个组件随着时间的运行状态,并能提示该如何有效地修复问题,接下来说说systrace如何使用以及如何解读。 二、Systrace2.1 使用DDMS启动Trace:第...转载 2018-09-30 14:02:06 · 1196 阅读 · 0 评论 -
手把手教你使用Systrace(一)
Systrace是分析Android性能问题的神器,Google IO 2017上更是对其各种强推;由于TraceView过于严重的运行时开销,我怀疑这个方向是不是压根儿就是错误的。个人预计Google会放弃TraceView转向全力支持Systrace;不过这个工具并不像TraceView那样简单直观,使用起来也不太方便,而且没有一个详尽的文档介绍如何使用和分析;本文和后续旨在弥补这一块的缺失...转载 2018-10-25 10:17:42 · 949 阅读 · 0 评论 -
Android流畅度之帧率
Android流畅度之帧率 背景:app改版,人为感受卡顿,需要客观数据支撑观点。故,搜索各种性能指标,并理解之。(这是一篇摘要文......)首先,明确人为感受的性能不好属于下面哪种:1. 响应时间,界面跳转后响应时间;2. 流畅度,界面操作时或动画展示的效果;而流畅度的衡量指标又有几种:1. 帧率fps(Frames Per Sec...转载 2018-10-25 15:23:01 · 1564 阅读 · 0 评论 -
Android流畅度总结
一、谷歌官方对流畅度的解释:Android流畅运行,需要运行60帧/秒, 则需要每帧的处理时间不超过16ms。二、IOS系统比ANDROID系统流畅的原因因为Android系统UI的框架设计的问题。在iOS中UI渲染过程具有绝对的优先等级,当用户接触到iPhone的触摸屏后,iOS中所有的进程都将停止,系统会将所有资源用于渲染UI过程。而在Android系统中UI渲染过程的优...转载 2018-10-25 16:14:59 · 623 阅读 · 0 评论 -
Android App性能评测分析-流畅度篇
1.前言在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多。一些下拉上滑、双指缩放快速打字等操作,安卓的流畅度都表现比较糟糕,但是,对于App使用过程是否流畅,一直没有一个可靠的指标将用户的客观感受和数据一一对应。虽然之前有FPS(每秒帧数)作为游戏或视频类App的性能指标,但对于那些界面...转载 2018-10-25 16:29:38 · 924 阅读 · 0 评论 -
UI优化之-GPU Rendering Profile
序言GPU Rendering Profilegpu rendering profile是什么android是如何将View绘制到屏幕上的不同颜色的不同含义image.png序言app的性能优化可分为 流畅,稳定性,耗电量,流量节省 几个大类,其中与流畅挂钩的就是UI界面的优化程度,在17年的开发中接触过一些UI界面卡顿的问题,在开发代码的过程中也应用到...转载 2018-10-25 16:35:35 · 319 阅读 · 0 评论 -
Profile GPU rendering
android性能分析工具Profile GPU rendering详细介绍 [此博文包含图片] (2015-05-10 15:34:03)转载▼分类: Android如何在一个应用中追踪和定位性能问题,甚至在没有它的源代码的情况下??“Profile GPU rendering”(GPU渲染分析),一款Android4.1所引入的工具。你可以在“设置”应用的“开发者选项”中找到这个工具...转载 2018-10-25 16:37:15 · 370 阅读 · 0 评论 -
Android 8.0 启动速度优化工具
在Android 8.0上面,google进行了启动速度的优化,但是对于开发者来说,追求更快的速度是必须的。这边就介绍一个android启动速度优化的工具,bootchart。bootchart在5.0的时候就以推出,但是现在的使用方式有了一些调整,下面就简单介绍一下.首先,bootchart在8.0上面已经编译进了boot的image中,需要我们激活使用。详细步骤如下:1. 在ubu...转载 2018-10-30 16:47:22 · 671 阅读 · 1 评论 -
性能分析工具 — bootchart 工具使用(android 8.1)
bootchart 是一个用于 linux 启动过程性能分析的开源工具软件,在系统启动过程中自动收集 CPU 占用率、磁盘吞吐率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。bootchart 让用户可以很直观的查看系统启动的过程和各个过程耗费的时间,以便让用户能够分析启动过程,从而进行优化以提高启动时间。它由 bootchartd 服务和 bootchart-rende...转载 2018-10-30 16:50:13 · 1726 阅读 · 0 评论 -
Android杂谈:systrace简单查看一个应用的启动流程
腾空.pngsystrace是用来查看应用和系统运行状态的工具,利用他可以分析一些性能问题。例如查看应用是否卡顿,卡在那个方法了之类的问题。本文简单抓一个浏览器启动的systrace随便看看吧。一.启动Andriod Device Monitor连接手机,启动Andriod Device Monitor,点击一下下图箭头指向那个图标Andriod Device Monit...转载 2018-11-03 15:59:26 · 1781 阅读 · 0 评论 -
android性能分析之Systrace的使用
一、概述保证系统流畅度,也就是保证系统能连续不间断地提供每秒60帧的运行状态。当出现掉帧时(也可称为Jank),需要知道当前整个系统所处的状态,systrace便是最佳的选择,它能手机检测Android系统各个组件随着时间的运行状态,并能提示该如何有效地修复问题,接下来说说systrace如何使用以及如何解读。二、Systrace2.1 使用DDMS启动Trace:第1步:如何...转载 2018-11-03 16:11:25 · 1423 阅读 · 0 评论 -
Android性能优化第(八)篇---App启动速度优化之耗时检测处理
应用的启动速度缓慢这是很多开发者都遇到的一个问题,比如启动缓慢导致的黑屏,白屏问题,大部分的答案都是做一个透明的主题,或者是做一个Splash界面,但是这并没有从根本上解决这个问题。那么如何从根本上解决这个问题或者做到一定程度的缓解?一、应用的启动方式1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会首先会创建一个新的进程分配给该应用,这种启动方式就是冷启动。2、热启动:当启...转载 2018-11-12 20:41:05 · 1375 阅读 · 0 评论 -
使用Android profile 分析性能(一)
<p><strong>Android profile 能够提供关于应用 CPU、内存和网络 Activity 的实时数据,测量应用性能</strong></p>首先 启用高级分析1.Run > Edit Configurations.2.选中左侧要分析的APP3.选定Profiling tab > Enable a...转载 2018-11-27 11:15:55 · 831 阅读 · 0 评论 -
Android Studio +MAT 分析内存泄漏实战
对于内存泄漏,在Android中如果不注意的话,还是很容易出现的,尤其是在Activity中,比较容易出现,下面我就说下自己是如何查找内存泄露的。首先什么是内存泄漏?内存泄漏就是一些已经不使用的对象还存在于内存之中且垃圾回收机制无法回收它们,导致它们常驻内存,会使内存消耗越来越大,最终导致程序性能变差。 其中在Android虚拟机中采用的是根节点搜索算法枚举根节点判断是否是垃圾,虚拟机会从G...转载 2018-11-27 11:29:00 · 147 阅读 · 0 评论 -
内存泄露分析之MAT工具使用
MAT工具使用理解相关概念在了解MAT工具之前,我们需先对以下几个概念有所认知:1)强引用、弱引用、软引用、虚引用2)Shallow Size、Retained Size、Heap Size和AllocatedMAT工具实战看完1)、2)两篇博客,相信大家此时对几个概念已具备了一定认知,下面就进入正题MAT工具的使用,说到MAT工具(Memory&n...转载 2018-12-13 13:55:39 · 476 阅读 · 0 评论 -
高通平台如何offline 抓取systrace log
当系统需要深度睡眠时,离线systrace可以帮助收集systrace。 在这种情况下,像没有usb连接可用或系统需要进入LMP其他模式。您可以使用这个文档获得正确的systrace以帮助性能问题。前提1.adb root和adb remount可用2./system/bin/atrace可用收集systrace1,运行“adb root && adb remo...转载 2018-12-20 17:22:58 · 1002 阅读 · 0 评论 -
介绍systrace
一、介绍systracesystrace是Android4.1版本之后推出的,对系统Performance分析的工具。systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。在Android平台中,它主要由3部分组成:内核部分:Systrace利用了Linux Kernel中的ftrace功能。所以,如果要使用systrace的话,必...原创 2018-12-28 14:37:32 · 425 阅读 · 0 评论 -
Systrace分析app启动分析
Android Version: 6.0及以上Platform: 通用1. 介绍此篇文章将介绍如何通过systrace来分析在launch界面click一个app的icon后app的启动时间,包括了animation off和animation on的情况,以google music应用为例。2. 寻找InputReader–>AppLaunch_dispatchPtr:Down根...原创 2018-12-28 15:32:50 · 1992 阅读 · 0 评论 -
Android绘制优化(一)绘制性能分析
一个优秀的应用不仅仅是要有吸引人的功能和交互,同时在性能上也有很高的要求。运行Android系统的手机,虽然配置在不断的提升,但仍旧无法和PC相比,无法做到PC那样拥有超大的内存以及高性能的CPU,因此在开发Android应用程序时也不可能无限制的使用CPU和内存,如果对CPU和内存使用不当也会造成应用的卡顿和内存溢出等问题。因此,应用的性能优化对于开发人员有着更高的要求。Android性能优化分...转载 2018-12-18 10:44:53 · 464 阅读 · 0 评论 -
Android性能分析工具Systrace和TraceView的使用
1.Systrace的介绍&amp;nbsp; &amp;nbsp; &amp;nbsp;Systrace是Android4.1中新增的性能数据采样和分析工具。它可帮助开发者收集Android关键子系统(如Surfaceflinger、WindowManagerService等Framework部分关键模块、服务)的运行信息...转载 2019-01-03 16:13:39 · 886 阅读 · 0 评论 -
Android 性能优化:使用 TraceView 找到卡顿的元凶
前言TraceView 是什么生成 trace 文件使用代码生成 trace 文件使用 Android Studio 生成 trace 文件使用 DDMS 生成 trace 文件根据 TraceView 显示内容定位问题解决 DDMS 中的 TraceView 无法搜索find 无法使用的问题解决办法就是直接使用 SDK 中的 TraceView TraceView...转载 2019-01-03 16:37:16 · 1170 阅读 · 0 评论 -
adb shell dumpsys meminfo 内存测试指标解析
网上资料中有很多说明,但是没有解析的太清楚,我这里分析汇总了一下。供大家参数。学习知识,要关注细节,懂与不懂差很多的呦!我说的是薪资:)。Native Heap:Native代码分配的内存,虚拟机和Android框架分配内存。关于什么是Native代码,即非Java代码分配的内存。详细介绍请找百度。Dalvik Heap:Java对象分配的占据内存Dalvik Other:类数据结构和索引占...原创 2018-12-29 11:24:19 · 23905 阅读 · 1 评论 -
dex2oat对应用启动性能的影响
问题描述初步分析systrace分析问题猜想刨根溯源总结 不可忘记用爱心接待客旅,因为曾有接待客旅的,不知不觉就接待了天使。—希伯来书13:2问题描述chrome应用冷启动缓慢,跟参考机相比在luncher界面点击chrome图标,有一个明显的延迟,然后chrome才被启动起来。从点击图标到第一个界面加载完全显示,问题机相对参考机要慢3s左右。初步分析在 And...转载 2018-12-19 11:18:00 · 3390 阅读 · 1 评论 -
Android 性能优化之应用启动
写在前面问题描述问题分析Email应用版本自身的影响平台影响cpu差异内存差异IO 读写速度差异写在最后写在前面最近工作转到Android 性能优化方向,刚转过来,相关经验缺乏,纪录一个目前让人恼火的问题。非常遗憾,本文到目前为止还未能提供解决问题的优化方案,也没有明确定位到导致性能问题的瓶颈所在。就像解数学题一样,花费了大把时间,然并卵。之所以写它,...转载 2018-12-19 11:24:16 · 288 阅读 · 0 评论 -
关于adb shell procrank提示procrank: not found的问题解决
前提条件: 1.手机已root,能够获取得到读写手机system目录权限; 2.下载procrank文件,下载链接:https://pan.baidu.com/s/1gfIcA7D,密码:r2fu;操作步骤: 1.先把libpagemap.so、procmem、procrank三个文件push到手机sdcard中; 2.然后执行adb shell和cd sdcard进入手机目录,并输...转载 2019-01-06 11:06:11 · 947 阅读 · 0 评论 -
内存泄漏与排查流程——安卓性能优化
内存泄漏可以说是安卓开发中常遇到的问题,追溯和排查其问题根源是进阶的程序猿必须具备的一项技能。小盆友今天便与大家分享一下这方面的一些见解,如有理解错误或是不同见解,可以于评论区留言我们进行讨论,如果喜欢给个赞鼓励下吧。篇幅较长,可以通过目录寻找自己所需了解的吧目录1、JAVA内存解析2、JAVA回收机制3、四种引用4、小结5、安卓内存泄漏排查工具6、内存泄漏检查与解决流程7、...转载 2019-01-06 11:54:08 · 803 阅读 · 0 评论 -
查看触摸屏报点率
查看触摸屏报点率getevent -r |grep “eventx”相应代码在 system/core/toolbox/getevent.c usage:static void usage(int argc, char *argv[]){ fprintf(stderr, "U...原创 2019-01-17 11:00:54 · 4631 阅读 · 0 评论 -
Android APP性能优化(最新总结)
导语安卓大军浩浩荡荡,发展已近十个年头,技术优化日异月新,如今Android 8.0 Oreo 都发布了,Android系统性能已经非常流畅了。但是,到了各大厂商手里,改源码自定系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。另外,随着产品内容迭代,功能越来越复杂,U...转载 2019-01-17 11:18:57 · 510 阅读 · 0 评论 -
Android硬件加速(二)-RenderThread与OpenGL GPU渲染
Android硬件加速(二)-RenderThread与OpenGL GPU渲染Android4.0之后,系统默认开启硬件加速来渲染视图,之前,理解Android硬件加速的小白文简单的讲述了硬件加速的简单模型,不过主要针对前半阶段,并没怎么说是如何使用OpenGL、GPU处理数据的,OpenGL主要处理的任务有Surface的composition及图形图像的渲染,本篇文章简单说一下后半部分的模型...转载 2019-01-17 17:08:37 · 2859 阅读 · 0 评论