移动开发

确定 Flutter SDK 及其关联的 Gradle 版本与适配的 JDK 版本

最近在编写 Flutter 项目,发现不同的 Flutter SDK 版本有着不一样的 Gradle 版本,然后不同的 Gradle 版本需要不同的 JDK 版本。只有当三者都一致匹配时,才能正常的完成编译首先,我们可以确定 Flutter SDK 对应的 Gradle 版本。我们每个下载的 Flutter 的 SDK 中都有这样一个示例工程

Flutter动态化方案

背景 随着业务功能越来越复杂,Flutter应用需要持续更新添加新功能,而且也会遇到线上bug需要及时修复,目前常见的升级方式采用整体更新升级,无论是安卓还是IOS,都需提交对应的应用市场更新,审核周期长也经常有遇到被拒的情况,即使上线了也无法达到全部用户升级,存在兼容问题,费时费力,而且用户对app动辄几十兆几百兆的应用更新是比较抗拒的。 面对这些问题,如果能实现app增量、无感知更新,实现功能

RE: 从零开始的车载Android HMI(二) - Widget

1. Widget 概述 Widget,又叫“微件”、“小部件”。小部件是放置在主屏幕(Launcher)上的Android应用程序的小工具或控件。通过小部件可以将自己喜欢的应用程序放在主屏幕上,以便快速访问它们或是显示一些重点信息。 小部件可以是多种类型,例如信息小部件、集合小部件、控件小部件和混合小部件。Android为我们提供了一个完整的框架来开发我们自己的小部件。在手机上我们已经看过一些常

toxiclibs中的粒子和弹簧

书名:代码本色:用编程模拟自然系统 作者:Daniel Shiffman 译者:周晗彬 ISBN:978-7-115-36947-5 目录 5.16 toxiclibs中的粒子和弹簧 1、粒子 在Box2D的例子中,我们创建了自己的类(比如Particle类),并在其中加入了一个Box2D物体对象变量。 class Particle { Body body; 这样的实现方式显得

[ANR] Input ANR是怎么产生的

最近在做ANR优化,发现线上非常多的ANR(一半以上)原因都是 Input dispatching timed out。对于Activity或Service生命周期的ANR产生原理,我想大家应该都比较了解了,就是在AMS里埋炸弹、拆炸弹那一套机制,那Input Dispatching time outANR是怎么产生的呢?这篇文章带大家一起学习一下。 Android输入系统 Input Dispa

基于Telegram二次开发 --- MTProtoKit 架构

MTProto 是 Telegram 的核心协议,旨在支持多种传输协议;当前版本的 Telegram-iOS 仅支持 TCP 传输;HTTP 传输已于 2018 年删除;VoIP 模块 libtgvoip 支持 UDP 和 TCP 传输。 MTProtoKit 源码仓库 MTProto 官方文档 Telegram-iOS 在 Network 内置了用于冷启动的种子地址: let seedAdd

flutter:如何实现局部导航管理?

引言 今天,小编给大家分享如何在 flutter 中实现 ‘局部导航’。开始之前我们先来统一一下关于 局部导航 的概念。 局部导航是什么? 我们在 flutter 中使用 navigator 来管理 app 的页面堆栈,主要包括 push、pop 这两种操作。而当我们UI设计划分得更细致时,可能遇到需要在某个独立页面里,单独维护一套子级的堆栈管理。这就叫 局部导航管理。 局部控件内单独维护局部范围

Google 公布的 Jetpack Compose 1.2 Beta 有哪些亮点更新?

Jetpack Compose 1.0 发布已经快一年了,在此期间我们看到社区是它的热情,例如欣赏 Kotlin 语法的简洁性、使 UI 开发变得更加便捷和更轻松的声明式方法。 社区中的 Compose 我们已经看到许多公司开始大规模使用 Compose,例如 Compose 于 Play Store 团队密切合作,他们在很早的时候就开始尝试 Compose ,并了解到它不仅更有趣,而且对他们的开