Android Performance

Android Performance

True mastery of any skill takes a lifetime

程序员的修炼-02-编程之道
本文是 <程序员的修炼-从优秀到卓越> 的读书笔记的第二篇,这本书的作者是 Jeff Atwood,StackOverflow 的创始人之一,Jeff 的文章涉及面很广,他是一个经验老道的程序员、管理者、创业者,这本书谈到了编程之外的很多东西,不管你是初级工程师,还是资深工程师,本书都值得一读。随着你的阅历的增加,每一次重读这本书,都会有不一样的感悟,正如书名“从优秀到卓越”,作者为你指明了道路,至于是否能成功,则要看自己的修炼了。 我会把读书过程中一些精彩的言论摘录下来,有时会加入一些自己的见解或者经历,读书笔记的大纲与书本身的大纲是一致的,这也是我从另外一个地方学到并一直...
程序员的修炼-01-绝地反击之术
本文是 <程序员的修炼-从优秀到卓越> 的读书笔记的第一篇,这本书的作者是 Jeff Atwood,StackOverflow 的创始人之一,Jeff 的文章涉及面很广,他是一个经验老道的程序员、管理者、创业者,这本书谈到了编程之外的很多东西,不管你是初级工程师,还是资深工程师,本书都值得一读。随着你的阅历的增加,每一次重读这本书,都会有不一样的感悟,正如书名“从优秀到卓越”,作者为你指明了道路,至于是否能成功,则要看自己的修炼了。 我会把读书过程中一些精彩的言论摘录下来,有时会加入一些自己的见解或者经历,读书笔记的大纲与书本身的大纲是一致的,这也是我从另外一个地方学到并一直...
Android 系统不释放内存吗?
除了 CPU,很多用户在选购手机的时候通常也会考虑内存大小,不同版本内存的手机价格也不一样,买多大内存的合适呢?Android 系统是怎么管理内存的呢?普通用户对 Android 手机的内存使用总是一头雾水,这个应用到底占了多少内存?系统到底占了多少内存?内存对我手机的使用体验有什么影响?到底怎么才能用好 Android 手机?换新手机换多大内存的会比较合适呢? 知乎上有一个问题,一个用户问 “Android 系统不释放内存吗?”,用户并不是不知道系统会释放内存,而是想知道其中的细节,好优化使用的体验,下面我就从用户的几个问题入手,来简单说明一下,比较深入的细节我后续的文章会详细介绍。 ...
关于 Android 系统流畅性的一些思考
最近一直想写一些关于 Android 系统流畅度的东西,因为流畅度这个东西,是消费者最直接能体验到的,再加上 Android 一直为人诟病的越用越卡顿,使得大家在提到安卓机的时候,都会有一丝阴影。这也是大部分人买手机首先会考虑 iPhone 的一个原因。 由于 Google 对 Android 持开放态度,各个手机厂商生产不同产品定位的机器,以及各个 Android 应用的质量良莠不齐,导致影响 Android 流畅度的因素非常非常多,并非大家简单的以为是系统没有优化好,很多时候你会发现,不同 SOC 但是相同的系统,体验完全就是两种。 所以我想和大家聊聊影响 Android 系统流畅性...
知乎 救救你的 StartingWindow

我们经常说 iOS 整机体验要比 Android 好,这里有第三方软件的功劳(iOS 版本质量要高于 Android 版本质量),当然也归功于苹果对 iOS 的封闭系统的管控。应用想上 App Store,就得先过审核,不合规就给你打回来。

今天我们要说的,就是 iOS 和 Android 系统差异化的一个重要体现:StartingWindow,通俗点说,就是应用启动页。iOS 和 Android 都有 StartingWindow,但是表现却完全不一样。iOS 开发要求应用必须要有一个 StartingWindow,且必须是一张图片(iOS 开发可以说说是否支持定制 Layout),用户点击桌面图标启动应用,不会有任何延迟,会立即显示这个图片;Android 系统的 StartingWindow 虽然也是系统提供的,但是由于开放性,Android 允许开发者自己定制 StartingWindow、disable StartingWindow、透明化 StartingWindow。

Android 性能优化必知必会

做了这么久性能相关的工作,也接触了不少模块,说实话要做好性能这一块,真心不容易.为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以做好.

在学习的过程中,除了看源码,我还接触到了很多互联网上已有的知识,各位前辈们,将他们的知识和经验倾囊相授,让我少走了很多弯路. 我在自己的笔记里面存了很多很优秀的技术文章和技术文档,现在我决定将这些放到网上,让每一个想进入 Android 系统开发和优化这个领域的人,能通过阅读这篇文章,快速入门. 同时也算是我对知识的一个梳理,查漏补缺,终身学习.

这篇文章记录了 Android 性能优化所必须掌握的知识,涵盖性能优化相关的方方面面(当然如果读者同学你也有很棒的私藏文章,也可以加入到这篇文章里面).部分文章可能需要特殊的技巧才能看到,希望你已经掌握了这一部分技巧。

Android Performance Tools -- Systrace 系列文章目录

随着 Systrace 的功能越来越完善,加上 Android 版本的更迭,之前写的 Systrace 系列教程已经有点过时;另外随着自己技能的完善,从 Systrace 里挖掘了更多的信息,对解决各种性能问题很有帮助。这些技能我需要记录下来,增强自己的总结和归纳的能力,如果能帮助到看文章的人,也是极好的。

这一系列文章并非简单介绍 Systrace 这个工具,而是借助 Systrace 这个工具,把隐藏在手机表面的系统流程理清楚,使应用开发者和系统开发者都能收益。

Systrace 基础知识- 为什么是 60 fps ?

今天来讲一下为何我们讲到流畅度,要首先说 60 帧。

我们先来理一下基本的概念:

  1. 60 fps 的意思是说,画面每秒更新60次
  2. 这60次更新,是要均匀更新的,不是说一会快,一会慢,那样视觉上也会觉得不流畅
  3. 每秒60次,也就是 1/60 ~= 16.67 ms 要更新一次

在理解了上面的基本概念之后,我们再回到 Android 这边,为何 Android 现在的渲染机制,是使用 60 fps 作为标准呢?这主要和屏幕的刷新率有关。

2017年度最推荐

2017 不知不觉已经走过,博客已经许久没有更新了,一个原因是越来越觉得自己的学识浅薄,怕写了技术误了大家,另一个原因是自己太懒了。鉴于上面两个原因,我决定此博客的更新,不再非要更新技术文章,一些我觉得有意义的事情、思考等,也会更新上来。一方面自己做个记录,如果能顺带给读者带来一点帮助,那自然是最好的(虽然没几个读者…)

2017 既然才刚刚过去,我觉得有必要把 2017 年里面我觉得体验很棒或者对工作生活很有帮助的东西推荐给大家,或许 2018 你会需要他们。推荐的内容包含了 App、硬件、书籍、器材等,需要说明的是,这些东西是我觉得 2017 年给我带来很大帮助的,适合我不一定适合你。话不多说,直接上内容吧!

关于 2017

一转眼就 2017 年了,算起来自己已经工作了快四年了,09年到威海上学,12年去上海实习,13年毕业后还是去了上海,14年进了珠海魅族,直到现在。

这博客从我毕业开始写东西,写写删删,也算是记录了一些东西,自己的工作内容也从 App 开发换到了系统 App 开发,在换到系统开发,也算是走了一圈,一些路程,记录下来,几年后再看看,怀念一下也是不错的。

这篇文章我记录了自己的博客、自己的工作、自己的工作内容、自己的工作习惯、还有对 2017 年的期望,有迷茫,也有奋斗。

17年已经过了 30% 了,希望还不算晚。

avatar
Gracker
True mastery of any skill takes a lifetime