IT博客汇
首页
精华
技术
设计
资讯
扯淡
权利声明
登录
注册
相关标签
作者:
http://blog.csdn.net/x359981514
469
source
关注
TA的标签:
网站
可以
studio
design
support
http
自定义
blog
地址
csdn
机制
开发
使用
android
com
love
0
x359981514
发表于
2023-03-28 08:30:46
从源码看Flutter BuildContext的秘密
点击上方蓝字关注我,知识会给你力量我们每次在写Flutter代码的时候,都会看到这个参数——BuildContext,在Android开发中,也经常看见一个类似的东西——Context,它们是不是一样的呢?其实说一样也对,它们都是上下文的关键承载者,但是却也不一样,因为它们本质上是两个不同的概念。在Flutter中,BuildContext的源码如下。从注释中我们就可以看出,[BuildConte... ...
继续阅读 (58)
love
0
x359981514
发表于
2023-03-21 08:44:21
FlutterComponent最佳实践之Widget尺寸
点击上方蓝字关注我,知识会给你力量在Flutter和在Native中,对一个Widget的尺寸测量,一直都是一个非常麻烦的事情,大部分时间,我们都是按照约束和具体的尺寸来进行布局,但有些时候,我们不得不拿到动态的Widget尺寸来实现自己的一些布局策略。通常来说,我们会有三方面的需求。测量自己的尺寸测量Parent的尺寸测量Child的尺寸测量自己的尺寸要获取你自身的Widget尺寸,其实只需要通... ...
继续阅读 (89)
love
0
x359981514
发表于
2023-03-14 08:30:47
FlutterComponent最佳实践之Timer的妙用
点击上方蓝字关注我,知识会给你力量Timer在Flutter中,通常是用来构建延时的异步任务的,在讲解它的妙之前,我们先来看看Timer的基操。Timer基操Timer广义上可以理解为一个倒计时器,它从创建到结束会经历下面三个过程:Creates a timerExecutes a callbackThe timer finishes创建一个Timer非常简单。finaltimer=Time... ...
继续阅读 (67)
love
0
x359981514
发表于
2023-03-09 08:30:26
Flutter中的异步执行策略
点击上方蓝字关注我,知识会给你力量在Flutter中,如何执行一段延迟执行的异步代码?我们可以找到下面这些方法。scheduleMicrotaskFuture.microtaskFutureFuture.delayedTimer.runWidgetsBinding.addPostFrameCallbackSchedulerBinding.addPostFrameCallback你可能会说,这是相当... ...
继续阅读 (70)
love
0
x359981514
发表于
2023-03-06 08:30:50
Flutter布局指南之约束和尺寸
点击上方蓝字关注我,知识会给你力量Flutter布局总纲——向下传递约束,向上传递尺寸。Box约束约束是Flutter布局的核心,在Flutter中,约束的表现形式是通过Constraints类来实现的,所有的非滚动布局模型,都通过BoxConstraints来进行约束,它的代码如下。从上面的代码可以看出,约束本质上就是「宽」「高」上的「最大」「最小」范围。BoxConstraints具有传递性,... ...
继续阅读 (64)
love
0
x359981514
发表于
2023-02-28 08:30:57
FlutterComponent最佳实践之动画的显和隐
点击上方蓝字关注我,知识会给你力量Flutter中包含大量的动画组件和自定义动画方式,所以,在合适的场景下选择合适的动画实现方式就成了决定代码质量好坏的一个重要因素。动画选择决策树Flutter中的动画从广义上来讲可以分为两类,一类是基于绘制的动画(Drawing-based animations),另一类是基于代码的动画(Code-based animations)。下面这个决策树,是Flutt... ...
继续阅读 (70)
love
0
x359981514
发表于
2023-02-06 08:30:45
Flutter混编工程之异常处理
点击上方蓝字关注我,知识会给你力量Flutter App层和Framework层的异常,通常是不会引起Crash的,但是Engine层的异常会造成Crash。而Flutter Engine部分的异常,主要是libfutter.so发生的异常,这部分的异常,在Dart层无法捕获,一般会交给类似Bugly这样的平台来收集。我们能主动监控的,主要是Dart层的异常,这些异常虽然不会让App crash,... ...
继续阅读 (65)
love
0
x359981514
发表于
2023-02-06 08:30:45
闲言碎语-第八期
点击上方蓝字关注我,知识会给你力量时间一晃就过去了,22年的总结还没来得及写,转眼已经2023年了。22年对于很多人来说,应该都是比较魔幻的一年,特别是在上海的朋友,一小半的时间都在居家办公,疫情不仅影响了工作,更影响了经济,很多人收入降级、失业,或是离开上海,完全放开后,大部分人都经历了一次痛苦的感染过程,一时间朋友圈全是新冠诊断现场直播,好在经历过这一次感染后,大部分人都回归了正常的生活轨道,... ...
继续阅读 (58)
love
0
x359981514
发表于
2022-12-25 15:26:36
后新冠时代
自从国家卫健委宣布防控放开之后,所有人都为之一震,原来的【躺平党】慌了,就这么分开了,都不缓一缓吗?原来的【封控党】也慌了,就这么分开了,我们的脸往哪放啊?也许刚放开的时候,大家都还没意识到会出现现在这幅境况,躺平党认为这就是普通感冒,大家都得一次就好了,封控党认为国家抛弃我们了。但实际上,不管是哪种观点,后面的路,都需要我们自己走了。这种猝不及防让所有人都很疑惑,前几天还没有48h核酸不能进饭店... ...
继续阅读 (57)
love
0
x359981514
发表于
2022-12-19 08:30:16
Kotlin泛型的型变之路
点击上方蓝字关注我,知识会给你力量之前就写过一篇泛型的文章,但是总觉得写得不够系统,所以最近对泛型又作了些研究,算是对这篇文章的补充了。kotlin修炼指南7之泛型泛型,是为了让「类」、「接口」、「方法」具有更加通用的使用范围而诞生的,举个例子,假如我们不使用泛型,那么一个List中可以装得下任何对象,这么做的问题就在于,在使用时,需要对类型进行检查,不然就会转换异常。所以,我们需要将这种检查前置... ...
继续阅读 (59)
love
0
x359981514
发表于
2022-11-25 08:30:22
APP动态路由的设计与实践
点击上方蓝字关注我,知识会给你力量本文作者——张涛「货拉拉」这篇文章是我在 2022【GIAC 全球互联网架构大会】分享时所讲内容的文字版本,修改删减了演讲时的冗余言语,现开放给大家阅读,希望能给买不到票参加分享的 开源实验室 读者带来帮助。大家好,今天跟大家分享的是一个开源路由TheRouter的设计。代码地址:https://github.com/HuolalaTech/hll-wp-ther... ...
继续阅读 (57)
love
0
x359981514
发表于
2022-11-14 08:30:29
kotlin修炼指南9-Sequence的秘密
点击上方蓝字关注我,知识会给你力量人们经常忽略Iterable和Sequence之间的区别。这是可以理解的,因为即使它们的定义也几乎是相同的。interfaceIterable{ operatorfuniterator():Iterator} interfaceSequence{ operato... ...
继续阅读 (55)
love
0
x359981514
发表于
2022-11-07 08:30:26
kotlin修炼指南8—集合中的高阶函数
点击上方蓝字关注我,知识会给你力量Kotlin对集合操作类新增了很多快捷的高阶函数操作,各种操作符让很多开发者傻傻分不清,特别是看一些Kotlin的源码或者是协程的源码,各种眼花缭乱的操作符,让代码完全读不下去,所以,本文将对Kotlin中的集合高阶函数,进行下讲解,降低大家阅读源码的难度,下面看几个用的比较多的高阶函数使用。首先是sumOf,作为一个很方便的求和函数,它可以快速对集合内的某些参数... ...
继续阅读 (64)
love
0
x359981514
发表于
2022-10-31 08:30:01
忙里偷闲IdleHandler
点击上方蓝字关注我,知识会给你力量在Android中,Handler是一个使用的非常频繁的东西,输入事件机制和系统状态,都通过Handler来进行流转,而在Handler中,有一个很少被人提起但是却很有用的东西,那就是IdleHandler,它的源码如下。/** *Callbackinterfacefordiscoveringwhenathreadisgoingtobloc... ...
继续阅读 (56)
love
0
x359981514
发表于
2022-10-26 08:35:31
TheRouter 的跨模块依赖注入实现原理
点击上方蓝字关注我,知识会给你力量本文作者——张涛(货拉拉)TheRouter用于跨模块通信设计的ServiceProvider,核心设计思想是参考了SOA(面向服务架构)的设计方式。具体到 Android 侧就是 AIDL 类似的实现。模块化能力支持项:支持跨模块依赖注入支持自定义注入项的创建规则,依赖注入可自定义参数支持自定义服务拦截,单模块mock调试支持注入对象缓存,多次注入 只会new一... ...
继续阅读 (59)
love
0
x359981514
发表于
2022-10-17 08:30:33
说回 TheRouter
点击上方蓝字关注我,知识会给你力量❝补充:开源仓库地址:https://github.com/HuolalaTech/hll-wp-therouter-android❞没错,货拉拉开源的路由库 —— TheRouter 是我写的大约在17年底到18年初的时候,我经常会讲一些当时做模块化开发的心得和踩坑历程。比如这几篇都是那时候写的:《Android 模块化平台设计》、《优雅移除模块间耦合》、《企业... ...
继续阅读 (50)
love
0
x359981514
发表于
2022-09-05 08:30:12
Android-Widget重装上阵
点击上方蓝字关注我,知识会给你力量如果要在Android系统中找一个一直存在,但一直被人忽略,而且有十分好用的功能,那么Widget,一定算一个。这个从Android 1.x就已经存在的功能,经历了近10年的迭代,在遭到无数无视和白眼之后,又重新回到了大家的视线之内,当然,也有可能是App内部已经没东西好卷了,所以大家又把目光放到了App之外,但不管怎样,Widget在Android 12之后,都... ...
继续阅读 (52)
love
0
x359981514
发表于
2022-07-25 09:30:18
货拉拉 Android H5离线包原理与实践
点击上方蓝字关注我,知识会给你力量背景在实际业务中,app中的H5页面使用的场景越来越多,在货拉拉app中也存在大量的H5页面,比如金秋拉货节、余额、车型介绍页等,加载速度成为了困扰用户的一个痛点。为此我们决定引入离线包方案,另外还需要解决传统离线包方案不灵活,体积大,不易管理,不易降级等问题,我们设计和开发一套H5离线包系统,经过几个sdk版本的迭代,目前货拉拉H5离线... ...
继续阅读 (55)
love
0
x359981514
发表于
2022-07-18 08:25:28
货拉拉 Android 动态资源管理系统原理与实践(下)
点击上方蓝字关注我,知识会给你力量so资源动态化方案so资源打包问题在打包so资源的过程中,我们遇到了如下问题。如何移除apk中的so文件,并将他们收集起来?如何将多个so文件压缩打包,并生成对应的信息?如何保证第三方sdk缺少so文件时,不崩溃?so资源打包解决方案移除并收集apk中的so文件看到移除 so文件可能有些同学会问,这不是只要在as中删除libs目录就搞定了... ...
继续阅读 (51)
love
0
x359981514
发表于
2022-07-12 08:30:04
货拉拉 Android 动态资源管理系统原理与实践(上)
点击上方蓝字关注我,知识会给你力量❝jary,货拉拉高级客户端工程师,目前负责货拉拉App Android端稳定性提升,包体积优化相关工作。❞前言随着公司业务的扩展,货拉拉用户端apk包的体积也不断变大,过去一年,用户端android组进行了大量的瘦身工作,取得了较为显著的成果。再使用常规方法,已经很难优化包体积了。我们可以把一些使用频率相对较低的资源不打包进apk,并在... ...
继续阅读 (52)
love
0
x359981514
发表于
2022-06-06 08:30:02
重走Flutter状态管理之路—Riverpod最终篇
点击上方蓝字关注我,知识会给你力量最后一篇文章,我们在掌握了如何读取状态值,并知道如何根据不同场景选择不同类型的Provider,以及如何对Provider进行搭配使用之后,再来了解一下它的一些其它特性,看看它们是如何帮助我们更好的进行状态管理的。Provider Modifiers所有的Provider都有一个内置的方法来为你的不同Provider添加额外的功能。它们可... ...
继续阅读 (50)
love
0
x359981514
发表于
2022-05-30 08:30:21
我悟出了公众号取名的套路
点击上方蓝字关注我,知识会给你力量疫情到现在,已经两个多月了,每天看着新闻的报道,看着各大厂的公众号,每天都很充实,好像看了很多东西,但又好像什么也没看,眼瞅着人家的公众号阅读量蹭蹭蹭的上涨,1w+、10w+,再看看自己的公众号零零碎碎的阅读量,我不禁陷入了沉思——为什么我的公众号没人看!我觉得是时候来分析一下了,让我们来看看,如何打造一篇阅读量高的公众号文章标题。作为一... ...
继续阅读 (50)
love
0
x359981514
发表于
2022-05-23 08:30:51
重走Flutter状态管理之路—Riverpod进阶篇
点击上方蓝字关注我,知识会给你力量前面一篇文章,我们了解了如何正确的去读取状态值,这一篇,我们来了解下不同的Provider都有哪些使用场景。这篇文章,我们将真正的深入了解,如何在不同的场景下,选择合适的种类的Provider,以及这些不同类型的Provider,都有哪些作用。不同类型的ProviderProvider有多种类型的变种,可以用于多种不同的使用场景。在所有这... ...
继续阅读 (50)
love
0
x359981514
发表于
2022-05-16 08:30:00
重走Flutter状态管理之路—Riverpod入门篇
点击上方蓝字关注我,知识会给你力量熟悉我的朋友应该都知道,我好几年前写过一个「Flutter状态管理之路」系列,那个时候介绍的是Provider,这也是官方推荐的状态管理工具,但当时没有写完,因为写着写着,觉得有很多地方不尽人意,用着很别扭,所以在写了7篇文章之后,就暂时搁置了。一晃时间过了这么久,Flutter内部依然没有一个能够碾压一切的状态管理框架,GetX可能是,... ...
继续阅读 (52)
love
0
x359981514
发表于
2022-05-13 08:30:00
它来了!Flutter3.0新特性全接触
点击上方蓝字关注我,知识会给你力量又到了Flutter稳定版发布的时候了--我们非常自豪地宣布Flutter 3! 仅仅三个月前,我们宣布Flutter支持Windows。今天,我们很高兴地宣布,除了Windows之外,Flutter现在在macOS和Linux上也是稳定的!img感谢我们的Flutter贡献者的辛勤工作,我们已经合并了5248个pull requests... ...
继续阅读 (50)
love
0
x359981514
发表于
2022-05-12 07:15:06
它来了!Flutter3.0发布全解析
点击上方蓝字关注我,知识会给你力量我们在手机、桌面和网络上进行多平台UI开发的历程达到了顶峰。我们很高兴地宣布,作为谷歌I/O主题演讲的一部分,我们今天推出了Flutter 3。Flutter 3完成了我们从以移动为中心到多平台框架的路线图,提供了对macOS和Linux桌面应用的支持,以及对Firebase集成的改进,新的生产力和性能特性,并支持Apple Silico... ...
继续阅读 (50)
love
0
x359981514
发表于
2022-05-05 08:30:00
kotlin修炼指南7之泛型
点击上方蓝字关注我,知识会给你力量Kotlin在Java的基础上,同样对泛型语法进行了拓展,所以很多Kotlin开发者,看着源码中的一堆in、out和*,感觉非常不知所措。其实,只要了解了Java泛型,那么Kotlin泛型就迎刃而解了。首先,我们来想想,我们为什么需要泛型。泛型是面向对象编程的一个非常重要的方面,它的出现,是多态的核心实现,简单的说,就是可以在不同的对象类... ...
继续阅读 (47)
love
0
x359981514
发表于
2022-04-19 08:30:00
为了看Flutter到底有没有人用我竟然
点击上方蓝字关注我,知识会给你力量Flutter这个东西出来这么久了,到底市场占有率怎么样呢?为了让大家了解这一真实数据,也为了让大家了解当前Flutter在各大App中的使用情况,我今天下载了几百个App,占了手机将近80G空间,就为了得出一个结论——Flutter,到底有没有人用。首先,我在vivo应用市场中,下载了4月11日软件排行榜中的所有App,总计230个,再... ...
继续阅读 (56)
love
0
x359981514
发表于
2022-04-11 08:30:00
FlutterComponent最佳实践之动画那些词儿
点击上方蓝字关注我,知识会给你力量什么是动画,从数学上来说,动画指的是一个属性的变换过程,实际上,就是一个函数,将一个属性值变成另一个属性值的过程。从现实上来说,动画实际上就是将一系列静态的图片,在一定时间内快速切换,从而利用人眼的视觉暂留效应形成动态的画面。对于现代移动设备来说,保持流畅体验的标准是60帧每秒,即每秒要切换60张静态图,这每一帧,在Flutter中被称之... ...
继续阅读 (47)
love
0
x359981514
发表于
2022-04-06 08:30:00
FlutterComponent最佳实践之角对齐
点击上方蓝字关注我,知识会给你力量Flutter布局千千万,虽然Box模型相比于原生布局来说,在大部分场景下都是更加方便了,但是有些场景,确实还是ConstraintLayout来的更方便一点,例如下面这个场景:「将不定长度的角标,放置于容器右上角,同时角标中心和容器角顶点对齐」,这其实是一个常见的需求,几乎在UI中的角标场景下都会用到,只不过大部分时候,直接写死一个差不... ...
继续阅读 (48)
上一页
2/5
下一页