网站首页 / 育儿 / 正文

android时间选择控件大全(android常用控件大全)

时间:2022-04-13 16:45:14 浏览:3343次 作者:用户投稿 【我要投诉/侵权/举报 删除信息】

Android Profiler不妨供给对于运用 CPU、外存和搜集的及时数据。

一 . 启用领会

要翻开 Android Profiler 窗口,请按以次办法操纵:

1. 点击东西栏中的 Android Profiler(也不妨点击 View > Tool Windows > Android Profiler )。

2. 在 Android Profiler 窗口顶部采用想要领会的摆设和运用过程,如次图所示。

上海图书馆中各个数字对应的含意:

① 要领会的摆设。

② 要领会的运用过程。

③ 功夫线缩放控件。

④ 及时革新跳转按钮。

⑤ Event功夫线,囊括Activity状况、用户输出Event和屏幕回旋Event。

即使表露“Advanced profiling is unavailable for the selected process”,不妨在高层东西栏中式点心击 Profile ‘app‘ 来运转,大概在运转摆设中起用高档领会,按以次办法操纵:

1. 采用 Run > Edit Configurations。

2. 在左侧窗格中采用您的运用模块。

3. 点击 Profiling 标签,而后勾选 Enable advanced profiling。

从新建立并运转运用即可。

二. CPU Profiler

CPU Profiler 可扶助及时查看运用的 CPU 运用率和线程 Activity,并记载因变量盯梢,再不优化和调节和测试运用代码。

2.1 CPU Profiler 大概浏览

如上海图书馆所示,CPU Profiler 的默许视图囊括以次实质:

① Event 功夫线: 表露运用中在其人命周期变换的 Activity,并表露用户与摆设的交互,囊括屏幕回旋 Event。

② CPU 功夫线: 表露运用的及时 CPU 运用率(占总可用 CPU 功夫的百分比)以及运用运用的总线程数。 此功夫线还表露其余过程的 CPU 运用率(如体例过程或其余运用),再不不妨将其与本人的运用运用率举行比较。 经过沿功夫线的程度轴挪动鼠标,还不妨查看汗青 CPU 运用率数据。

③ 线程 Activity 功夫线: 列出属于运用过程的每个线程。底下证明各别的脸色对应的含意:

绿色: 表白线程居于震动状况或筹备运用 CPU。 即,它正在“运转中”或居于“可运转”状况。黄色: 表白线程居于震动状况,但它正在等候一个 I/O 操纵(如磁盘或搜集 I/O),而后本领实行它的处事。灰色: 表白线程正在睡眠且没有耗费任何 CPU 功夫。 当线程须要考察尚不行用的资源时偶然会爆发这种情景。 线程加入自决睡眠或内核将此线程置于睡眠状况,直到所需的资源可用。④ 记载摆设: 采用领会器记载因变量盯梢的办法,如次:

Sampled: 以恒定周期记载。在运用实行功夫一再捕捉运用的挪用仓库。 领会器比拟捕捉的数据集以推导与运用代码实行相关的功夫和资源运用消息。 鉴于“Sampled”的盯梢的题目是,即使运用在捕捉挪用仓库保守入一个因变量并鄙人一次捕捉前退出该因变量,则领会器不会记载该因变量挪用。 即使对该类人命周期很短的盯梢因变量感爱好,应运用“Instrumented”盯梢。Instrumented: 以因变量挪用功夫为周期记载。在运转时树立运用以在每个因变量挪用的发端和中断时记载功夫戳。 它搜集功夫戳并举行比拟,以天生因变量盯梢数据,囊括功夫消息和 CPU 运用率。 提防,与树立每个因变量关系的开支会感化运转时本能,并大概会感化领会数据,对于人命周期对立较短的因变量,这一点更为鲜明。 其余,即使运用短功夫内实行洪量因变量,则领会器大概会赶快胜过它的文献巨细控制,且不许再记载更多的盯梢数据。Edit configurations: 承诺变动上述“Sampled”和“Instrumented”记载摆设的某些默许值,并将它们另存为自设置摆设。⑤ 记载按钮: 用来发端和遏止记载因变量盯梢。

注:领会器还会汇报 Android Studio 和 Android 平台增添到您的运用过程(如 JDWP、Profile Saver、Studio:VMStats、Studio:Perfa 以及 Studio:Heartbeat)的线程 CPU 运用率。

2.2 记载和查看因变量盯梢

采用 Sampled 或 Instrumented ,而后点击Record发端记载因变量盯梢,点击Stop recording中断,如次图所示。

① 采用功夫范畴: 决定要在盯梢窗格中查看所记载功夫范畴的哪一局部。 当初次记载因变量盯梢时,CPU Profiler 将在 CPU 功夫线中机动采用完备长度。 即使想仅查看所记载功夫范畴第一小学局部的因变量盯梢数据,不妨点击并拖动超过表露的地区边际以窜改其长度。

② 功夫戳: 用来表白所记载因变量盯梢的发端和中断功夫(对立于领会器从摆设发端搜集 CPU 运用率消息的功夫)。 不妨点击功夫戳以机动采用完备记载。

③ 盯梢窗格: 用来表露所选的功夫范畴和线程的因变量盯梢数据。

④ 经过挪用图表、火苗图、 Top Down 树或Bottom Up 树的情势表露因变量盯梢。

⑤ 决定怎样丈量每个因变量挪用的功夫消息:

Wall clock time:本质过程的功夫。Thread time:本质过程的功夫减去线程没有耗费 CPU 资源的功夫。2.2.1 运用 Call Chart 标签查看盯梢

Call Chart 标签供给因变量盯梢的图形表白情势,个中,程度轴表白因变量挪用(或挪用方)的功夫,并沿笔直轴表露其被挪用者。 对体例 API 的因变量挪用表露为橙色,对运用自有因变量的挪用表露为绿色,对第三方 API(囊括 Java 谈话 API)的因变量挪用表露为蓝色。 下图展现了一个挪用图表白例,并刻画了给定因变量的 Self time、Children time 以及总功夫的观念。

提醒:若要跳转到某个因变量的源代码,请右键点击该因变量并采用 Jump to Source。

2.2.2 运用 Flame Chart 标签查看盯梢

Flame Chart 标签供给一个颠倒的挪用图表,个中程度轴不复代办功夫线,它表白每个因变量对立的实行功夫。

底下证明此观念,商量下图中的挪用图表。提防因变量 D 屡次挪用 B(B1、B2 和 B3),个中少许对 B 的挪用也挪用了 C(C1 和 C3)。

因为 B1、B2 和 B3 共享沟通的挪用方程序 (A → D → B),所以可将它们汇总在一道,如次所示。 同样,将 C1 和 C3 汇总在一道,由于它们也共享沟通的挪用方程序 (A → D → B → C)。提防未包括 C2,由于它具备各别的挪用方程序 (A → D → C)。

汇总的因变量挪用用来创造火苗图,如次图所示。提防,对于火苗图中任何给定的因变量挪用,开始表露耗费最多 CPU 功夫的被挪用方。

2.2.3 运用 Top Down 和 Bottom Up 查看盯梢

Top Down 标签表露一个因变量挪用列表,在该列表中打开因变量节点会表露因变量的被挪用方。 下图表露上头挪用图表对应的“Top Down”图表。图表中的每个箭镞都从挪用方指向被挪用方。

如上海图书馆所示,在“Top Down”标签中打开因变量 A 的节点可表露它的被挪用方,即因变量 B 和 D。 而后,打开因变量 D 的节点可表露它的被挪用方,即因变量 B 和 C 之类。

Top Down 标签供给以次消息以证明在每个因变量挪用上所耗费的 CPU 功夫:

Self: 表白因变量挪用在实行本人的代码(而非被挪用方的代码)上所花的功夫。Children: 表白因变量挪用在实行本人的被挪用方(而非本人的代码)上所花的功夫。总和: 因变量的 Self 和 Children 功夫的总和。 表白运用在实行因变量挪用上所花的总功夫。Bottom Up 标签表露一个因变量挪用列表,在该列表中打开因变量节点将表露因变量的挪用方,如次图所示。

如上海图书馆所示,在“Bottom Up”树中翻开因变量 C 的节点可表露它的挪用方 B 和 D。 提防,纵然 B 挪用 C 两次,但在“Bottom Up”树中打开因变量 C 的节点时,B 仅表露一次。 而后,打开 B 的节点表露其挪用方,即因变量 A 和 D。

注:当领会器达到文献巨细控制时,Android Studio 将遏止搜集新数据(但不会遏止记载)。

2.3 创造记载摆设

要创造或编纂自设置摆设,或查看现有的默许摆设,可经过记载摆设下拉菜单中采用 Edit configurations 来翻开 CPU Recording Configurations 对话框,如次图所示。

不妨在左侧窗格中采用现有摆设来查看其树立,也可按如次办法创造一个新的记载摆设:

1. 点击对话框左上角的 ➕ 。

2. 为摆设定名。

3. 在 Trace Technology 局部采用 Sampled 或 Instrumented。

4. 对于“Sampled”记载摆设,以微秒 (μs) 为单元指定 Sampling interval。 此值表白运用挪用仓库的每个取样之间的连接功夫。

5. 对于写入贯穿摆设的记载数据,以兆字节 (MB) 为单元指定 File size limit。 当您遏止记载时,Android Studio 将领会此数据并将其表露在领会器窗口中。

注: 即使运用运转 API 级别 26 或更高本子的贯穿摆设,则对于盯梢数据的文献巨细没有控制,此值可忽视。

6. 点击 Apply 或 OK。 即使变动了其余记载摆设,则也将生存那些变动。

三. Memory Profiler

Memory Profiler 是可扶助辨别引导运用卡顿、停止以至解体的外存揭发和流逝。 它表露一个运用外存运用量的及时图表,不妨捕捉堆转储、强迫实行废物接收以及盯梢外存调配。

3.1 Memory Profiler 大概浏览

如上海图书馆所示,Memory Profiler 的默许视图囊括以次各项:

① 强迫实行废物接收 Event 。

② 捕捉堆转储。

③ 记载外存调配情景。 此按钮仅在运转 Android 7.1 或更低本子的摆设时才会表露。

④ 夸大/减少功夫线。

⑤ 跳转至及时外存数据。

⑥ Event 功夫线,其表露 Activity 状况、用户输出 Event 和屏幕回旋 Event。

⑦ 外存运用量功夫线,包括以次实质:

表露每个外存类型运用几何外存的堆叠图表,如左侧的 y 轴以及顶部的彩色键所示。虚线表白调配的东西数,如右侧的 y 轴所示。用来表白每个废物接收 Event 的图标。如上海图书馆,外存计数中的类型如次所示:

Java:从 Java 或 Kotlin 代码调配的东西外存。Native:从 C 或 C++ 代码调配的东西外存。Graphics:图形缓冲区部队向屏幕表露像素(囊括 GL 外表、GL 纹理之类)所运用的外存。 (提防,这是与 CPU 共享的外存,不是 GPU 专用外存。)Stack: 运用中的原生仓库和 Java 仓库运用的外存,常常与运用运转几何线程相关。Code:运用用来处置代码和资源(如 dex 字节码、已优化或已编写翻译的 dex 码、.so 库和字体)的外存。Other:运用运用的体例不决定怎样分门别类的外存。Allocated:运用调配的 Java/Kotlin 东西数。 没有计入 C 或 C++ 中调配的东西。注:暂时,Memory Profiler 还会表露运用中的少许误报的原生外存运用量,而那些外存本质上是领会东西运用的。 对于大概 100000 个东西,最多会使汇报的外存运用量减少 10MB。

3.2 察看外存调配

Memory Profiler 可表露相关东西调配的以次消息:

调配哪些典型的东西以及它们运用几何空间。每个调配的堆叠蹑踪,囊括在哪个线程中。东西在何时被废除调配(Android 8.0+)。即使摆设运转 Android 8.0 或更高本子,不妨依照下述本领察看东西调配: 只需点击并按住功夫线,并拖动采用想要察看调配的地区,如次图所示:

即使摆设运转 Android 7.1 或更低本子,则在 Memory Profiler 东西栏中式点心击 Record memory allocations 。 操纵实行后,点击 Stop recording 以察看调配。如次图所示:

在采用一个功夫线地区后,已调配东西的列表将表露在功夫线下方,按类称呼举行分批,并按其堆计数排序。

注:在 Android 7.1 及更低本子上,最多不妨记载 65535 个调配。 即使记载胜过此限值,则记载中仅生存最新的 65535 个调配。 在 Android 8.0 及更高本子中,没有此控制。

要查看调配记载,请按以次办法操纵:

1. 欣赏列表以搜索堆计数特殊大且大概生存揭发的东西。 点击 Class Name 列题目不妨按假名程序排序。 而后点击一个类称呼。 此时在右侧将展示 Instance View 窗格,表露该类的每个范例。

2. 在 Instance View 窗格中,点击一个范例。 此时下方将展示 Call Stack 标签,表露该范例被调配到何处以及在哪个线程中,如次图所示。

3. 在 Call Stack 标签中,双击大肆行以在编纂器中跳转到该代码。

默许情景下,左侧的调配列表按类称呼陈设。 在列表顶部,不妨运用右侧的下拉列表在以次陈设办法之间举行切换:

Arrange by class:鉴于类称呼对一切调配举行分批。Arrange by package:鉴于软硬件包称呼对一切调配举行分批。Arrange by callstack:将一切调配分批到其对应的挪用仓库。3.3 捕捉堆转储

堆转储表露在捕捉堆转储时运用中哪些东西正在运用外存。 更加是在长功夫的用户对话后,堆转储会表露您觉得不应再坐落外存中却仍在外存中的东西,进而扶助辨别外存揭发。 在捕捉堆转储后,不妨察看以次消息:

运用已调配哪些典型的东西,以及每个典型调配几何。每个东西正在运用几何外存。在代码中的何处仍在援用每个东西。东西所调配到的挪用仓库。 (暂时,即使在记载调配时捕捉堆转储,则惟有在 Android 7.1 及更低本子中,堆转储本领运用挪用仓库。)要捕捉堆转储,在 Memory Profiler 东西栏中式点心击 Dump Java heap 。 在转储堆功夫,Java 外存量大概会姑且减少, 这很平常,由于堆转储与您的运用爆发在同一过程中,并须要少许外存来搜集数据。

堆转储表露在外存功夫线下,表露堆中的一切类典型,如次图所示。

要查看堆,请按以次办法操纵:

1. 欣赏列表以搜索堆计数特殊大且大概生存揭发的东西。 点击 Class Name 列题目不妨按假名程序排序。 而后点击一个类称呼。 此时在右侧将展示 Instance View 窗格,表露该类的每个范例。

2. 在 Instance View 窗格中,点击一个范例,此时下方将展示 References,表露该东西的每个援用。点击范例称呼旁的箭镞不妨察看其一切字段,而后点击一个字段称呼察看其一切援用。 即使要察看某个字段的范例确定,右键点击该字段并采用 Go to Instance,如次图所示。

3. 在 References 标签中,即使创造某个援用大概在揭发外存,则右键点击它并采用 Go to Instance。

在类列表中,不妨察看以次消息:

Heap Count:堆中的范例数。Shallow Size:此堆中一切范例的总巨细(以字节为单元)。Retained Size:为该类的一切范例而保持的外存总巨细(以字节为单元)。在类列表顶部,不妨运用左侧下拉列表在以次堆转储之间举行切换:

Default heap:体例未指定堆时。App heap:运用在个中调配外存的主堆。Image heap:体例启用映像,包括启用功夫预加载的类。 此处的调配保护绝不会挪动或消逝。Zygote heap:写时复制堆,个中的运用过程是从 Android 体例中派生的。默许情景下,此列表按 Retained Size 列排序,不妨点击大肆列题目以变动列表的排序办法。

在 Instance View 中,每个范例都包括以次消息:

Depth:从大肆 GC root 到所选范例的最短 hop 数。Shallow Size:此范例的巨细。Retained Size:此范例安排的外存巨细。3.4 将堆转储另存为 HPROF

即使要生存堆转储以供遥远察看,可经过点击功夫线下方东西栏中的 Export heap dump as HPROF file,将堆转储导出到一个 HPROF 文献中。 在表露的对话框中,保证运用 .hprof 后缀生存文献。而后,经过将此文献拖到一个空的编纂器窗口就不妨在 Android Studio 中翻开该文献。

要运用其余 HPROF 领会器(如 jhat),须要将 HPROF 文献从 Android 方法变换为 Java SE HPROF 方法。 不妨运用android_sdk/platform-tools/ 目次中的 hprof-conv 东西实行此操纵。 运转该吩咐须要两个参数:原始 HPROF 文献和变换后 HPROF 文献的写入场所。 比方:

hprof-conv heap-original.hprof heap-converted.hprof

3.5 领会外存揭发示例

底下举例证明怎样领会外存揭发。下图点击中央“加入外存揭发Activity”按钮,不妨加入一个爆发外存揭发的Activity,底下展现怎样经过Memory Profiler找到爆发外存揭发的类并定位到爆发揭发的代码。

开始,咱们不妨重复加入和退出外存揭发Activity,而后在Memory Profiler中强迫废物接收,之后捕捉堆转储。待领会截止出来后,不妨点击右侧的挑选按钮,挑选咱们关心的包名,如次图所示:

也不妨在“Arrange by class”处采用“Arrange by package”来举行手动采用。

不妨看到有3个MemoryLeakActivity东西,按说说退出它们并GC之后不该当在外存中。咱们单击那一条龙,右侧会表露每个范例,点击个中一个范例,底下会表露其援用,如次图所示:

咱们不妨双击第一个援用,大概右键点击采用“Jump to Source”,就不妨定位到爆发外存揭发的代码,如次:

如许一个外存揭发的领会进程就中断了。

四. Network Profiler

Network Profiler 不妨在功夫线上表露及时搜集 Activity,囊括发送和接受的数据以及暂时的贯穿数,便于察看运用传输数据的办法和功夫,并据此对底层代码举行符合优化。

4.1 Network Profiler 大概浏览

如上海图书馆所示,窗口顶部表露的是 Event 功夫线以及无线安装功耗状况(低/高)与 WLAN 的比较①。 在功夫线上,不妨点击并拖动采用功夫线的一局部来查看搜集流量②。 下方的窗口③会表露在功夫线的选定片断内收发的文献,囊括文献称呼、巨细、典型、状况和功夫。 不妨点击大肆列题目排序。 同声,还不妨察看功夫线选定片断的明细数据,表露每个文献的发送和接受功夫。

点击搜集贯穿的称呼即可察看相关所发送或接受的选定文献的精细消息④。 点击各个标签可察看相应数据、题目消息和挪用仓库。

注:Network Profiler 暂时只扶助 HttpURLConnection 和 OkHttp 搜集贯穿库。

版权声明:
本文内容由互联网用户自发贡献,该文观点仅代表作者本人,因此内容不代表本站观点、本站不对文章中的任何观点负责,内容版权归原作者所有、内容只用于提供信息阅读,无任何商业用途。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站(文章、内容、图片、音频、视频)有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至353049283@qq.com举报,一经查实,本站将立刻删除、维护您的正当权益。