zm.blog

select * from learn


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

Flutter混合开发组件化架构

发表于 2022-01-24 | 分类于 Android , Flutter | | 阅读次数:
  • 背景
  • Flutter的四种工程类型
  • Flutter工程Pub依赖管理
  • FlutterModule集成到Native
  • Flutter与Native通信
  • Flutter组件化工程
  • 后序

一、背景

Flutter 在目前跨平台方案中有更好的平台一致性以及更优的体验。但对于本身已有成熟的业务代码的项目来说,更多的是采用混合栈的方式,在不变更原有 App 业务的基础上,将 Flutter 能力扩展为子模块进行接入和开发。这样并不影响原有的业务和原生能力,又可以结合业务需求进行技术选择。

二、Flutter 的四种工程类型

2.1. Flutter Application

标准的Flutter App工程,包含标准的Dart层与Native平台层

2.2. Flutter Module

Flutter组件工程,仅包含Dart层实现,Native平台层子工程为通过Flutter自动生成的隐藏工程

2.3. Flutter Plugin

Flutter平台插件工程,包含Dart层与Native平台层的实现

2.4. Flutter Package

Flutter纯Dart插件工程,仅包含Dart层的实现,往往定义一些公共Widget

阅读全文 »

【新技术】又双叒叕来了系列三

发表于 2022-01-12 | 分类于 新技术 | | 阅读次数:

1. 在 Android 模拟器上运行 ARM 应用

这算是一个非常好的消息了,之前在实际应用开发中,因为模拟器缺少对 arm 的支持,基本上都使用真机进行开发与调试。
随着 Android 11预览版的发布
Android 11 系统映像能够在不影响整个系统的前提下,直接将 ARM 指令转换成 x86 指令。开发者无需搭建高负载的 ARM 环境即可执行 ARM 二进制文件并进行测试。

详情:
在 Android 模拟器上运行 ARM 应用

2. 大厂对外文章分享

携程技术
携程Android 10适配踩坑指南
新版本适配一直是 Android 开发者的痛楚之一,但是这件事如果长期不升就会越来越困难。加上现在应用市场比较强势,所以保持一个较高的版本的适配是有必要的。
携程旅行分享了他们从API 26 到 29 的适配经验,大家可以参考一波。
全网最详!暗黑模式在 Trip.com App 的实践

暗黑模式也最近的一个非常热门的话题,甚至微信支持暗黑模式都成为热点了。如果你对这方面感兴趣,或者刚好有暗黑实践的需求,那么可以看这一篇由携程 UED 团队+研发团队撰写的文章。
我个人其实一直没有体验过暗黑模式,毕竟没适配的 app 太多了,所以我不认为把手机切换为暗黑模式有很好的的体验…

Google 开发者
在 Android 开发中使用协程 | 背景介绍
可以看一下官方的文章了解下协程的一些背景知识,用来解决什么问题,如何解决,以及性能相关的一些知识。

字节跳动技术团队
抖音包大小优化-资源优化
可以看下抖音团队为了减少 apk 的体积,针对资源这一方面做了哪些极致的事情。
另外 apk 体积优化也可以看下 jsonchao 的文章:
吹爆系列:深入探索Android包体积优化

百度 APP 技术
Gradle 与 Android 构建入门
写了一篇 Gradle 构建入门的文章,其实很多同学都非常害怕 Gradle,这篇文章会给大家解释为什么需要 Gradle,以及 Gradle 相关的一些基础知识,帮你更好的了解相关知识,比较轻松,可以一看。

西瓜技术团队
AwCookieManager.nativeGetCookie crash 排查
分享了西瓜的一个CookieManager.getCookie(String url) 过程中的 native crash,分析过程较为复杂,不过给出了解决方案,解决方案涉及到 hook,西瓜用了自研的方案,开源的 lancet 应该也能做到,这篇文章也会提到 lancet。

阅读全文 »

【新技术】又双叒叕来了系列二

发表于 2022-01-11 | 分类于 新技术 | | 阅读次数:

1. Android 开发者峰会一些资源

大家可以在 B 站看到所有的内容:

https://space.bilibili.com/64169458/channel/detail?cid=91608

有个值得关注的是,官方回复了一些 Android 开发的问题:
一些新技术都有涉及,比如 ViewPager2 正式发布,关于 Camerax,Camera2,Camera1 之间如何选择,以及Kotlin,Jetpack Compose 相关问题。

阅读全文 »

【新技术】又双叒叕来了系列一

发表于 2022-01-10 | 分类于 新技术 | | 阅读次数:

一些中文独立博客分享

目前随着移动端的兴起,早期的很多中文 PC 博客已经很少有人去阅读了,也很难被大家所发现。

因为我之前关注一个小伙的创业实验,比较好奇他最终会不会成功,也好奇他的灵感,他的下一个产品是一个中文博客相关的 RSS 产品。

所以他收集了一波中文博客列表,推荐给大家:

https://github.com/timqian/chinese-independent-blogs

大概有 300 多位中文博客列表,偶尔读一些这上面的文章,应该还是能激发不少灵感的。

其实如果这些独立博客数量够多,可以聚合起来,做一个阅读 app,支持订阅也是不错的。

阅读全文 »

《老大不小》观后感

发表于 2022-01-01 | 分类于 随笔记 | | 阅读次数:

电影里对自己感触最深的一句话是爸爸在病床上对他大儿子雷子说的:‘’我走了,我对小硕一百个放心,他有个沟沟坎坎的,还有你这个哥,可是,大磊子,我走了你还有谁啊?‘’

阅读全文 »

十个思维方式如何改变我的人生

发表于 2021-12-22 | 分类于 随笔记 | | 阅读次数:

1、你不需要是个天才,才有资格分享知识——《Show Your Work》
2、除了目标,还要关注实现目标的体系,享受提升自我的过程
3、1%定律:每天提升1%——《Atomic Habits》
4、多样化收入来源
5、你觉得很普通的事情,在别人看来可能会很了不起——《Anything You Want》
6、每日重点:梳理待办事项的优先级——《Make Time》
7、勇敢去做:不一定要遵循既定规则去过人生——《Do What You Can’t》
8、家庭、个人、工作的平衡——《平衡的智慧》
9、找个人谈谈心——《你当像鸟飞往你的山》、《也许你该找人聊聊》
10、成功的公式——Y2b:Ali Abdaal

阅读全文 »

Flutter 2.8 发布 | 性能及工具链优化、Firebase 功能、WebView 3.0

发表于 2021-12-13 | 分类于 Android , Flutter | | 阅读次数:

官方发布说明:medium.com/flutter/wha…

北半球的冬意已至,黄叶与气温均随风而落,而年终的最后一个稳定版本已悄然来到你的面前。 让我们向 Flutter 2.8 打声招呼~ 本次更新包含了 207 位贡献者和 178 位审核者 的辛勤劳作, 所有人共同产出了 2424 个 PR,关闭了 2976 个 issue。 在此特别感谢本次发布中最突出的社区贡献者:来自 Very Good Ventures 的 Flutter 开发工程师 Bartosz Selwesiuk, 他专注于 Web 平台的 camera 插件并提交了 23 个 PR。

以上的所有产出让 Flutter engine 和 DevTools 都有了非常显著的性能提升, 同时带来的还有 Google 移动端广告 SDK Flutter 版本的稳定版发布、 一系列针对 Firebase 的新功能和优化、Flutter WebView 3.0、 新的 Flutter Favorite package、向桌面端 Stable 迈出的一大步, 以及支持更多 package 的新版本 DartPad。 虽然这是今年最后一个稳定版本,但它并不是最不重要的。让我们一起来看看!

阅读全文 »

Jetpack Compose 入门学习

发表于 2021-11-15 | 分类于 Android , Jetpack | | 阅读次数:

简介

  • Jetpack Compose:利用声明式编程构建Android原生界面(UI)的 工具包

优势

  • 更少的代码、代码量锐减
  • 强大的工具/组件支持
  • 直观的 Kotlin API
  • 简单易用

编程思想

  • 声明性编程范式:声明性的函数构建一个简单的界面组件,无需修改任何 XML 布局,也不需要使用布局编辑器,只需要调用 Jetpack Compose 函数来声明想要的元素,Compose 编译器即会完成后面的所有工作。

  • 简单的组合函数

    1
    2
    3
    4
    @Composable
    fun Greeting(name: String) {
    Text(text = "Hello $name!")
    }

  • 声明性范式转变:在 Compose 的声明性方法中,微件相对无状态,并且不提供 setter 或 getter 函数。实际上,微件不会以对象形式提供。您可以通过调用带有不同参数的同一可组合函数来更新界面。这使得向架构模式(如 ViewModel)提供状态变得很容易,如应用架构指南中所述。然后,可组合项负责在每次可观察数据更新时将当前应用状态转换为界面。

  • 动态 :组合函数是用 Kotlin 而不是 XML 编写

  • 重组:在 Compose 中,您可以使用新数据再次调用可组合函数。这样做会导致函数进行重组 – 系统会根据需要使用新数据重新绘制函数发出的微件。Compose 框架可以智能地仅重组已更改的组件。

    • 可组合函数可以按任何顺序执行
    • 可组合函数可以并行运行
    • 重组会跳过尽可能多的内容
    • 重组是乐观的操作
    • 可组合函数可能会非常频繁地运行
阅读全文 »

Alfred进阶教程,自定义Workflows

发表于 2021-11-08 | 分类于 Mac , Alfred | | 阅读次数:

在上一篇《Mac装机必备-Alfred的基础使用教程》中,已为大家介绍了Alfred的基础功能。其实除了Alfred已有的功能外,Alfred还支持用户自定义工作流。

通过设置好触发器、输入、操作、实用程序、输出,就可以自由搭建工作流。在本教程中,我将创建一个简单的热键工作流,用来一键启动我每天多次使用的一些应用程序和网页。

进入Alfred的偏好设置中的workflows*标签页,点击左下角的“+”,然后选择Templates > Files and Apps > Launch file group from hotkey*,创建一个用热键打开的工作流。

阅读全文 »

Mac装机必备Alfred

发表于 2021-11-08 | 分类于 Mac , Alfred | | 阅读次数:

安装Alfred

阅读全文 »
12…38
ZhangMiao

ZhangMiao

Android/Flutter Developer

371 日志
58 分类
143 标签
RSS
E-Mail QQ Github StackOverflow
友情链接
  • Liujianhui
  • Leo
  • Hongyang
  • Liuwangshu
  • Jspang
  • Blankj
  • WuXiaoLong
  • Molunerfinn
  • Ofind
  • Gcssloop
© 2022 ZhangMiao
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
本站访客数 人次 本站总访问量 次