高手问答第 150 期 — Android 应用性能优化

局长 发布于 2017/04/24 15:31
阅读 3K+
收藏 25

OSCHINA 本期高手问答(2017 年 4 月 25 日 — 5 月 1 日)我们请来了 @yuchengluo (罗彧成)为大家解答 Android 应用性能优化相关的问题。

@yuchengluo ,罗彧成。腾讯音乐 Android 开发总监,从事移动应用开发工作 10 余年,在 Android、Linux、WinCE 等平台上有丰富的开发经验。对 Android 应用开发有深刻的认识,特别在架构设计、性能优化等方面有丰富的实战经验,主导并参与过多个用户规模上亿的 Android 应用开发工作。同时在车载网络、家庭网络协议方面也有丰富的开发经验。曾在多个有影响力技术峰会发表过主题演讲。

在移动应用市场同质化十分严重的今天,软件性能已成为提高用户留存率的关键问题,而且更好的性能应是软件开发人员长期不变的的追求。在 Android 应用开发过程中,性能优化问题的重要性不言而喻,它对于产品品质和用户体验有着重大的影响。虽然如此,它却得不到应有的重视。

因此,本次高手问答希望和大家探讨 Android 应用性能优化相关的问题,并让开发人员对性能问题引起重视。本次高手问答将包含以下内容:

  • 应用性能问题到底有多重要?
  • Android 应用中常见的性能问题有哪些?
  • 针对每一项性能问题有哪些改善方案? 
  • 分享解决性能问题的方法

或者还有其他关于 Android 应用性能优化相关的问题,欢迎踊跃来提问。

为了鼓励踊跃提问,@华章 会在问答结束后从提问者中抽取 5 名幸运会员赠予《Android应用性能优化最佳实践》一书。

购买链接:http://item.jd.com/12043655.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 Android 应用性能优化相关的问题向 @yuchengluo (罗彧成)提问,请直接回帖提问。

加载中
0
华章
华章

OSC 第 150 期高手问答 -- Android 应用性能优化(公布中奖名单)

@xiaolei123    @janfrost    @xpbob    @qqnp1100    @Jeese

恭喜以上五位网友获得《Android应用性能优化最佳实践》一本

请私信@华章 告知快递信息(格式:姓名+电话+地址+邮编)

1
_凤求凰_
_凤求凰_

@yuchengluo android行情这么差。有啥前景。。。

y
yuchengluo
现在市场上有两种矛盾的声音,公司抱怨招不到目标候选人,求职者找不到目标岗位。基础原因是公司对招聘要求提高了,经过这几年移动互联网的发展,现在不缺普通开发者(一般是只会做一些简单的业务需求),需要有更强的高级开发者去提升产品的体验(包括性能优化)。
1
机器猫123
机器猫123
@yuchengluo 关于Android性能的问题,我有两个问题,一是app的大小是否会影响性能。还有,如何做到app能更省电,是从数据上处理,还是从业务上处理?
机器猫123
机器猫123
老师,未来app的发展方向能介绍一下吗?还有现在关于app的流行开发方式是什么?会不会被其它语言期待,开发和使用起来更加的轻便。还有现在的app版本跟新比较频繁,未来会有其他方式期待这种更新方式吗?
y
yuchengluo
1.APP大小不影响应用运行的性能,只会增加用户下载的门槛,但现在网速越来越快,这个影响也越 来越小。 2.耗电在数据上,如果处理的数据越大CPU开销也越大,因此会增加耗电,业务逻辑上复杂也有可能增加CPU或者硬件(如传感器)的开销,因此也会带来耗电。
1
CureMarine
CureMarine

@yuchengluo

作为一个外行人觉得,如果全部按照谷歌标准开发安卓软件,现在低配手机也是能流畅的,不过现在一些国内软件仗着用户粘性大,把软件做的非常臃肿和流氓,不用一些手段限制后台能把一个旗舰配置手机弄得划屏都掉帧。楼上还有诸如“ 怎么保持服务不被杀死 ”之类的提问,完全把用户手机当自己的广告终端,这种软件我装都不想装,不能从play上下载到的软件都尽量不装。

是按照谷歌标准开发就实现不了想要的功能吗?国内这种大环境没办法,你也说让开发者看手机厂商的文档,问题是这么多厂商能面面俱到吗,现在手里的z11杀掉微信qq后台后就收不到消息,只能任他在后台肆虐,无奈啊。

作为一个外行人,我希望安卓从业者们能够想办法为用户着想,而不是想着法坑用户,弄一堆后台争先恐后的自启,一堆用户不想要的功能,强奸用户的眼球,如果永远用不了gms,那是不是就每家都用一个后台挂在用户后台,然后拼命的堆配置,可以容纳更多后台?我的设想是有一家大家都能认同的企业,承接推送服务,大家严格遵守,现在乱象丛生,国内的安卓市场真是一眼都不想看。

CureMarine
CureMarine
回复 @yuchengluo : 厂商自己出rom也是一块大蛋糕吧,里面会有各种自己的推送渠道包括应用商店什么的,一旦有了利益关系,就很难撼动了,今年刚丢掉wp换了个z11,给各种恶心,自带应用市场基本没开过,全用的play,下个手机寻思着直接用亲儿子,反正墙也不是不透风的,默默为国内安卓开发者点个蜡烛
CureMarine
CureMarine
回复 @许Mr 为什么留存少一半,外行想不通,按说除了推送,只要其他做的很良心,各种优化非常好,用户用脚投票,只要是真需要用这个应用的肯定会继续用,赖在用户后台之后得到的留存量真的是希望有的留存吗……
y
yuchengluo
这个环境问题有点大,国内的ROM都是各做各的,没有统一的标准。做android开发,苦啊。兼容性问题都是大家要面对的。
许Mr
许Mr
哈哈 被恶心到了吧,市场环境这样,劣币淘良币,之前我们做了一个版本改用google规范各种良心,然后留存跌了一半,被迫改回来
0
xiaolei123
xiaolei123

@yuchengluo 请问,在界面里,比如要做一些耗时的重复的操作,该怎么做到要关闭时,就循环也关闭了呢?在fragment ,如果手机质量好渣,经常被重新创建,那一些界面的逻辑,和数据的获取,应该怎么做处理呢?

iDalink
iDalink
“在设计上数据应该和页面分离” 应该是指MVC模式吧?
y
yuchengluo
你好,你所描述的有包含了三个问题:1.在设计上数据应该和页面分离,如果是经常需要使用到的数据,建议采用缓存机制。 2.另一个耗时的操作的生命周期的问题,应该尊守上一层的生命周期,比如fragment/activity的生命周期已经结束,对应相关其它所有操作(包括数据读取)也应该结束。 3.耗时操作不要放到主进程,放到异步线程中。
0
小杨阿哥哥
小杨阿哥哥

@yuchengluo andorid性能优化非常重要,不仅是在使用体验上,在省电方面也是一个重要的体现。最近旧觉得新版本的miui流畅了很多,qq音乐也流畅了很多,能否讲解下对于不同的anrdoid版本中能否有特定的优化的点?

y
yuchengluo
性能优化是一个持续的过程,每个版本会有一些不同的侧重点,但由于人力成本有限,不可能在某个版本做非常多的事情,一般根据优先级去决定做哪方面的优化,这个优先级取决两个数据:用户反馈和性能数据(监控)。
0
避孕套
避孕套
公司组APP项目已经全部RN开发
避孕套
避孕套
@小杨阿哥哥 回复@小杨阿哥哥 : 老板不想啊
小杨阿哥哥
小杨阿哥哥
就苹果和Android的角度看的话,他们肯定应该还是希望人们都用原生的开发方式~ 遵从主的思想吧
0
janfrost
janfrost

@yuchengluo 界面元素及其复杂情况如何在低端手机表现更好。

ps。现在界面上必须显示的是三个列表(其中两个IM列表,需要实时刷新)。一个webview。一个视频区域。一个弹幕区域。目前在14年的机器表现很差。横竖屏切换很慢。

 

y
yuchengluo
这是应用开发面对的普遍问题之一,虽然应用可以多方面优化,但硬件的性能瓶颈无法突破(不要想把奥拓当奥迪开),这里主要关注两个方向:1.刷新时机控制,没有数据变化不要有刷新动作。2.降级处理,根CPU 能力做降级,比如低于多少主频手机关闭过场动画,降低一些特性等。
0
铂金小牛
铂金小牛

@yuchengluo react-native的webview打开网页总是很慢,是要怎么改善这个性能?

铂金小牛
铂金小牛
回复 @yuchengluo : 如果我webview改为原生,通过react-native来调用这个原生,是不是会好点?
y
yuchengluo
告诉你一个数据,目前引起卡顿问题有一半是WEB页面卡顿,这说明什么呢,native还是有非常高价值的。
0
你个NC
你个NC

@yuchengluo 现在react-native这么火,作为移动开发是否需要学习这门技术?

y
yuchengluo
做为一位技术人员,应该时时关注一些新的技术,正如你所说,现在RN这么火,那就更应该去掌握,至少要去了解这一个技术点了。对于一项新的技术特别是很火的技术,我们应该从以下几个方面去分析:1.该技术的背景(为什么出现这个技术)2.他的主要特点(优势、劣势)。3.实现基础原理。分析完这三点是否需要深入学习你应该心里有数了。
返回顶部
顶部