IT狗

经常使用 Android 开发者选项

Android 开发者选项可以匡助咱们定位开发中碰到的成绩,辅佐咱们相识运用的功用成绩,对晋升开发和优化效力大有匡助。

Stay awake (不锁定屏幕)

充电时坚持屏幕叫醒,开发的工夫,时不时的锁屏真是够了,开启它后只需插着USB线就不须要总去解锁屏幕啦。

Process Stats (进程统计信息)

运用场景: 检察靠山进程和资本占用,以图形的要领展现了靠山运转的进程,和响应的运转工夫和内存占用。

运用解释: 如图,左上角是指其统计的工夫局限,而其上面的条形地区的进度色彩则显现了今后内存运用的状况,绿色暗示处于一样平常局限,黄色则暗示好多慌张,红色则是紧急状况。再上面的列表地区则显现了今后运转的进程,右上方的百分比注明其在这段工夫内运转的绝对工夫,100% 就暗示其在这段工夫内都在运转。点击进入,可以发明起内存占用详细信息。

在图中,辨别显现了内存(RAM)占用状况,和运转的%20Services%20列表。

Show%20layout%20bounds%20(显现结构边境)

运用场景:%20检察%20view%20的地区,和响应的%20margin%20和%20padding.

运用解释:%20开启后就能发明后果.

红色线:一个view的上边,下边,左边,左边 边境线
蓝色直角:一个view的角,比方长方形的四个角
粉红色块:margin系列的,比方layout_marginLeft 、layout_marginBottom
(留意:padding系列的,没有边境线,也没有色彩,不简单看出来)
考察结构边境线,有助于咱们在结构的工夫,不分明控件在那里,不分明控件的详细地位的,可以分明的发明咱们的控件在那里。还有助于咱们正确的结构控件
有工夫出现一些空缺空地,大概控件堆叠的状况,翻开结构边境,一看就分明了。

Debug GPU OverDraw (调试 GPU 过分绘制)

先来看看甚么是过分绘制。咱们在绘制界面的工夫,常常会有多个层级,比方在一块红色靠山上绘制了一张图画,但图画上面遮住的红色靠山是咱们所看不到的,这一局部也是不须要绘制的,咱们称这类景象为 过分绘制。明显,过分绘制引发了分外的事情,是咱们应当尽全力地防止的成绩。

运用场景: 检察开发的 APP 是不是存在很严峻的过分绘制成绩。

运用解释: 开启后就能发明后果,挑选 Debug GPU OverDraw, 并勾选 Show overdraw areas。


没有色彩: 意味着没有overdraw。像素只画了一次。
蓝色: 意味着overdraw 1倍。像素绘制了两次。大片的蓝色仍是可以接收的(若全部窗口是蓝色的,可以脱节一层)。
绿色: 意味着overdraw 2倍。像素绘制了三次。中等巨细的绿色地区是可以接收的但你应当测验考试优化、淘汰它们。
浅红: 意味着overdraw 3倍。像素绘制了四次,小局限可以接收。
暗红: 意味着overdraw 4倍。像素绘制了五次大概更多。这是毛病的,要修复它们。

蓝色,淡绿,淡红,深红表示了4种不一样水平的Overdraw状况,咱们的目的就是尽全力淘汰红色Overdraw,发明更多的蓝色地区。

值得提示的是,过分绘制偶然是没法防止的,Android倡议是不要跨越一次过分绘制,也就是可以是蓝色的,不能够绿了。

Profile GPU rendering(GPU 出现形式阐发)

运用场景: 如咱们所知,假如一阵的绘制工夫跨越了 16 ms,那末用户就能实践地感觉到视觉上的差别,这也就是咱们常说的卡顿。
GPU 出现形式能使得咱们以图形化的要领检察绘制每一帧破费的工夫,和其是不是跨越 16 ms,在这类形式下,可以对比大略地定位在那一块操纵对比卡顿。咱们阐发下图画,图画中有许多竖着的线,这些竖着的线暗示一帧,当中竖线的每一个色彩都暗示着这一阵在绘制中的某个步调,高度就是其破费的工夫。上方的这个横线,暗示16ms,任何一根竖着的线都可以和 16ms 进行对比,假如其跨越 16ms,那末它的绘制工夫就跨越了倡议的工夫局限,会引发界面卡顿。开发者可以经过检察进行甚么操纵会使得竖线高度飙升,来开端定位卡顿成绩。

运用解释: 点击 Profile GPU rendering, 挑选 On screen as bars.

伴随着界面的革新,界面上会转动显现垂直的柱状图来暗示每帧画面所须要衬着的工夫,柱状图越高暗示破费的衬着工夫越长。

中心有一根绿色的横线,表示16ms,咱们须要确保每一帧破费的总工夫都缺乏这条横线,这样才可以防止出现卡顿的成绩。

每一条柱状线都包罗三局部,蓝色表示丈量绘制Display List的工夫,红色表示OpenGL衬着Display List所须要的工夫,黄色表示CPU等候GPU处置的工夫。

每列数据显现了衬着每一帧须要的工夫,每一条线意味着一帧被绘制出来,而每条线中的不一样色彩又表示着在绘制进程中的不一样阶段:
Draw (蓝色) 表示着View.onDraw()要领。在这个步骤会创立/革新DisplayList中的对象,这些对象在后面会被变换成GPU可以分明的OpenGL下令。而这个值对比高大概是因为view对比庞大,须要更多的工夫去创立他们的display list,大概是因为有太多的view在很短的工夫内被创立。
Process (红色) – 履行Display list中的内容并创立OpenGL下令。假如有过于繁多大概过于庞大的display list须要履行的话,那末这阶段会耗费较长的工夫,因为这样的话会有许多的view被重绘。而重绘常常产生在界面的革新或是被挪动出了被掩盖的地区。
Execute (黄色) – 发送OpenGL下令到GPU。这个阶段是一个壅塞挪用,因为CPU在这里只会发送一个包含一些OpenGL下令的缓冲区给GPU,并且等候GPU前往空的缓冲区以便再次传送下一帧的OpenGL下令。而这些缓冲区的总量是肯定的,假如GPU太过于忙碌,那末CPU则会去等候下一个空缓冲区。以是,假如咱们发明这一阶段耗时对比长,那大概是因为GPU过于忙碌的绘制UI,而引发这个的缘故原由则大概是在短工夫内绘制了过于庞大的view。

绿色的横线暗示每一帧衬着工夫的阈值,值为16ms,这是因为Android流通运转的帧率为60fps,假如每一帧的衬着工夫跨越16ms,帧率就低落到小于60fps,会出现丢帧的状况,直观的感觉就是页面出现卡顿。假如发明条形图根本上缺乏绿色的线,解释页面的画图效力优秀,但当条形线频仍的跨越绿色的线,运用的结构应当是有成绩的,一样平常都是因为结构不科学大概是太过庞大。经过不一样色彩的线所占的比重,可以肯定卡顿是由哪一个阶段引发的。

逼迫进行GPU衬着

这个选项的意义就是逼迫开启硬件加快。关于用户来讲,开启今后运用会变得流通,可是因为好多Canvas要领不支撑硬件加快,开启今后大概会引发运用crash。

Don’t keep activities : 不保管举动

开启这个选项后,当你从Activity A跳转到Activity B时,Activity A就会被马上烧毁,这一样平经常使用来摹拟装备内存缺乏时靠山Activity被烧毁的场景,假如你的运用能做到开启它时功用仍根本一样平常,解释代码计划得对比恰当,不一样Activity之间的耦和很低,关于庞大业务的运用来讲,能做到这点至心不简单。

开启这个选项暗示页面切到靠山今后将会被零碎烧毁,一样平经常使用来摹拟装备内存缺乏时靠山Activity被烧毁的场景。咱们可以用它来测试页面重修的稳定性。假如你的运用在开启它时功用根本一样平常,解释代码计划得对比恰当,代码写的充足结实。这个详细怎样明白呢?

咱们分明Activity有一个回调要领onSavedInstanceState()会在页面被切到靠山时挪用来保管页面的状况,假如页面从头切回前台并且曾经被零碎烧毁的状况下,零碎会帮咱们重修页面,这个状况一样平常是很难摹拟的。开启这个功用,就可以摹拟这个状况,然后进行页面状况规复的调试。也就是说,假如两个Activity A启动B,B启动后零碎烧毁了页面A,从B页面再切回来时将会白屏(大概黑屏)一下,这就是零碎在重修咱们的A页面。假如咱们对页面规复的处置不当,就有大概引发页面的重修出现非常,因为究竟零碎没有智能到帮咱们保管一切需要的数据,好多仍是须要咱们本身手动来保管的。咱们在测试中发明,假如将B页面的属性设置为通明,也就是设置主题为android:theme=”@android:style/Theme.Translucent”,这工夫零碎并不会烧毁A页面,那是因为A页面并没有履行onStop()回调要领。

这个功用只是作为调试辅佐开启对比适宜,平凡用户开启后将严峻干扰用户体验。

参考:

android 中的开发者选项

关于开发者来讲,Android 的开发者选项里有哪些实际耐用的功用?

Android调试系列之开发者选项经常使用功用

经常使用 Android 开发者选项胪陈

15个必知的Android开发者选项

Android手机的开发者选项 详解

此文由 IT狗 编辑,本网站所发布展示的作品/文章版权归原作者所有,任何商业用途均须联系作者!

相关推荐

评论 暂无评论