澳门新葡萄京官网首页 6

Android 开发者选项详述

本文列举了常用的 Android
开发者选项,了解和熟练使用这些开发者选项,能够帮助我们定位开发中遇到的问题,辅助我们了解应用的性能问题,对提升开发和优化效率大有帮助。

Android SDK 提供的开发者工具

1. Stay awake (不锁定屏幕)

使用场景:在使用 USB
进行调试的时候,经常调试一段时间后,想在手机上进行下一步操作,突然发现手机就黑屏,需要解锁。

使用说明:调试时屏幕一直常亮,妈妈再也不用担心调试的时候,黑屏啦!

AAPT

2. Process Stats (进程统计信息)

澳门新葡萄京官网首页 1

使用场景:
查看后台进程和资源占用,以图形的方式展示了后台运行的进程,以及相应的运行时间和内存占用。

使用说明:
如图,左上角是指其统计的时间范围,而其下面的条形区域的进度颜色则显示了当前内存使用的情况,绿色表示处于正常范围,黄色则表示有些紧张,红色则是告急状态。再下面的列表区域则显示了当前运行的进程,右上方的百分比标明其在这段时间内运行的相对时间,100%
就表示其在这段时间内都在运行。点击进入,能够看到起内存占用详细信息。

澳门新葡萄京官网首页 2

在图中,分别显示了内存(RAM)占用情况,以及运行的 Services 列表。

这些信息也可以通过 adb 来查看,相应的命令如下:

adb shell dumpsys activity (ActivityManager
系统服务的相关信息,这些信息包括 Activity,Broadcast,Service 和
ContentProvider)

adb shell dumpsys meminfo (内存使用信息)

adb shell dumpsys procstats –hours 3 (查看过去 3
小时内,进程的使用情况)

更多信息参考 澳门新葡萄京官网首页,链接

apk 路径————/Users/sandy.peng/Desktop/ofo_eye_learn-debug.apk

3. Wait for debugger & Select debug app (等待调试器 和 选择调试应用)

使用场景: 遇到一些需要开启 APP 急需 Debug 的情况,或者需要调试 APP
启动崩溃时。这时候通常来不急挂载断点,App 进程就崩溃了。

使用说明: 在 Select debug app 选择开发
APP,并勾选 Wait for debugger, 然后再启动应用。

澳门新葡萄京官网首页 3

问题————platform-tools 没有 aapt 工具了

4. Show touches & Pointer location (显示触摸操作 和 指针位置)

使用场景: 在查看 view
点击区域,或者查看触摸手势时,需要对点击位置和操作进行相应的查看。

使用说明: show touches 显示了触摸位置,Pointer location 则显示了触摸手势。

开始配置 

5. Animation scale (动画程序时长缩放)

使用场景: 调试复杂动画,可以放慢动画效果,以便仔细观察和调试动画。

使用说明: 开启后,选择相应的缩放比,就能明显感知。

open -e .bash_profile | source .bash_profile

6. Show layout bounds (显示布局边界)

使用场景: 查看 view 的区域,以及相应的 margin 和 padding.

使用说明: 开启后就能看到效果.

澳门新葡萄京官网首页 4

在 build-tools 里面 path《》

7. Debug GPU OverDraw (调试 GPU 过度绘制)

先来看看什么是过度绘制。我们在绘制界面的时候,往往会有多个层级,例如在一块白色背景上绘制了一张图片,但图片下面遮住的白色背景是我们所看不到的,这一部分也是不需要绘制的,我们称这种现象为
过度绘制。显然,过度绘制造成了额外的工作,是我们应该尽可能地避免的问题。

澳门新葡萄京官网首页 5

使用场景: 查看开发的 APP 是否存在很严重的过度绘制问题。

使用说明: 开启后就能看到效果,选择 Debug GPU OverDraw,
并勾选 Show overdraw areas。过度绘制根据额外绘制的层级数,分为蓝(1x),黄(2x),
红(3x), 深红(4x+), 应该尽可能地使得我们的界面层级保持在蓝色或者黄色。

打开. bash_profile 文件,命令:open -e .bash_profile

8. Profile GPU rendering(GPU 呈现模式分析)

澳门新葡萄京官网首页 6

使用场景: 如我们所知,如果一阵的绘制时间超过了 16
ms,那么用户就能实际地感受到视觉上的差异,这也就是我们常说的卡顿。GPU
呈现模式能使得我们以图形化的方式查看绘制每一帧花费的时间,以及其是否超过
16
ms,在这种模式下,可以比较粗略地定位在那一块操作比较卡顿。我们分析下图片,图片中有很多竖着的线,这些竖着的线表示一帧,其中竖线的每个颜色都表示着这一阵在绘制中的某个步骤,高度就是其花费的时间。上方的这个横线,表示16ms,任何一根竖着的线都可以和
16ms 进行比较,如果其超过
16ms,那么它的绘制时间就超过了建议的时间范围,会造成界面卡顿。开发者可以通过查看进行什么操作会使得竖线高度飙升,来初步定位卡顿问题。

使用说明: 点击 Profile GPU rendering, 选择 On screen as bars.

更新. bash_profile 文件 source .bash_profile

9. Don’t keep activities (不保留活动)

使用场景: 在实际的生产环境往往会触发一些比 Debug
环境更为严苛的问题,这里通常用来模拟内存受限,不可见 Activity
被回收的情况。在这种模式下,容易触发一些不常见的崩溃,便于开发者提升应用的稳定性。

使用说明: 开启 Don't keep activities 即可。

AAPT 基本使用方法 ———— aapt

aap 列举 APK 内容文件

aapt list /Users/sandy.peng/Desktop/ofo_eye_learn-debug.apk

./aapt l[ist] > 重定向到合适的 APK path

aapt list /Users/sandy.peng/Desktop/ofo_eye_learn-debug.apk >
/Users/sandy.peng/Desktop/ofo_eye_learn-debug.txt

aapt dump 命令 ———— aapt dump badging
/Users/sandy.peng/Desktop/ofo_eye_learn-debug.apk ———— | grep package

xmlstrings

Print the strings of the given compiled xml assets

configurations

Print the configurations in the APK

resources

Print the resource table from the APK

esources

Print the resource table from the AP

permissions

Print the permissions from the APK ———— 较简单,输出 APK
中使用到的权限信息

bading

Print the label and icon for the app declared in APK.

strings

Print the contents of the resource table string pool in the APK

查看 AAPT 命令格式 aapt

Lint

ADB 指令

普通指令

adb 启动 / 停止 应用程序

adb shell am start -n [packageName/StartActivity]

adb shell am force-stop [packageName]

应用安装卸载

# 获取apk的packagename 和 classnameaapt d badging

# 安装apkadb install # 保留数据和缓存文件,重新安装apk,adb install -r

# 安装apk到sd卡adb install -s

# 卸载appadb uninstall

# 卸载app但保留数据和缓存文件adb uninstall -k

# 同时安装包多个apk到设备上adb install-multiple

应用状态查看——adb shell ps

# 查看进程列表adb shell ps

# 查看指定进程状态adb shell ps -x [PID]

# 查看后台services信息adb shell service list

# 查看IO内存分区adb shell cat /proc/iomem

截图与录屏 —— adb shell screencap -p /sdcard/screenshot.png

帧率分析 —— adb shell dumpsys gfxinfo
com.starlight.mobile.android.smsone

16ms一帧——以每秒 60 帧来刷新 60 帧每秒就意味着: 16ms=1000/60Hz

dumpsys ——adb shell dumpsys window windows | grep -E
mCurrentFocus————讲一下当前 Activity

adb shell dumpsys window windows | grep -E mCurrentFocus

设备信息 adb shell top | adb shell top -m 6

# 查看设备cpu和内存占用情况adb shell top

# 查看占用内存前6的app adb shell top -m 6

# 刷新一次内存信息,然后返回adb shell top -n 1

# MAC地址adb shell cat /sys/class/net/wlan0/address

# CPU序列号adb shell cat /proc/cpuinfo

Android Device Monitor ———— ddms,java 环境

9Patch 工具 draw9patch———— 没了

UI Automator Viewer ———— uiautomatorviewer__,java 环境

开发者选项

Process Stats (进程信息,正在运行的服务)————smsone 有三个服务

Show Touches && Pointer Location
(显示点按操作反馈,指针位置)————多点触摸,屏幕最上方 坐标

Show Layout Bounds (布局边界)

Animation Scale () 过渡动画 速率,研究动画

Simulate Secondary Displays 模拟辅助显示设备

Debug GPU Overdraw 调试 gpu 过渡绘制

Show CPU Usage 显示cpu 使用情况

Profile GPU Rending 条形显示 gpu 刷新

Strick Mode 启用严格模式

不保留活动

小功能点

保持不休眠

模拟颜色空间——红绿色弱

其他的能用到的一些工具

当前 Activity

vysor

adb

snaps

Paste

Sizeup

发表评论

电子邮件地址不会被公开。 必填项已用*标注