首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android 性能优化】应用启动优化 ( Trace 文件分析 | 结合代码分析 Trace 文件 )

| SD 卡访问权限 | 示例代码 | 获取 Trace 文件 | Android Studio 查看文件) 中获取到了应用启动时 onCreate 方法的代码追踪内容 , 代码执行的详细信息都保存在了...Method_Trace.trace 文件中 , 本篇博客开始分析其中的内容信息 ; Android Studio 中分析 Method_Trace.trace 文件界面 : 线程选择 : 选择要分析的是哪个线程...放大上述调用图 : 按住 Ctrl 不松开 , 滚动鼠标滚轮 , 可以放大缩小上述方法调用图 ; 该图拉长后 , 很长 , 大约有一两百米的样子 ; 查看具体的某个方法执行时间 : 将鼠标移动到某个方法的矩形块中..., 如这个 findViewById 方法 , 该橙色的块就代表了方法的执行时间 , 该方法执行了 92 微秒 ( μs ) ; 方法调用 : 每一个矩形块 , 都代表一个方法 , 最上层的矩形块代表最外层方法..., 下层的矩形块是被上层矩形块调用的方法 , 每个方法 ; 上下排列的矩形块 : 上下排列的矩形块表示上层方法调用下层方法 ; 左右排列矩形块 : 代表先后执行的两个方法 ; 每个方法执行的详细参数

4.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    绘制优化

    比如上面界面中的『调试 GPU 过度绘制 』的那个文本显示为蓝色,表示其过度绘制了一次,因为背景是白色的,然后文字是黑色的,导致文字所在的区域就会被绘制两次:一次是背景,一次是文字,所以就产生了过度重绘...(android.R.color.transparent); 移除不必要的背景 还是上面的那个界面,因为移除了默认的 Window 背景,所以在布局中设置背景为白色: <?...除了 clipRect() 以外,还可以使用 canvas.quickreject() 来判断和某个矩形相交,如果相交的话,则可以跳过相交的区域减少过度绘制。...设备屏幕刷新频率为60Hz 优化工具 Systrace 关注Frames 正常:绿色圆点 丢帧:黄色或者红色圆点 Alerts栏 Layout Inspector Android studio 自带的布局工具...比如通过在XML中写一个TextView,可以在此方法中,判断当前name是TextView,将TextView修改成Button 为什么调用LayoutInflater.from(this).setFactory2

    89910

    Android-Xml绘图

    使用shape可以自定义形状,可以定义下面四种类型的形状,通过android:shape属性指定: rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等 oval: 椭圆形,用得比较多的是画正圆..." android:padding="16dp" android:text="带阴影的圆角矩形-1" /> TextView android...比如上面的例子,Tab背景中的白色背景设置了android:bottom之后才能看到一点红色背景。那么如果偏移量设为负值会怎么样呢?经过验证,偏移超出的部分会被截掉而看不到,不信可以自己试一下。...如果不愿意手工编写,可以在Android Studio使用插件android-selector-chapek,但是图片的命名规则需要按照规范才可以自动生成。...所以,如果想改ListItem的默认背景,只能通过第二种方式,在ListItem的布局layout里设置android:background。

    79010

    安卓软件开发:车机应用实现增加和减少选择数值的控件UI

    一、引言 在移动应用开发中,本文讲如何在安卓应用中实现一个增加和减少选择数值的控件。 思考: 为什么需要增加和减少控件?...这种控件在许多场景中应用广泛,比如 购物车应用:用于选择商品的数量。 设置页面:如调节音量、亮度、字体大小等。 游戏:调节难度等级、角色属性等。...二、开发环境介绍 本文使用 Android Studio 作为开发环境,使用 XML设计UI布局,采用 Java 来实现逻辑处理,但是协议数据不提供code。...TextView 显示当前的数值,可以通过点击按钮进行更新。 (2)编码UI逻辑 当用户点击加号或减号时,系统会更新当前显示的数值。...,详细讲解了如何在 Android 应用中实现一个增加和减少数值的控件。

    9620

    Android O:使用自定义字体资源

    前言 Android O中的新功能之一是使用自定义字体资源。在这篇文章中,我们一起来看看如何在我们的应用程序中使用它们。 在Android O之前,在我们的应用中使用自定义字体有多困难?...在Android Studio中创建新的资源目录.png 创建字体文件夹很容易.就像创建 menu, values, drawable等等。 所以右键单击res文件夹并创建一个新font文件夹。 ?...通过fonts.google.com下载字体.png 您可以下载您选择的.otf或.ttf字体,并将它们放在res / fonts文件夹中。 请注意,资源文件应使用小写字母和下划线。...一旦您放入fonts文件夹中的自定义字体文件,就可以预览字体。只需双击一个字体,Android Studio会预览字体。 ? 字体预览.png 转到您的XML布局文件。...XML编辑器设计视图中的TextView属性.png 最终结果 ? 修改后的.png 哪里能了解更多的信息? 使用自定义字体资源只是Android O中的新功能之一。

    2.5K30

    Kotlin 第一弹:自定义 ViewGroup 实现流式标签控件

    大家都对这比较关心,我觉得最大的原因是,当初宣布 Android Studio 成为官方 IDE 后,很多开发者都还在坚守 Eclipse,但是现在来看,大部分都转为 Android Studio 开发了...当然,首先我已经默认大家知道怎么通过 Android Studio 创建 Kotlin 工程了。如果还不熟悉的话,请自行查阅相关资料。...编写测试代码 我们默认为 TagView 的子 View 为 TextView。所以,为了美观大方,我们先给它定义一个背景。我们可以用一个 shape 实现。 TextView 然后背景在 xml 中用统一的 shape 来代替,所以我们可以实现圆角矩形的式样。...它是一个封闭图形,左边一个半圆,中间一个矩形,右边是一个半圆。然后,内容区域主要是 title 部分,它可以自定义 textSize,还有距中间矩形的间距。

    1.4K20

    一文彻底搞清楚 Material Design

    在 Android 中 elevation 这个属性代表了海拔高度,这个值是永远有效的,只是如果没有阴影的话,可能体现不出来,只能通过下面的海拔演示来体现出来。...轮廓 默认情况下,所有的view都是矩形的,虽然可以给view设置背景圆形的图片,即可以在界面显示出圆形的内容,但是view的大小实际上依然是矩形,并且设置的图片实际上也是矩形的,只是圆形以外的区域是透明色...轮廓的实现 ①通过shape设置的背景,view会自动根据shape的形状进行轮廓判定, ②通过color设置的背景,view默认其轮廓和view的大小一样。...③但是通过图片进行背景设置,view则无法获知轮廓的形状,这个时候就需要手动进行指定了 手动指定轮廓 当默认轮廓不好使,或者是我们自己定义的View 的话,就需要我们自己通过代码来指定轮廓了。...: 先设置轮廓 在设置根据轮廓裁剪 View,目前只支持对矩形、圆形、圆角矩形的裁剪 tvClip.setClipToOutline(true)// 设置对 View 进行裁剪 通过 outlin.canClip

    3.3K10

    一种为 Linux ARM 设备构建跨平台 UI 的新方法

    我们的方法是使用 Android Studio 绘制 UI;使用 TotalCross 在设备上呈现 Android XML;采用被称为 KnowCode 的新 TotalCross API;以及使用...选择 Android Studio 可以使用 TotalCross API 为应用程序构建一个美观的响应式用户体验,但是在 Android Studio 中创建 UI 缩短了制作原型和实际应用程序之间的时间...通过思考这些问题,我们创建了一个概念验证,使用 Android Studio 绘制 UI,并使用 TotalCross 直接在设备上运行 AndroidXML。...Android XML 为 UI 创建增加了很多灵活性,使得为应用程序构建丰富的用户体验变得容易。在下面的 XML 中,我们使用了两个主要组件:ImageView 和 TextView。...添加事件 KnowCode API 提供了一种通过 ID(getControlByID) 获取 XML 元素并更改其行为的方法,如添加事件、更改可见性等。

    1.5K20

    一种为 Linux ARM 设备构建跨平台 UI 的新方法

    我们的方法是使用 Android Studio 绘制 UI;使用 TotalCross 在设备上呈现 Android XML;采用被称为 KnowCode 的新 TotalCross API;以及使用...选择 Android Studio 可以使用 TotalCross API 为应用程序构建一个美观的响应式用户体验,但是在 Android Studio 中创建 UI 缩短了制作原型和实际应用程序之间的时间...通过思考这些问题,我们创建了一个概念验证,使用 Android Studio 绘制 UI,并使用 TotalCross 直接在设备上运行 AndroidXML。...Android XML 为 UI 创建增加了很多灵活性,使得为应用程序构建丰富的用户体验变得容易。在下面的 XML 中,我们使用了两个主要组件:ImageView 和 TextView。...添加事件 KnowCode API 提供了一种通过 ID(getControlByID) 获取 XML 元素并更改其行为的方法,如添加事件、更改可见性等。

    1.9K50

    Android可穿戴设备世界之旅

    介绍 Android通过在电视、穿戴和汽车等各种电子模块中扩展下一代应用开发概念,扩展了其整个范围和可能性。本文简要总结和概述了 Android Wear(未来新兴的应用开发平台)中的应用开发。...为了制作应用程序,我们将使用 Android Studio。如果您的计算机有 4GB 内存和 JDK 7 或更高版本,您就可以开始了。...创建新项目 打开Android Studio,然后选择“新建项目”选项。为您的应用程序命名,我们在这里使用“Hello Android Wear”作为应用程序名称以及公司域名。...我们将打印传递给此活动的值,并通过将其保存在 中来跟踪最高分。...兴趣点 如本文前面所述,将整个可穿戴平台涵盖到一篇文章中是一个漫长的过程。但是我们已经看到了在这个平台上开发应用程序的最重要因素。

    12810

    Android性能优化系列之布局优化

    xml文件,然后在需要使用的地方通过include标签引入即可。...) ; // 通过titleView找子控件 TextView titleTextView = (TextView)titleView.findViewById(R.id.title_tv) ; titleTextView.setText...分析到activity_main.xml的布局文件时,发现这里使用了多个嵌套的LinearLayout布局,而且每个LinearLayout都会使用一次android:background设置一次自己的背景颜色...仔细分析在其中一个嵌套ImageView的LinearLayout布局背景颜色与最外层的背景颜色是一样的,属于不需要的背景色,因此将这个LinearLayout中的android:background属性删除...)设置布局的时候,android会自动填充一个默认的背景,而在这个UI中,我们使用了填充整个app的背景,因此不需要默认背景,取消也很简单,只需要在activity中的onCreate方法中添加这么一句就行了

    1K20

    Android – Drawable 详解

    形状可以用属性来描述,如圆角,背景渐变,间距填充,背景颜色固定,描边等。 纯色 Shapes 下面是一个绘制带有边框的圆角矩形的示例: <?...渐变色的 Shapes 形状也支持 gradients backgrounds(渐变背景)支持的属性,如startColor,centerColor,endColor,角度。...可以使用类型属性选择不同的渐变,如径向,线性或扫描。 下面是一个简单的线性渐变形状的例子: <?xml version="1.0" encoding="utf-8"?...转换为Vector Drawable 另外,有几种方法可以直接从SVG图形创建vector drawable: ① Vector Asset Studio - 是Android Studio中包含的一个实用工具...运行时Drawables 我们可以通过访问具有可绘制应用的视图的背景,在我们的Java代码的运行时访问drawable。

    5.4K50

    【Android】解决TextView.setText提示Do not concatenate text displayed with setText. Use resource string

    挖坑背景 在实际的项目开发过程中,我们会经常用到TextView.setText()方法,而在进行某些单位设置时,比如 设置时间xxxx年xx月xx日 或者设置 体重xx公斤* 时,大家一般都会使用如下写法...); tvWeight.setText("当前体重:" + weight + "公斤"); 那么...如果你是在Android Studio上进行开发的话,你在使用该方式进行文本设置时就会看到以下提示:...通过以上信息,我们可以得知: 不建议使用Numer.toString()的方式来进行字符串的转换,建议使用规范格式(%d或%f)的字符串来代替; 不建议直接使用字符串文字来直接显示文本,建议直接使用Android...---- 解决方法 通过上述对问题的分析解读,我们上述类似问题所引发的警告可以通过如下方式更规范化的使用TextView.setText()方法: 使用String.format方法 在strings.xml...如:%1d代表第一个参数,数值类型为整数。 使用Android字符串资源来替换字符串文字

    2.1K20

    腾讯开源超实用的UI轮子库,我是轮子搬运工

    QMUIProgressBar 一个进度条控件,通过颜色变化显示进度,支持环形和矩形两种形式,主要特性如下: 支持在进度条中以文字形式显示进度,支持修改文字的颜色和大小。...可以通过 xml 属性修改进度背景色,当前进度颜色,进度条尺寸。 支持限制进度的最大值。 QMUIPullRefreshLayout 下拉刷新控件。...支持分别指定背景色和边框色,指定颜色时支持使用 color 或 ColorStateList。...QMUIRoundButtonDrawable 使用该 Drawable 可以方便地生成圆角矩形/圆形 Drawable,提供设置背景色、描边大小和颜色、圆角自适应 View 高度等特性。...提供多个常用的工具方法,如获取状态栏高度、判断当前是否全屏等等。

    4.8K30

    3.6 自定义View (3.6.1)

    一般来说,我们可以在onDraw()方法中对原生控件行为进行拓展。 下面以一个TextView为例,来看看如何使用拓展原生控件的方法创建新的控件。...比如想让一个TextView的背景更佳丰富,给其多绘制几层背景,如下图所示。 ? 我们先来分析一下如何实现这个效果,原生的TextView使用onDraw()方法绘制要显示的文字。...在前面一个实例中,我们直接使用了Canvas对象来进行图像的绘制,然后利用Android的绘图机制,可以绘制出更复杂丰富的图像。...要想实现这个效果,可以充分利用Android中Paint对象的Shader渲染器。 通过设置一个不断变化的LinearGradient,并使用带有该属性的Paint对象来绘制要显示的文字。...最后,在onDraw()方法中,通过矩形的方式来不断平移渐变效果,从而在绘制文字时,产生动态的闪动效果,代码如下所示。

    53620

    【JetPack】ViewBinding 视图绑定组件 ( 启用模块 | 视图绑定定制 | 绑定类名称生成规则 | 绑定类字段生成规则 | 绑定类获取根视图 | 绑定类获取布局组件 )

    视图绑定 ViewBinding 使用前提 ( Android Studio 3.6 ) III . 视图绑定组件启用 IV . 定制视图绑定 ( 启用视图绑定后 不想生成绑定类 ) V ....视图绑定 ViewBinding 使用前提 ( Android Studio 3.6 ) ---- 1 ....Android Studio 最低版本要求 : 使用视图绑定组件 , 需要将 Android Studio 开发环境升级到 3.6 Canary 11 及以上版本 ; 2 ....Android Studio 升级流程 : 尽量使用 Android Studio 自带的升级功能 , 这样能尽量少的降低对之前应用的影响 ; ① 选择 Android Studio 自带升级选项 :...绑定类组件成员名称生成规则 : 组件中的字段也是按照驼峰式命名生成 , 首字母小节 , 中间的字母首字母大写 , 如 id 是 text_view , 生成的成员变量名称是 textView ; 1 .

    1.2K10
    领券