【朝花夕拾】Android性能篇之(八)来自官网的自白
前言
转载请声明,转自【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性能篇之(八)来自官网的自白的更多相关文章
- 【朝花夕拾】Android性能篇之(六)Android进程管理机制
前言 Android系统与其他操作系统有个很不一样的地方,就是其他操作系统尽可能移除不再活动的进程,从而尽可能保证多的内存空间,而Android系统却是反其道而行之,尽可能保留进程.An ...
- 【朝花夕拾】Android性能篇之(五)Android虚拟机
前言 Android虚拟机的使用,使得android应用和Linux内核分离,这样做使得android系统更稳定可靠,比如程序中即使包含恶意代码,也不会直接影响系统文件:也提高了跨平台兼容性.在And ...
- 【朝花夕拾】Android性能篇之(一)序言及JVM
序言 笔者从事Anroid开发有些年头了,深知掌握Anroid性能优化方面的知识的必要性,这是一个程序员必须修炼的内功.在面试中,它是面试官的挚爱,在工作中,它是代码质量的拦路虎,其重要 ...
- 【朝花夕拾】Android性能篇之(三)Java内存回收
在上一篇日志([朝花夕拾]Android性能篇之(二)Java内存分配)中有讲到,JVM内存由程序计数器.虚拟机栈.本地方法栈.GC堆,方法区五个部分组成.其中GC堆是一块多线程的共享区域,它存在的作 ...
- 十分钟掌握Pandas(上)——来自官网API
十分钟掌握Pandas(上)——来自官网API 其实不止10分钟,这么多,至少一天 一.numpy和pandas numpy是矩阵计算库,pandas是数据分析库,关于百度百科,有对pandas的介绍 ...
- 【朝花夕拾】Android性能篇之(八)ANR篇--草稿
1.ANR概念 2.ANR发生场景 Android开发者官网 上说到了两个原因:(1)点击按键或者触摸屏幕等输入事件在5s内没有响应:(2)10s内没有完成广播事件.如下所示: Android wil ...
- 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇
前言 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一.Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Andro ...
- 【朝花夕拾】Android性能篇之(四)Apk打包
前言 APK,即Android Package,是将android程序和资源整合在一起,形成的一个.apk文件.相信所有的Android程序员是在IDE的帮助下,完成打包轻而易举,但对打包流程真正清楚 ...
- 【工利其器】必会工具之(三)systrace篇(1)官网翻译
前言 Android 开发者官网中对systrace(Android System Trace)有专门的介绍,本篇文章作为systrace系列的开头,笔者先不做任何介绍,仅仅翻译一下官网的介绍.在后续 ...
随机推荐
- 如何用Postman做接口测试
postman介绍&测试准备: postman介绍:postman是一个开源的接口测试工具,无论是做单个接口的测试还是整套测试脚本的拨测都非常方便. 前期准备:测试前,需要安装好postman ...
- Python爬虫入门CentOS环境安装
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:梦想橡皮擦 CentOS环境安装-简介你好,当你打开这个文档的时候,我知 ...
- Mysql 5.7.28离线包下载与配置
下载链接:https://pan.baidu.com/s/1uPbBknyIebQRDt4k_RA58Q 提取码:14zi 将下载文件进行解压,我解压位置为:D:\Program Files\my ...
- 在项目中在线使用Iconfont图标
Iconfont真的很强大,图标数量惊人,基本任意的关键词都能搜索到你想要的结果.而且是国产的,网速会比较快,还可以改变图标颜色. 它提供svg.png.ai三种格式下载,之前我一直都是乖乖的一个个下 ...
- JS 操作符、控制流程、循环、字符串/数组方法
操作符 算术运算符:+ .- . * . / . %.++.-- 赋值运算符:= .+=.-=. *=./=.%= 比较运算符:>.>=.<.<=.!=.==.===(全等,数 ...
- imageRectForContentRect,titleRectForContentRect,contentRectForBounds,imageRectForContentRect什么时候调用
UIButton的布局顺序细节 什么时候调用imageRectForContentRect,titleRectForContentRect,contentRectForBounds,imageRect ...
- RN配置 java和python环境
安装java JDK 不推荐更改安装路径. 安装时 不要有中文 会安装jdK和jre 1==>配置新建 JAVA_HOME 具体是[编辑]==>[新建] 然后添加下两句 JAVA_HOME ...
- python集合和eval的使用
python集合和eval的使用 创建集合 使用工厂方法 set()和 frozenset(): >>> s = set('cheeseshop') >>> s s ...
- IT兄弟连 HTML5教程 CSS3属性特效 渐变2 线性渐变实例
3 线性渐变实例 一.颜色从顶部向底部渐变 制作从顶部到底部直线渐变有三种方法,第一种是起点参数不设置,因为起点参数的默认值为“top”:第二种方法起点参数设置为“top”:第三种起点参数使用“-90 ...
- 整理h5移动端适配方案
<使用Flexible实现手淘H5页面的终端适配>:https://github.com/amfe/article/issues/17 <再聊移动端页面的适配>:https:/ ...