自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

oujunli的专栏

路漫漫其修远兮,吾将上下而求索

原创 常用命令汇总

Android: adb shell ps 得到进程号 adb shell am dumpheap 进程号  /storage/sdcard0/mem.hprof   //倒出hprof文件 adb reboot bootloader//重启进入fastboot模式 fastboot flash ...

2013-05-06 21:51:27 4892 2

原创 慎用Android Process setThreadPriority

最近几个版本,发现公司产品的线上启动时间,突然增加了2s左右,而且线下测试也能够测试在低端机器上,耗时增加明显。复现问题因为在低端机器上很容易复现,于是用红米note 1s测试,对比前后两个版本A和B,B版本确实会比A版本平均慢2s左右。在测试过程中会重复的安装与卸载apk,有的时候发现B版本时间...

2016-07-20 19:19:08 6699 1

原创 Android CPU使用率:top和dump cpuinfo的不同

CPU是系统非常重要的资源,在Android中,查看CPU使用情况,可以使用top命令和dump cpuinfo。我记得很久以前,就发现这两者存在不同,初步猜测应该是算法上存在差异。最近需要采集应用CPU的使用率,看了一下两种CPU的计算方法。1、toptop是比较经典的CPU计算方法,top的代...

2016-05-20 18:04:20 9900 1

原创 Android性能优化之路(五年之痒)

记得在上学的时候,就听说在某个方面坚持学习一年,也就入门了。很庆幸,工作五年了,一直都在做Android性能优化。一般来说,工作三年左右会是工作的一个门槛,五年左右会是另外一个门槛,所以最近非常的低落、迷茫。昨晚外面下着漂泊大雨,辗转反侧的我,在想自己这从业五年以来的经历。刚毕业的人,会觉得很多东...

2016-04-23 13:43:46 1915 2

原创 生活、工作、总结(十一)

不做Android性能的我,如果行尸走肉一般。难道技术这条路真的会这么艰辛?世间有伯乐,而后才有千里马,千里马常有,而伯乐不常有,我的伯乐在哪?我的路在何方? 2016.03.06记,致迷茫的自己。。。

2016-03-06 22:32:25 750 1

原创 Android CPU FlameGraph

记得刚接触Android性能的时候,Android还是2.3,用的是TraceView,到Android 4.1的时候,又用了Systrace。TraceView可以称得上是Android APP的性能优化神器,然后Traceview的特点是对性能影响太大,几倍到几十倍的性能影响,导致很多时候,都...

2016-01-24 20:22:23 2077 2

原创 生活、工作、总结(十)

好久没有更新博客了,因为实在是不知从何说起,换句话说,也就算过的不怎么的。工作上,接触了很多新的东西。也许是因为过于前沿,技术性很强,也许是自己能力不足,无法参透实物的本质,以至于自己显的无能为力。越来越不习惯这种十天半个月没有成果就会被追问日子了,多么怀念当年可以可以花一两月去解决一个问题的时候...

2016-01-01 22:25:44 765 1

原创 Android Java和Native Memory Flame Graph

对于做性能的人来说,不知道问题所在时,最好可视化它,而Memory一直以来,都是性能关注的重点,然而在Android上,却也只能dumpsys meminfo这种运行古老的命令行查看内存,VM的内存好一点,可以dump hprof文件查看,但也是Static的方式,或者使用LeakCanary,查...

2015-10-22 22:49:25 1773 8

原创 生活、工作、总结(九)

最近比较忙,忙的不可开交,然而却没有多少感觉。一直都有想写一本介绍Android性能优化的书的想法,然而开头了以后,确不敢再继续了,因为在这个行业待的时间越长,越觉的自己无知。以前的时候,经常在技术上感到迷茫,不知走向何方,现在见的越多,越感觉知识的匮乏,很多要学,很多想学,然而时间却并没有这么充...

2015-09-27 18:30:58 933 4

原创 生活、工作、总结(八)

不知不觉中,我又回归做性能接近三个月了,在performance这条路上,我已经走过四个年头了。知道性能的人很少,做性能的人更少,喜欢做性能的人,几乎找不到多少了,期间的艰辛似乎只有经历过的人才能明白。回到做性能,与以前的感觉完全不一样。毕业以来,一直都从事performance相关的工作,即使有...

2015-08-18 20:59:56 1063 6

原创 生活、工作、总结(七)

不知不觉中,我已经工作四年了,在阿里工作一年了,没有想到会做性能一直做了四年。         有人跟我说,纯碎的做性能是没有发展前途的,以我现在情况来看,我也是这样觉得。一直喜欢做性能的原因是觉得性能需要对技术比较执着,而且性能是一个永远没有止境的方向,很感激我的师傅领我进入这个门。不知道为什...

2015-05-16 12:59:50 943 0

原创 生活、工作、总结(六)

生活、工作

2015-02-06 20:23:59 716 0

原创 Android performance今天的发现

好久没有在Android Performance领域有什么新发现了,今天在跟踪问题的时候,突然发现Android也可以看到这样的图: 在Android上找这种类型的图找了两年了,终于找到了。在Android Performance这条路上略感迷茫的时候,能找到这种图像,又看到了希望,继续坚...

2015-01-23 22:55:11 2213 3

原创 生活、工作、总结(五)

不知不觉中2014就过完了,这一年对自己来说是个挑战,换了城市,换了工作,一切都是从零开始,些许失望,些许成功。      工作上,由以前做system performance换车了app performance。system performance技术性更强,app performance跟接...

2015-01-11 21:36:27 975 0

原创 生活、工作、总结(四)

不知不觉中,已经来杭半年了,

2014-10-26 13:11:19 832 0

原创 ART Systrace查看Lock

Android 4.4在ART

2014-08-03 14:08:41 2579 0

原创 初步体验Android L的battery historian

周末在家没事,

2014-07-08 13:52:14 18803 7

原创 Android Xposed得到性能数据

说到Android性能栅栏,b

2014-06-11 20:07:27 8375 0

原创 阿里面试总结

2014.3.30       记得去年的时候,媳妇问我,在BAT三个公司中选一个,会去哪个公司?当时几乎没有多想,就说,阿里吧!阿里对我来说,有一种莫名的向往!只是随便聊聊天而已,觉得自己技术还没有达到要求,也没去多想。     世间的事就是那么奇怪,还真有人问我对阿里的工作感兴趣否...

2014-04-04 19:31:44 3059 4

原创 Android在创建硬件层慢的原因分析

最近在项目上,发现很多应用在开始滑动的时候,都会卡顿一下,看了一下systrace文件,可以看到在buildLayer的时候耗时比较长:       可以看到是在glTexImage2D耗时比较多。进一步使用GL Trace分析,可以看到: glTexImage2D(targ...

2014-02-11 17:02:26 2936 8

原创 退出U盘模式后滑动Launcher卡顿的问题分析

最近公司的手机发现退出U盘模式后,在U盘存有图片等内容比较多的情况下,滑动Launcher会有一段时间卡顿的现象。其实不是最近的项目才有的问题,以前的项目就有,一直都没有解决而已,顽疾。        当然,是在U盘不同模式直接切换的时候出现了问题,跟负责Vold的一起分析了一下,没有发现什么异常...

2014-02-11 11:47:40 2845 9

原创 Android 进入退出应用动画卡顿分析

android 性能优化

2014-01-01 21:39:55 14755 21

原创 Android计算函数时间戳的方法

对于做性能的人来说,知道时间的花在哪了是比较重要的,可以在函数前后得到系统的时间,计算时间戳能够得到每个函数的时间。 在JAVA中可以通过System.currentTimeMillis()得到: long> View.draw(canvas); long> long> Log...

2013-12-25 21:24:51 15967 0

原创 Android代码添加systrace跟踪

android 4.3系统上,应用可以使用      import android.os.Trace;      Trace.beginSection("TEST");      Trace.endSection(); 添加systrace跟踪,然后通过thon sys...

2013-11-22 18:01:32 21707 1

原创 Android内存的使用

通常,对应Linux的系统来说,可以通过cat /proc/meminfo查看内存的使用情况,Android是基于Linux的,所有也可以使用adb shell cat /proc/meminfo 查看内存的使用情况,如下所示: MemTotal:        1893284 kB Mem...

2013-10-18 16:45:49 7958 0

原创 与dalvik GC相关的属性详解

在dalvik中,GC的类型有三种: 1、GC_EXPLICIT:     应用主动调用System.gc()产生的GC事件。 2、GC_FOR_ALLOC:     内存分配时,发现可用内存不够时触发的GC事件。 3、GC_CONCURRENT:     给java层的cla...

2013-10-12 11:56:29 23275 4

原创 Android动态调试程序

以前在chinaunix上发过一遍同样的文章,原文内容如下(http://blog.chinaunix.net/uid-23738462-id-3244927.html): 写程序的话,只要有思路,实现起来不会太难,而我们经常要做的是读别人的程序,自己写的程序如果没有好的注释的话,过一段时间以后...

2013-09-28 14:44:27 4905 12

原创 内存碎片导致应用不断被杀的问题

内存分配一波三折,小结一下: 1.      先尝试快速分配,其中会从不同的zone以及迁移类型上去尝试,失败的话就进入慢速分配,里面会再划分单页面从pcp上分配以及多页面从伙伴系统中分配。 2.      尝试慢速分配,一般流程就是唤醒内存页面回收线程,然后尝试低水位分配 -> 忽略水...

2013-08-19 20:16:20 24636 8

原创 Android使用gdb调试native程序

1、push gdbserver到手机,并修改为可执行权限。 adb shell push gdbserver /system/bin/ adb shell chmod 777 /system/bin/gdbserver 2、得到进程号并attact上进程。 adb shell ps |grep ...

2013-08-02 16:01:44 2980 0

原创 配置内核支持Ftrace

1、添加下面的config: STRICT_MEMORY_RWX=n CONFIG_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER CONFIG_FUNCTION_GRAPH_TRACER=y CONFIG_STACK_TRACER...

2013-06-22 16:39:09 1630 0

原创 通过Android trace文件分析死锁ANR

对于从事Android开发的人来说,遇到ANR(Application Not Responding)是比较常见的问题。一般情况下,如果有ANR发生,系统都会在/data/anr/目录下生成trace文件,通过分析trace文件,可以定位产生ANR的原因。产生ANR的原因有很多,比如CPU使用过高...

2013-06-15 22:26:50 51758 12

原创 Intel和AT&T语法的主要区别

1、AT&T使用$表示立即操作数,Intel是不需要的。 2、AT&T在寄存器名称前面加上前缀%,Intel不这么做。 3、AT&T语法出来源和目的操作数与Intel是相反的。 4、AT&T语法在助记符后面使用单独的字符来引用操作数中使用的长度。如movl $...

2013-06-04 17:53:47 1332 0

原创 Android bootchart使用步骤

1、 主机安装bootchart工具 sudo apt-get install bootchart(Ubuntu) 2、  生成支持bootchart的boot.img export INIT_BOOTCHART=true make boot.img 烧写boot.img到手机,重启...

2013-06-03 15:20:19 5625 0

原创 列表滑动、mdelay or msleep和对齐唤醒

1、列表滑动      记得从去年快放假的那两周,刚开始的时候,是很多人信息列表卡顿。通过不停的跟踪发现 在显示文本的时候,Android不提倡使用硬件加速的方式。虽然Android 4.0以后,Android在很多地方 都提倡用硬件加速的方式去绘图,以提高绘图效率,但对于中文的文本,这种方...

2013-05-28 15:09:39 3402 0

原创 在User模式下开启ftrace、adb root和traceview的方式

1.配置kernel,在config文件中删除下面的设定; # CONFIG_PERF_EVENTS is not set # CONFIG_HW_PERF_EVENTS is not set # CONFIG_PROFILING is not set # CONFIG_EVENT_T...

2013-05-28 10:49:56 4133 0

原创 屏幕类型与分辨率表对应表

型号 分辨率 HVGA 320*480 WVGA 480*800 QHD 540*960 HD 720*1280 FHD 1080*1920

2013-05-23 08:56:12 1477 0

原创 开机启动慢的原因分析

最近的项目开机启动花了40多秒,正常开机只需要28秒就能开机起来。 内核的启动我没有去分析,另一个同事分析的。我主要是分析从SystemServer启来到开机动画结束显示解锁界面的这段时间,也就是开机动画的第三个动画开始到结束这段时间,这是个比较耗时阶段,一般都在17秒左右(见过牛B的手机,只需...

2013-04-29 13:46:31 3318 3

原创 性能工具

systrace:Android显示性能,可以看到每帧的情况。 traceview:Android java层的性能。 perf:适用于分析kernel。 aprof: PowerTop: smem: cpufreq-bench: kernbench: lmbench: syst...

2013-04-07 21:51:30 1448 0

原创 参考学习资料

1、Android http://blog.csdn.net/column/details/androidluo.html 2、算法 http://deeplearning.net/ http://blog.csdn.net/yangliuy/article/category/10...

2013-03-22 17:49:32 844 0

原创 生活、工作、总结(三)

又好久没有没有小结一下自己了,总结自己的时间越短,说明学的东西越多,越长,说明自己在荒废,在虚度,在混日过过,这是最不想的。 过了一个年,20多岁了,这是自己唯一一个不在家过年的,心里有些许的愧疚,跑去见家长了,回了一趟西安,那个如此美好,如此淳朴、让人如此怀念的地方,自从离开了那,再也感受不到...

2013-03-04 22:04:12 745 0

提示
确定要删除当前文章?
取消 删除