Desire


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

当Android遇见Flutter

置顶 | 发表于 2018-05-20 | 分类于 Android遇见Flutter
字数统计: 463字 | 阅读时长 ≈ 2分钟
Android遇见Flutter-开篇[TOC] 自序​ 刚毕业那会儿,在一家国企实习,正值Windows Mobile和Android交替时期,就这样在机缘巧合下实习期“转行”成了一名Android程序员。期间又经厉阿里等多家大厂的”洗礼”,见证了Android系统从1.6到9.0的”欣欣向荣”。 ​ 在Google IO 2018上第一次听说了Google的”二胎”Flutter,激起了我的好奇心。首先,作为一名Google系的程序员,必须follow Google的新技术,这就像GWY对待我DANG一样的虔诚。其次,在混合开发流行的当下,RN和Weex可以说是搞得“风生水起”,Google没有必要在这里重复造轮子了,所以它必然有创新之处。然后,过往的几年一直从事Android的开发,想做一些总结和反思,但又不知从何下笔。不如试试“对着flutter 照镜子”,以一种“举一反三”,“触类旁通”的态度,总结过去展望未来。 所以接下来的文章,我希望可以带给你至少是了解到Fl ...
阅读全文 »

在10种场景,面对10种情绪,也难逃10种定理

置顶 | 发表于 2018-05-19 | 分类于 解忧杂货铺
字数统计: 218字 | 阅读时长 ≈ 1分钟
在xx种场景,面对xx种情绪,也难逃xx种定理[TOC] 大纲 这篇文章的标题写的很随性,其实是想讲述当你面对xx种情绪时候的态度,当你遇到xx种场景时候的“旁观者清”以及这个运用这些处理方式后归纳出来的xx种定理。这里之所以用xx,因为这是平时生活的经验积累,指不定哪天又遇到了什么怪事儿,需要掰开揉碎了来分析,所以数量难以确定,需要一直连载。 update 2018-11-25 正文场景陌生人的饭局假设性提问借钱情绪鼓励 说服 抱怨13|188|206 批评214|122|145 拒绝166|235|237|45|69|109 道歉249|5|10|103|108| 敷衍回击240|121|155 #### 定理心理惯性96 态度免疫167
阅读全文 »

三种架构在Flutter中的尝试

发表于 2019-06-15 | 分类于 Android遇见Flutter
字数统计: 1,136字 | 阅读时长 ≈ 4分钟
三种架构在Flutter中的尝试[TOC] 场景说明动图展示 功能简介​ 一个常见的”评价列表页”,点击”评价列表页”中的任意一项跳转进入”评价详情页”。在”评价详情页”我们可以看到该评论完整的评价内容和评价大图,同时”评价列表页”和”评价详情页”都带有分享和点赞的功能。 MVC架构架构视图 工程结构 外层 main.dart入口函数调起CommentApp.dart这个App的工程入口 widgets comment_list_item.dart和comment_widget_pub.dart是封装的两个视图组件,一个是列表的每一个item的样式,另一个是”评价详情页”和”评价列表页”的底部操作栏(点赞,分享)样式封装 screens comment_detail.dart和comment_list.dart对应我们的两个页面”评价详情页”和”评价列表页” mvc MVC模式中的Control类和Model类 model comment_item_model.d ...
阅读全文 »

Flutter Live 2018之神器初体验(番外篇)

发表于 2018-12-17 | 分类于 Android遇见Flutter
字数统计: 1,200字 | 阅读时长 ≈ 5分钟
Flutter Live 2018之神器初体验(番外篇)[TOC] 前言正如官方总结的Flutter的四大特点 Material Design 与 Cupertino 的精美界面 媲美原生的加载速度 HotReload让开发无比高效 Plugin的开放与共享 四大神器“纸上得来终觉浅,绝知此事要躬行”,接下来将小编将尝试体验一下Flutter Live 2018中出现的神器们,他们中的每一个都有“让人惊掉下巴”的能力,不由让我想起了小时候看《新白娘子传奇》时,小青偷盗梁王府的”四件宝贝”。 神钧天奏乐图-Flare前者打开后就听到的优美的乐曲,后者可以写出“酷炫狂拽吊炸天”的动画 如何编曲 打开www.2dimensions.com 任意fork一幅作品(本文以https://www.2dimensions.com/a/JuanCarlos/files/flare/new-file-8 为例) 界面功能说明 STEUP && ANIMATE (1) 其中STE ...
阅读全文 »

Flutter 视图绘制(2)

发表于 2018-11-19 | 分类于 Android遇见Flutter
字数统计: 1,559字 | 阅读时长 ≈ 6分钟
Flutter视图绘制(2)[TOC] 前言​ Flutter视图绘制(1)写的是自带Skia的flutter如何“安排”绘制的步骤,接下来的(2),(3),(4),(5),我想首先通过回顾和总结Android的视图绘制,再来反观flutter的实现,最后对比他们的异同。所以虽然这篇文章的题目是“Flutter视图绘制(2)”但是是”挂羊头卖狗肉”的,本文讲的是Android。 五个问题谁来发令? Android的手机屏幕有一个固定的刷新频率用于显示最新的画面,如60hz。而GPU生成一帧的图像也会有它自己的速率,那么如何做到它们的步调统一,不出乱子呢? 这是最终的解决方案。假如Display里的A,B,C是一个连续的动画,那么它将十分流畅的呈现出来。背后的设计就是”双缓存”+“VSYNC”。 双缓存:用于Display和用于Produce 各有一个Frame Buffer,各自工作,互不干扰。 VSYNC:Display和Produce都受VSYNC信号控制。当发出信号后 ...
阅读全文 »

Flutter 视图绘制

发表于 2018-11-04 | 分类于 Android遇见Flutter
字数统计: 1,671字 | 阅读时长 ≈ 7分钟
Flutter 视图绘制[TOC] 前言​Flutter有别于其他跨平台开发的一大特点是它自带UI组件和渲染器,而不是通过一些Bridge去做平台适配。其中自带UI组件在Flutter的Framework层而渲染器在Engine层,那么Google工程师面临的问题是如何尽可能快的(在VSync信号间隔内)完成这次传递? 概览 从UI绘制的整体流程来看,从用户的输入①到界面上动画的进度更新②,然后开始视图数据的build③,通过Layout④来确定视图的Position和Size,接下来是视图数据的Paint⑤和Composite⑥,最后是将合成后的视图数据进行”光栅化”处理使它真正的变成一个个像素填充的数据并提交给GPU。 主要流程本文主要讲的是build、layout、paint三个阶段。 Build 三棵树 Widget Tree,Element Tree 以及 RenderObject Tree 。根据它们的功能我将它翻译成模型树,状态树和渲染树,也正是通过这三棵树维护起了整个应用 ...
阅读全文 »

聊聊Flutter Platform SDK

发表于 2018-10-20 | 分类于 Android遇见Flutter
字数统计: 1,703字 | 阅读时长 ≈ 7分钟
聊聊Flutter Platform SDK[TOC] 前言​ 从Flutter的架构图中可以看出,Flutter Platform SDK处于整个Flutter框架的上层,连接了Java与Dart代码。那么作为“最上层”的它,到底扮演了哪些角色,以及是如何扮演好这些角色的呢?Google工程师用一个封装好的flutter.jar包”show me the answer”。 Platform SDK 的角色扮演​ 通过对Platform SDK(以下简称 Platform)源码的阅读,可以大致将它分成三个角色:Creator(创建者),Transmitter(传递者),Registrant(注册人)。 Creator创建者 FlutterMain时序图 FlutterMain担任着flutter的初始化工作,在被Application的onCreate调起后 initConfig 必须的配置文件名称和路径 通过命令行 flutter build aot生成的文件 | 名称 ...
阅读全文 »

我的《心智防身术》

发表于 2018-10-01 | 分类于 解忧杂货铺
字数统计: 980字 | 阅读时长 ≈ 3分钟
我的《心智防身术》连载……. Time 2018-10-01 诉诸完美的陷阱 滑坡陷阱 二分法(心灵鸡汤)陷阱 诉诸完美的陷阱 名词解释 如果一件事不能做到最好,那还不如不做。 现状 当有一件事情,目的很正当,手段也不坏,人们不好直接说反对。只好假装成你的队友,强调你的目的我支持,可手段不完美,有点治标不治本。不如我们先缓缓,回去先研究研究,等找到更完美方案再说。 案例 美国想减少吸烟的人数,所以有人提议要求香烟上印一些很恶心的吸烟者的肺的图片。原因是他们调查后发现很多吸烟的人会喜欢耍帅,而印上图片后,吸烟的行为就就变得不帅了。但是这显然动了某些人的“蛋糕”。所以反对者提出:”关于吸烟的危害,在烟壳上印图片太儿戏了,这样他们就不会吸烟了吗?反烟靠的是教育而不是烟盒上印恶心图片,这种‘头痛医头,脚痛医脚的毛病’,完全不能从根本上一举解决烟害问题。” 破局 伏尔泰说过”完美往往是优秀的敌人”。难道没有治本的治标就完全没有用了吗? 滑坡陷阱 名 ...
阅读全文 »

HorizontalListView源码解读

发表于 2018-08-25 | 分类于 读别人的源码,涨自己的智慧
字数统计: 1,262字 | 阅读时长 ≈ 7分钟
HorizontalListView源码解读[TOC] 前言​ 随着RecycleView进入人们的视野,其强大的功能让人们逐渐忘记了曾经的王者”AdapterView”,但这绝不影响它对我们的吸引力,要知道当年流行的Gallery,Spinner,ListView,GridView等等都是它的孩子。 ​ 那么,假如今天我们要在它的孩子中增加一个横向滚动控件,我们应该怎么实现呢?HorizontalListView给出了我们想要的答案。 把ListView横过来需要什么类辅助 Scroller 一个平滑滚动的辅助工具,可以随时获取当前横向滚动距离,这里使用为了跟踪fling事件。 调用关系 onLayout -> computerScrollOffset //获得新的滚动位置x,y。 onFling -> fling //根据手势和速度,计算滚动距离。 GestureListener 一个用来跟踪触摸,点击,长按事件的监听器。 [onDown,onFl ...
阅读全文 »

如何进行Flutter混合开发

发表于 2018-07-29 | 分类于 Android遇见Flutter
字数统计: 1,002字 | 阅读时长 ≈ 4分钟
如何进行Flutter混合开发[TOC] Why Flutter ? Flutter框架与应用框架与Source Code整体框架 Source Code 所以从上面的分析可以看出,为了实现Flutter的平台无差异性,Google主要在 PlatForm Integration和Dart:UI部分做了适配工作。 APK(Android应用)结构我们通过解压一个release的混合开发APK包,来探索一下加入了Flutter之后的包到底发生了哪些变化以及这些变化对应的作用是什么。 从上图的标记中可以清楚的看出变化点 变化1 未在图中标出,但是我相信大部分的开发者应该可以猜的到,就是在dex中打入了 PlatForm Integration的代码(FutterActivity,FlutterApplication,FlutterView etc.) 变化2 assets下面的4个文件,内容均为arm指令 isolate_snapshot_data/isolate_snapshot_ ...
阅读全文 »
12…4
Jinjian

Jinjian

Practice Makes Perfect

31 日志
7 分类
7 标签
RSS
GitHub E-Mail StackOverflow
© 2019 Jinjian
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4