前言

转载请声明,转自【https://www.cnblogs.com/andy-songwei/p/10823372.html】,谢谢!

Android性能优化无疑是Android中的一个重点,也是一个难点。之所以说是重点,是因为无论在面试中还是工作中,都是“备受青睐”的:从笔者面试经验来看,面试官对性能相关的问题是乐此不疲;从工作经验来看,越是大厂,越是对代码质量苛刻,基本功能完成后,都需要对性能做一定的把控。之所以说是难点,是因为工作中性能优化的任务往往都是由经验比较丰富的工程师或者架构师来担任的,经验尚浅的童鞋往往力不从心。而且Android性能方面的问题比较广,如电量、内存、代码效率、屏幕流畅度等方方面面,想成为这方面的行家里手,真心不是件容易的事情,更不用说把它们都了解透彻了。

所以,在笔者工作的前几年里,经常对这类问题一头雾水,开发的app中性能问题似乎无处不在,但想认真去学,却又不知道从何入手。后来笔者发现,在Android官网中有专门的章节来介绍性能相关的问题,有宏观的指导,有概括性的总结,有相关工具的介绍,有良好的编码实践介绍,还有丰富的资源链接......总的来说,官网给像我这样想专门去学习却又不知从何下手的童鞋一个很好的入门指导。由于官网中大部分都是英文的,所以笔者这里特意进行了翻译,希望从这里入手,来系统性地学习Android性能相关的知识点。

官网中的篇幅

官网中为性能问题专门开辟的章节路径为:Android Developers > Docs > 指南 > Best practies > Performance

中文版官网地址为:https://developer.android.google.cn/topic/performance

如下四幅截图为该部分专门的章节,有将近30篇文章的篇幅。

   

  

 翻译后的文档链接

如上截图中,“Android Vitals”是Google Play中的一个工具,主要介绍这款工具以及如果通过这款工具来统计和分析性能相关的问题。由于该工具咱们平时的工作中接触不到,所有这里就没有翻译。“SMP Primer for Android”是一篇关于“对称多处理”入门教程,和CPU架构关系比较大,似乎和软件层的优化有点遥远,所以笔者暂时没读懂,所以也没有翻译,待以后有了深入的接触后,再补上。其它的一部分是中文版的官网中已经翻译了,剩余的为笔者的翻译了。

【官网翻译】性能篇(一)应用待机群组

  【进程和线程

【官网翻译】性能篇(二)通过线程提高性能

【官网翻译】性能篇(三)为电池寿命做优化——概述

  【对低电耗模式和应用待机模式进行针对性优化

  【监控电池电量和充电状态

  【确定和监控插接状态和基座类型

  【确定和监控连接状态

【官网翻译】性能篇(四)为电池寿命做优化——使用Battery Historian分析电源使用情况

【官网翻译】性能篇(五)为电池寿命做优化——测试电源相关的问题

  【缩减应用大小

【官网翻译】性能篇(六)管理应用内存

【官网翻译】性能篇(七)内存管理概述

【官网翻译】性能篇(八)无缝设计

【官网翻译】性能篇(九)保持应用响应

【官网翻译】性能篇(十)性能提示

    【在 Android Runtime (ART) 上验证应用行为

在上述链接中,带有【官网翻译】前缀的,为笔者翻译的文章,都记录在了博客中。其它的为中文版官网中自带的翻译。

结语

所谓“学海无涯,回头是岸”,哈哈!笔者在翻译的过程中也是相当痛苦的,虽然只翻译了其中的10篇,但是也差不多花了一个月的业余时间来完成。由于经常长时间对着屏幕,经常有种眼睛累到要瞎的感觉。而且这还只是官网中“性能”篇幅中的一小部分,而“性能”系列也只是整个Android相关知识中的九牛一毛,有时候感觉技术这条路很远很长,走下去还真是需要勇气啊!希望笔者的这篇文章和翻译的系列文章能对读者有一定的启迪作用,也更希望有读者日后也能对笔者指点一二,笔者将不胜感激!另外,古人常说“实践出真知”,这里介绍的还只是一些理论知识,要想成为高手,还需要大量的工作实践。最后,引用屈原老夫子的名句来共勉吧:路漫漫其修远兮,吾将上下而求索!!!

【朝花夕拾】Android性能篇之(八)来自官网的自白的更多相关文章

  1. 【朝花夕拾】Android性能篇之(六)Android进程管理机制

    前言        Android系统与其他操作系统有个很不一样的地方,就是其他操作系统尽可能移除不再活动的进程,从而尽可能保证多的内存空间,而Android系统却是反其道而行之,尽可能保留进程.An ...

  2. 【朝花夕拾】Android性能篇之(五)Android虚拟机

    前言 Android虚拟机的使用,使得android应用和Linux内核分离,这样做使得android系统更稳定可靠,比如程序中即使包含恶意代码,也不会直接影响系统文件:也提高了跨平台兼容性.在And ...

  3. 【朝花夕拾】Android性能篇之(一)序言及JVM

    序言        笔者从事Anroid开发有些年头了,深知掌握Anroid性能优化方面的知识的必要性,这是一个程序员必须修炼的内功.在面试中,它是面试官的挚爱,在工作中,它是代码质量的拦路虎,其重要 ...

  4. 【朝花夕拾】Android性能篇之(三)Java内存回收

    在上一篇日志([朝花夕拾]Android性能篇之(二)Java内存分配)中有讲到,JVM内存由程序计数器.虚拟机栈.本地方法栈.GC堆,方法区五个部分组成.其中GC堆是一块多线程的共享区域,它存在的作 ...

  5. 十分钟掌握Pandas(上)——来自官网API

    十分钟掌握Pandas(上)——来自官网API 其实不止10分钟,这么多,至少一天 一.numpy和pandas numpy是矩阵计算库,pandas是数据分析库,关于百度百科,有对pandas的介绍 ...

  6. 【朝花夕拾】Android性能篇之(八)ANR篇--草稿

    1.ANR概念 2.ANR发生场景 Android开发者官网 上说到了两个原因:(1)点击按键或者触摸屏幕等输入事件在5s内没有响应:(2)10s内没有完成广播事件.如下所示: Android wil ...

  7. 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇

    前言 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一.Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Andro ...

  8. 【朝花夕拾】Android性能篇之(四)Apk打包

    前言 APK,即Android Package,是将android程序和资源整合在一起,形成的一个.apk文件.相信所有的Android程序员是在IDE的帮助下,完成打包轻而易举,但对打包流程真正清楚 ...

  9. 【工利其器】必会工具之(三)systrace篇(1)官网翻译

    前言 Android 开发者官网中对systrace(Android System Trace)有专门的介绍,本篇文章作为systrace系列的开头,笔者先不做任何介绍,仅仅翻译一下官网的介绍.在后续 ...

随机推荐

  1. Scala函数式编程(四)函数式的数据结构 下

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Scala函数式编程(三) scala集合和函数 Scala函数式编程(四)函数式的数据结 ...

  2. LImax服务器框架学习--安装、使用ant工具、生成limax相关代码

    一.安装ant ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant. 首先现在一个ant安装压缩包, ...

  3. HttpRunner学习9--切换测试报告模板

    前言 在HttpRunner中,给我们提供了 2 套测试报告模板,分别是 default_report_template.html 和 extent_report_template.html . 默认 ...

  4. Python、 Pycharm、Django安装详细教程(图文)

    前言 这篇文章主要介绍了Python. Pycharm.Django安装详细教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. ...

  5. JPA中实现双向一对一的关联关系

    场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...

  6. day06数组、数组声明和赋值、数组复制、数组排序

    复习 1.do-while 1)语法 do{ //循环体 }while(<条件>); 2.while和do-while 1)while 先判断,后执行 初始条件不满足,一次都不执行 2)d ...

  7. linux 系统账户 和 普通账户 的区别

    最近使用 useradd -r 选项进行创建账户,用于测试,对-r 选项不是很明白,下面记录一些调研的过程: -r, --system Create a system account. System ...

  8. [洛谷P1967][题解]货车运输

    题目 这道题让我们求最小限重的最大值 显然可以先求出最大生成树,然后在树上进行操作 因为如果两点之间有多条路径的话一定会走最大的,而其他小的路径是不会被走的 然后考虑求最小权值 可以采用倍增求LCA, ...

  9. 欧洲杯在即英超yabo055红单介绍!沃特福德vs曼彻斯特联 沃特福德雪上加霜

    北京时间12月22日22:00,2019-20赛季英超联赛第18轮打响,沃特福德主场迎战曼彻斯特联.本场曼联作客一步步得到支持,球队有望客场赢下比赛. [基本面分析] 1.2019-20赛季英超联赛第 ...

  10. Java集合内容

    Java的集合类定义在java.util包中,支持泛型,主要提供了3种集合类,包括List,Set和Map.Java集合使用统一的Iterator遍历. 1.List遍历 实现了Iterator接口的 ...