15个必知的Android开发者选项
1.Stay awake
充电时保持屏幕唤醒,开发的时候,时不时的锁屏真是够了,开启它后只要插着USB线就不需要总去解锁屏幕啦。
2.Select runtime(Dalvik or ART)
ART runtime下你的应用会更加丝滑,目前高版本的Android上已经直接是ART runtime了,但作为Android开发也许需要保证你的应用在两种runtime下都能正常运行,这可能是测试时需要更多考虑的。
3.Process stats
里面有关于当前运行进程的一切信息,对于一般用户,它就是一堆无意义的数字,对于Android开发人员来说,调试时这些信息也许可以帮你大忙。
4.USB debugging
这个无需介绍,不开它怎么调试呢?
5.Allow mock locations
当你的应用需要用到GPS功能,获取位置信息时(比如天气应用),可以通过它搭配一些位置模拟应用,模拟全球任何地点。
6.Show surface updates
在界面绘制时,闪烁提醒,开启它后简直能闪瞎你的眼睛,但有时候我们需要精确知道具体的界面绘制细节时,不得不需要忍受这种折磨。
7.Show layout bounds
显示布局格子,当你看到一个应用有很棒的界面效果,想知道它是怎么布局的,开启这个功能即可。我更常用的使用场景是:每当有PM过来问我人家这个界面是Native实现的,还是类似Hybrid方案的Web实现时,我就让他开启这个功能,WebView是一个整体的格子,Native View是各种小格子组合而成。除非自己重绘实现自定义View,一般复杂布局也不会这么干。
8.Force RTL layout direction
强制RTL布局,RTL也就是Right To Left,阿拉伯国家一般有这种文化,类似古时候的中国,文字从右往左读,包括界面布局也是从右往左的,感觉操作习惯都跟我们是镜像的,如果你跟我一样不幸需要做这种坑爹适配的话,这也是必须掌握的技能。
9.Animation scale
动画的尺度、速度调整也是很有用的功能,尤其在实现复杂的组合动画效果时,调慢点可以看得更清楚,当然你可以在自己代码里调慢,但每次改代码重新build很麻烦对不对?而且如果是PM走过来让你研究一下某款App的酷炫动画效果呢?
10.Simulate secondary displays
它允许你模拟不同屏幕尺寸下应用的表现,IDE里虽然也有类似的功能,可那毕竟只是个静态的效果。
11.Debug GPU overdraw
过度绘制有时是无法避免的,Android建议是不要超过一次过度绘制,也就是可以是蓝色的,不能绿了。
12.Strict mode enabled
严苛模式下,当应用做了一些影响性能的事情,屏幕会闪一下提醒你。你也可以在代码里为自己的应用开启严苛模式,一旦发现一些性能问题,就会有详细Log输出,为避免影响线上用户,建议只在Debug模式下开启。
13.Show CPU usage
在你屏幕右上角显示一个小窗口,提示当前CPU的各种信息,在性能调试时会有一些帮助,看是否是CPU的负载过高导致了性能问题。
14.Profile GPU rendering
开启后,会在下方显示一张实时绘制图,记住那条绿线是性能流畅与否的底线,超过的时刻就会出现掉帧,就会有卡顿的感觉,界面性能调优的一个最重要指标就是将所有界面操作尽量优化到那条绿线以下。
15.Don't keep activities
开启这个选项后,当你从Activity A跳转到Activity B时,Activity A就会被立即销毁,这一般用来模拟设备内存不足时后台Activity被销毁的场景,如果你的应用能做到开启它时功能仍基本正常,说明代码设计得比较合理,不同Activity之间的耦和很低,对于复杂业务的应用来说,能做到这点真心不容易。
业余版解释
第一项:提交错误报告
将本机上安卓系统的出错日志以及硬件设备信息发送给谷歌。建议:咱们当然不泄露自己隐私了,绝不使用!
第二项:桌面密码备份
设置或更新桌面完整备份的密码。建议:没必要设置,谁动你的备份~
第三项:不锁定屏幕
说明文字已经很清楚了:充电时屏幕不会休眠。建议:关闭
第四项:启用蓝牙HCI信息收集日志
蓝牙互传文件会被记录日志。建议:蓝牙都很少用到了,这个日志就更没必要记录了
第五项:进程统计信息
安卓4.4新增给力功能,每个进程的运行时长百分比,ram使用率,相关后台服务统计情况一目了然。这才是真正意义上的任务管理器,大赞!
第六项:USB调试
嗯,怎么介绍它呢?反正很有用就是了,允许外部程序尤其是PC端程序通过adb命令管理手机。安卓系统最有趣也是最吸引人的开放性就是由它控制的。建议:必开,不再多解释!
第七项:撤销USB调试授权
顾名思义,撤销所有已连接过的电脑调试授权,下次连接又要重新安装驱动。建议:不嫌麻烦的可以点击确认。
第八项:电源键菜单错误报告
也是意思很清晰明白了。建议:一样绝不使用!
第九项:允许模拟地点
真正为开发人员设置的一个选项。软件开发人员对开发的某些定位软件(一般为地图软件),做测试的时候使用的,功能是模拟手机目前所处的位置(比如手机当前实际位置在中国,但测试软件时要求测试条件为美国,就可以使用该功能进行测试软件模拟定位)。建议:没事就别开了。
第十项:选择调试应用
同样的如假包换的开发者选项。建议:无视吧
第十一项:显示触摸操作
很好玩的一个选项,开启后,手指点击的地方就显示一个小圆点。我试了试五个手指同时放上去,果然就是五个小圆点(我是有多无聊。。。)。建议:玩玩还可以,日常使用就别开了。
第十二项:指针位置
以十字横纵坐标的方式显示你触摸的位置,如果是滑动的话,就是一条线的轨迹。建议:装B可用,平常关闭
第十三项:显示屏幕更新
当滚动屏幕或触控或者系统自动刷新使得屏幕上的某块区域重新绘制时,该区域闪烁。建议:别开,容易亮瞎咱们的24k钛合金眼。
第十四项:显示布局边界
显示当前页面各个组件的边界框架信息,对于开发人员参考好的app设计有些帮助。建议:关闭。
第十五项:窗口动画缩放、第十六项:过渡动画缩放、第十七项:动画程序时长调整
这三项决定了你对整个ROM的动态感官体验。比如启动app、桌面滑屏、确认框的弹出等,有了动画就会显得很顺滑以及和谐。关闭了或调节比例越低,会显得切换动作较为生硬,但好处是对系统资源占用就会降低。建议:保持前两个为0.5x,最后一个为1x,在性能和体验中间取个平衡。
第十八项:模拟辅助显示设备
不明白用途。建议:不要动,保持原样。
第十九项强制GPU渲染
值得重点介绍的一个选项。安卓的软件应用的界面可以使用cpu或gpu渲染,包括桌面。由于gpu处理图形比cpu好,所以gpu渲染应用的界面会更流畅,同时减轻cpu的负担。gpu强制渲染就是hwa(hardware acceleration硬件加速)的一种,能够得到更好的优化。
但强制gpu也是有缺陷的。第一是强制GPU加速功能会增加功耗,降低待机时间。第二是,部分旧程序本身不支持gpu渲染,没有硬件加速hwa的就会出现崩溃。比较老的程序因为SDK版本低不支持gpu加速,或者开发时默认不开启gpu渲染,遇上gpu强制渲染就会出现问题。建议:个人认为在现在开启和关闭都没有什么问题,看个人喜好,我是开启的,也没发现什么问题。
第二十项:显示GPU视图更新
屏幕上的区域更新时闪烁响应的屏幕区域各种闪烁。建议:关
第二十一项:显示硬件层更新
硬件层更新...哪会有更新,所以你勾选与不勾选没有什么意义。建议:没意义的就关了吧。
第二十二项:调试GPU过度绘制
当使用GPU绘图时,在屏幕上绘制不同的颜色来表明过度绘制的情况。建议:关闭,这么多蓝蓝绿绿红红的谁受得了。
第二十三项:调试非矩形剪裁操作
这个选项真没明白,开启与关闭都没什么变化,估计是深入到安卓系统核心的开发人员才关注。建议:关闭。
第二十四项:强制启用4x MSAA
4倍抗锯齿,游戏达人应该对此很熟悉。经过小贝实测,对于畅玩的GPU来说,开启此选项不会明显的增加手机的发热量,对于续航也影响不大,当然这是建立在我的游戏时长比较短的情况下。但对画质的提升还是蛮明显的,地铁跑酷、极品飞车,游戏画面的边缘都有了明显改善,更为细腻圆润。建议:游戏达人,开;普通用户,随意。
第二十五项:停用HW叠加层
停用的话,所有应用将共享视频内存,将不会经常检查碰撞与裁剪以显示一个合适的图像,将会耗费大量处理能力。而HW叠加层允许应用有单独的视频内存,性能自然要好些。建议:不勾选
第二十六项:严格模式已启用
在你打开某个应用后,点返回退出但在进程中仍然运行,长时间后屏幕会闪烁提示你在主线程上还是正在运行的应用程序。
第二十七项:显示CPU使用情况
很有用的一个选项,开启后在右上角最上层显示cpu当前正在处理的进程。建议:关闭。
第二十八项:GPU呈现模式分析
非常有趣的一个选项,不过真的是开发者选项。用来调试应用,需要结合adb shell dumpsys gfxinfo your_package 命令来使用。可以用来测量某个app的帧速率,例如列表视图滚动的时候。建议:非开发者关闭。
第二十九项:启用OpenGL跟踪模式
又一个如假包换的开发者选项,图形视角效果器,是手机制作图片软件的辅助工具,比如ps3D立体图,需要启用这个工具才能实现在编辑过程中的图片旋转,放大缩小复位等。建议:非开发者关闭。
第三十项:不保留活动
网上有些教程说开启这个选项会对解决例如打开通讯录等操作的卡顿现象有帮助,经过实测没什么作用。个人感觉保留活动就和保留IE的缓存一样,是有用的。建议:不勾选。
第三十一项:后台进程限制
自定义设置后台程序的进程限制。建议:这种系统级的东西就留给系统去处理吧,咱们自己设置的也许起到反面影响。保留“标准限制”即可。
第三十二项:显示所有“应用程序无响应”(ANR)
当app出现FC(强制关闭)错误时,提示给用户知晓。建议:没必要开启,提示我们也做不了什么,反正就是强退。
2018-1-2