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

一篇文章教你读懂UI绘制流程我的Android重构之旅:框架篇

在我这几年的学习和成长中,慢慢的意识到搭建一个优秀的 Android 开发框架是一件非常困难以及痛苦的事情,它不仅需要满足不断增长的业务需求,还要保证框架自身的整洁与扩展性,这让事情变得非常有挑战,但我们必须这样做...架构的选择 现在网上关于 MVVM、MVP、MVC、AndroidFlux 的选择与分析的文章已经非常多了,这里我就不过多描述了,感兴趣的同学可以看 我的Android重构之旅:架构篇 ,在这里我们最终选择了...这也是我一直努力的目标。...: 分层原则 依赖原则 抽象原则 接下来我就分别阐述一下,我对这些原则的理解,以及背后的原因。...:业务逻辑层 看上面的三层我们很容易的就联想到 MVP 结构,下面我就来说一说这三层所包含的内容。

54121

我的 Serverless 实战—仅需三分钟不懂代码也可完成---使用Serverless快速搭建wordpress博客

【本文正在参与“100%有奖|我的Serverless 实战”征稿活动】,活动地址:https://marketing.csdn.net/p/15940c87f66c68188cfe5228cf4a0c3f...console.cloud.tencent.com/sls 创建wordpress模板应用 输入名称完成即可 等待部署 部署完成进入管理 访问 第一次进入需要安装 下面输入的...指向分配的地址 其实就是这个地址 在你点新增的时候也会显示 在DNS解析的时候 选择cname解析 https://console.cloud.tencent.com/cns...选择新增 如果没有证书 就点击下面的点此前往 里面有免费的 然后 需要修改一个东西 网关映射 不然是无法成功的 进入网关控制台 编辑 改成这样 此时即可访问 其它问题 这是腾讯云...【本文正在参与“100%有奖|我的Serverless 实战”征稿活动】,活动地址:https://marketing.csdn.net/p/15940c87f66c68188cfe5228cf4a0c3f

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

    开启全面屏体验 | 手势导航 (一)

    全面屏幕体验 我使用 "边到边" (edge-to-edge) 一词来描述那种将内容铺满整个屏幕,以实现更沉浸视觉体验的应用。默认情况下,应用内容的绘制范围从顶部状态栏下方开始,延伸至底部导航栏上方。...具体来说,这意味着应用需要做两件事: 在导航栏后面绘制内容 想要支持手势导航,应用需要考虑的第一个因素是在导航栏后面绘制内容。...在搭载 Android 9 及以下的设备上运行时,导航栏后绘制内容是可选的,方便应用根据情况酌情选择。...使用 Android 10 以下设备的用户同样能获得更加沉浸的体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者的工作量和测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。...对此我们最想提醒您注意的是,仅当您的应用声明 targetSdkVersion 为 29 时,才会发生这种情况。

    2.5K30

    开启全面屏体验 | 手势导航 (一)

    全面屏幕体验 我使用 "边到边" (edge-to-edge) 一词来描述那种将内容铺满整个屏幕,以实现更沉浸视觉体验的应用。默认情况下,应用内容的绘制范围从顶部状态栏下方开始,延伸至底部导航栏上方。...具体来说,这意味着应用需要做两件事: 在导航栏后面绘制内容 想要支持手势导航,应用需要考虑的第一个因素是在导航栏后面绘制内容。...在搭载 Android 9 及以下的设备上运行时,导航栏后绘制内容是可选的,方便应用根据情况酌情选择。...使用 Android 10 以下设备的用户同样能获得更加沉浸的体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者的工作量和测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。...对此我们最想提醒您注意的是,仅当您的应用声明 targetSdkVersion 为 29 时,才会发生这种情况。

    23110

    我对Flutter的第一次失望

    一种控制文本布局方式的方法。 一种在路径上绘制文本的方法。 一种无需绘制整个段落即可测量和绘制短文本的方法。...一种从文本字符串获取换行位置的方法 与Android和iOS的比较 在Android中,尽管大多数人会使用TextView,但是您可以通过使用StaticLayout,Canvas和Paint类获得低级控件来执行上面列出的所有操作...)) 我在iOS上没有那么低级的文字绘制经验(因为我认为我只会学习在Flutter中做所有事情),但是Core Text具有丰富的工具集。...阅读此内容以更详细地描述需求。 Flutter仅支持支持从右到左和从左到右的布局。不支持(也不支持?)垂直布局。我不会对此表示怀疑。有很多工作。但是我希望他们会给我们更多工具来自己做。...不过,我对此并没有寄予太大希望,因为Flutter的主要开发人员之一对此表示: 如果您想要“真实的”垂直文本,并带有强调标记,ruby和内联水平的bidi文本以及所有内容,那么我能提供的最好的办法是,您可以尝试使用我们提供的较差的原语编写一个程序包来支持此操作

    2.6K30

    Carson带你学Android:源码解析自定义View Draw过程

    前言 自定义View是Android开发者必须了解的基础 网上有大量关于自定义View原理的文章,但存在一些问题:内容不全、思路不清晰、无源码分析、简单问题复杂化 等 今天,我将全面总结自定义View...原理中的Draw过程,我能保证这是市面上的最全面、最清晰、最易懂的 目录 1....储备知识 具体请看文章:Carson带你学Android:自定义View基础 3. draw过程详解 类似measure过程、layout过程,draw过程根据View的类型分为2种情况: 接下来,我将详细分析这...由于 View 的内容各不相同,所以该方法是一个空实现 * b. 在自定义绘制过程中,需由子类去实现复写该方法,从而绘制自身的内容 * c....总结 本文全面总结了自定义View的Draw过程,总结如下 View类型 绘制流程(Draw) 单一View 仅绘制视图View本身。

    37220

    我肝了3个月终于整理出了这份超全面的《Android面试题及解析》,面试不再怕的了!

    我本来就打算年后找工作,正好趁着这段时间,历时3个月,整理了这份可能是市面上最全面的安卓面试题解析大全!...从基础到架构进阶,包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中高级安卓技术点。 文章中所列主要为大纲部分,详细内容自行获取哈!...如果你熟练掌握本文中列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。 Android 基础 1.Activity 1、 什么是 Activity?...自定义控件:绘制圆环的实现过程(★★) 4. 自定义控件:摩天轮的实现过程(★★) 5. 自定义控件:可拖拽排序的 GridLayout 的实现过程(★★) 6....(部分面试题展示,完整题目及答案解析可在文末获取) 1. android 事件分发机制 2. android view 绘制机制和加载过程 3. android 四大组件的加载过程,请详细介绍下 4.

    1K30

    Carson带你学Android:自定义View Canvas类使用教程

    前言 自定义View是Android开发者必须了解的基础;而Canvas类的使用在自定义View绘制中发挥着非常重要的作用 网上有大量关于自定义View中Canvas类的文章,但存在一些问题:内容不全...简介 定义:画布,是一种绘制时的规则 是安卓平台2D图形绘制的基础 作用:规定绘制内容时的规则 & 内容 记住:绘制内容是根据画布的规定绘制在屏幕上的 理解为:画布只是绘制时的规则,但内容实际上是绘制在屏幕上的...,并适用于高质量的、刷新频率高的图形 而方法3刷新频率低于方法3,但系统花销小,节省资源 4.2 绘制方法使用 利用Canvas类可绘画出很多内容,如图形、文字、线条等等; 对应使用的方法如下: 仅列出常用方法...,更加详细的方法可参考官方文档 Canvas 下面我将逐个方法进行详细讲解 特别注意 Canvas具体使用时是在复写的onDraw()里: @Override protected void...(即要绘制图片的哪一部分) // Rect dst 或RectF dst:指定图片在屏幕上显示(绘制)的区域 // 下面我将用实例来说明 // 实例 // 指定图片绘制区域 // 仅绘制图片的二分之一

    2.4K10

    Android卡顿分析

    如果您已通过 USB 连接设备但系统未列出该设备,请确保您已启用 USB 调试。 点击 CPU 时间轴上的任意位置以打开 CPU 性能分析器。...Wait for GPU:此轨迹显示 GPU 拥有相应缓冲区的时长。该时长指的是,从相应缓冲区的内容被发送至 GPU,到 GPU 利用相应缓冲区的内容完成其工作,期间所经历的时间。...这并不表示 GPU 在此期间仅使用相应缓冲区的内容工作。如需详细了解给定时间内 GPU 执行的工作,您可能需要使用 Android GPU 检查器。...Composition:此轨迹显示,从 SurfaceFlinger 占有相应缓冲区并发送相应缓冲区的内容以进行合成,到相应缓冲区的内容被发送到显示屏,期间所经历的时间。...BufferQueue 可帮助您了解图像缓冲区在 Android 图形组件之间切换时的状态。例如,值 2 表示应用当前处于三重缓冲状态,这会导致额外的输入延迟。

    2.6K20

    软件测试的基本内容

    仅当确实可以以合理的速度打字时,才应使用笔记本电脑。 重复这些关键句子,并从需求方那里弄清楚它们。 绘制方框图,链接文本等,以使需求在以后的一段时间内更加清晰。...以下是一些实践,这些实践为测试人员提供了极大的缓解,并使测试更加轻松: 重新遍历需求点。将导入点标记为目标软件的环境。 明确要部署软件/应用程序的环境。 明确环境所包含的具体内容。...如果程序是基于Web的,请获取具有所讨论和记录的版本的所需浏览器。 列出所有第三方软件(如果需要/支持)。 测试计划 作为测试策略,测试计划也是至关重要的阶段。...设置C可能装有安装了apk文件的Android手机。 测试 最后,您的应用程序构建已经完成,您可以查找BUG了!现在是时候进行测试计划并找到尽可能多的BUG了。...记下步骤,以了解如何解决偏差,截屏,捕获错误日志/服务器日志以及任何其他可证明存在缺陷的相关信息。 即使在拥有需求文档之后,有时您仍会对软件/应用程序有疑问,不要犹豫,把疑问跑出来。

    50311

    Android性能优化:手把手带你全面了解绘制优化

    前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的绘制优化,希望你们会喜欢。 目录 1....影响的性能 绘制性能的好坏 主要影响 :Android应用中的页面显示速度 2. 如何影响性能 绘制影响Android性能的实质:页面的绘制时间 1个页面通过递归 完成测量 & 绘制过程 3....优化思路 主要优化方向是: 降低View.onDraw()的复杂度 避免过度绘制(Overdraw) 4. 具体优化方案 具体如下 下面,我将详细分析每种优化方案 4.1....如2个常见场景: 场景1:ListView 与 Item 列表页(ListView) 与 其内子控件(Item)的背景相同 = 白色,故可移除子控件(Item)布局中的背景 场景2:ViewPager...总结 本文主要讲解Android 性能优化中的 绘制优化

    75420

    《移动互联网技术》第六章 资源管理: 掌握定制控件样式、界面主题、可绘制资源程序的编写方法

    第六章 资源管理 本章小结: 1、本单元学习目的 通过了解应用程序常用的各种资源,掌握资源的访问方法,以及两种设置界面外观的方式:样式(Style)和主题(Theme);对于可绘制资源,重点掌握三种Drawable...2、本单元学习要求 (1) 掌握各种资源的基本访问用法; (2) 掌握定制控件样式、界面主题、可绘制资源程序的编写方法; (3) 掌握原生资源打包方法。...在配置文件AndroidManifest.xml中设置主题样式,下面列出了Android Studio默认设定的主题样式。...难点 (1) 可绘制资源 Drawable代表了一大类资源。比如:图形、位图图像就是可绘制的资源。...定制控件样式和界面主题的方法。 可绘制资源的使用。 使用assets打包资源的方式。 2、本单元课后习题 1、如何打开res/raw目录中的数据库文件?

    10310

    Flutter Notes|记录开发过程中常用命令

    而今 Flutter 重新开始,也要尝试掌握一波命令行的玩法,万一哪儿天可以向鸡老大秀一波呢~ 期待鸡老大对我 666~ 常用命令汇总 对于不熟悉,或者忘记了有哪儿些好用的命令,可以直接查询帮助手册:...Studio Tools 工具也为我们列出几个比较常用的命令: ?...outdated:分析并提示当前可升级的依赖包。 pub:将其余参数传递给Dart的 pub 工具。 publish:将当前包发布到 pub.dev。 run:运行包到可执行文件。...1.5 列出 Flutter 版本 flutter version 1.6 列出当前已连接的设备列表 flutter devices 1.7 运行软件到设备 flutter run 1.8 列出 Flutter...ios:构建 iOS 应用程序(仅适用于Mac OS X主机)。

    1.2K21

    Android 矢量图详解

    VectorDrawble 是在 xml 文件中定义的矢量图形。xml 文件中定义的矢量图形,它是一组带有颜色信息的点、线和曲线,使用矢量图主要的优点是图形可伸缩性。...而我们的 VectorDrawable 是编程中的,它仅支持 SVG 规范中有限的内容。Android Studio 支持将 SVG 文件转换成 VectorDrawable 。...则截取后的内容就是 原长度 - (原长度*0.3) android:trimPathEnd 从路径起始位置位置截取的内容,取值范围从 0 到 1,比如,取值是 0.3...取值大于等于 trimPathStart 的时候结果就是他们两者分别截取后内容的交集,如果 trimPathEnd 小于 trimPathStart 的时候,取值就是他们俩的合集(这是经过我无数的实验得出的规律...,利用这个可以绘制 vectordrawble。

    1.1K30

    我为什么要写《OpenCV Android 开发实战》这本书

    2015年我出版了个人第一本关于图像处理方面的书籍《Java图像处理-编程技巧与应用实践》,这本书主要是从理论与编码上面详细阐述了图像处理基础算法以及它们在编码实现上的技巧。...一转眼已经三年过去了,在这三年的时光里我无时无刻都在关注图像处理与计算机视觉技术发展与未来,同时渐渐萌发了再写一本图像处理相关技术书籍的念头,因为《Java图像处理-编程技巧与应用实践》一书主要不是针对工程应用场景...,列出了提纲,得到机械工业出版社 杨绣国编辑 肯定与大力支持,于是才有《OpenCV Android开发实战》一书的写作与出版。...未来随着5G手机的发布与普及,移动端必然是大量应用场景要借助于手机摄像头与实时视频内容分析与处理,OpenCV在这两个方面有得天独厚的技术优势,Android开发人员唯有不断学习,跟上时代步伐,方可获得职业生涯的进一步发展...中Bitmap对象 2.3 基础形状绘制与填充 2.2.1 基于Mat的绘制与填充 2.2.2 Bitmap上的绘制与填充 2.4

    1.7K30

    如何优化 Android 的布局性能?如何使用 ConstraintLayout 来减少嵌套层级?

    二、渲染性能优化避免过度绘制(Overdraw)检测工具:开发者选项 → "调试GPU过度绘制"(蓝色为正常,红色表示过度绘制严重)。优化方法:移除不必要的 background 设置。...二、使用 ConstraintLayout 来减少嵌套层级优化 Android 布局性能的关键在于减少视图层级和避免过度绘制,而 ConstraintLayout 是 Google 推荐的扁平化布局工具...,可显著减少嵌套层级。...性能瓶颈:嵌套的 ViewGroup(如 LinearLayout 嵌套)会增加 measure 和 layout 的计算复杂度。过度绘制:深层嵌套可能导致不必要的视图重叠,增加 GPU 负担。...>四、其他优化技巧避免过度约束:仅设置必要的约束,多余的约束会增加计算量。

    9200

    Android开发笔记(十三)视图绘制的几个方法

    三个可进行绘制的方法 在自定义视图中,有三个函数可以重写用于界面绘制,在视图创建过程中,三个函数的执行顺序依次是:onLayout、onDraw、dispatchDraw。...3、dispatchDraw(Canvas canvas) :  dispatchDraw与onDraw的区别在于:onDraw在绘制下级视图之前,而dispatchDraw在绘制下级视图之后,所以如果不想自己的绘图被下级视图覆盖的话...Canvas画布的使用 Canvas是Android提供的图形操作类,Canvas的使用不难,多练习几次就熟练了。...下面列出Canvas的常用方法: 划定可绘制的区域(裁剪区域) 虽然本视图内的所有区域都是可以绘制的,但是有时候我们还是只想在某个圆形区域或者矩形区域内部画画,那么在绘制之前就得指定允许绘制的区域大小...这样在save-restore代码之间绘制的任何图形,都不会收到save-restore代码以外其他图形操作的影响。

    1.2K30

    Android关于Canvas你所知道的和不知道的一切

    在一年的Android自学中,Canvas一直是我能避且避的类,甚至不惜封装自己的绘图库来替代它。 如今回首,虐我千万次的Canvas也不过如此,静下心看看,其实也没有想象中的那么糟糕。...就像曾经等级30的我去打点等级40的副本(Canvas)非常吃力,现在等级50的我回来吊打它一样。...(如果觉得简单可跳过) 以前看到一个类有很多方法都有些不耐烦,这么多,怎么记得住。...重要的话说三遍:当需要的时候在贴在当前的canvas上,picture绘制的优势就是节能减排 当有大量复杂内容需要复用,Picture这个的canvas元件是不二的选择: ---- 8.绘制文字(文字的效果有...--无 2018-11-5 Android关于Canvas你所知道的和不知道的一切 V0.2--无 2018-11-6 增加绘制Picture的内容 2.更多关于我 笔名 QQ 微信 爱好 张风捷特烈

    3.3K52
    领券