自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 Flutter 指针事件原理&点击穿透

隔离的这14天,慢慢的研究了Flutter的指针事件,在这个过程中,又重新梳理了一下Element和Render Tree的形成过程。这篇文章,主要对指针事件在Fluter中如何下发到各个组件的过程进行梳理。(指针是指针,手势是手势,手势是指针事件的某种行为,且只有一个胜者,这点要区分清楚。)好像要一只dash啊。????????????好的,进入正题。当你点击了屏幕,Flutter做了什么呢?过程解析通过调用栈,我们逐步分析过程。1.从平台处获得指针事件数据并分发指针数据被包装

2021-09-30 17:39:02 2493

原创 2021年了,如何优雅地使用Fragment?

2021年了,相信Fragment如何创建,加载,甚至是常见的坑,大家都门清了。本文不会再讨论这些,而是希望讨论一些Fragment更好的使用方式。简介对于Fragment的介绍,我们从几个问题开始:什么是Fragment?Fragment用来做什么?用Fragment有什么优点?那么我们下面来一一进行解答:什么是Fragment?Fragment 表示应用界面中可重复使用的一部分。Fragment 定义和管理自己的布局,具有自己的生命周期,并且可以处理自己的输入事件。Fragme

2021-09-30 17:30:57 387

原创 反射解决DialogFragment内存泄露

这几个月一直在忙。在审自己以前的代码的时候发现了自己当初解决DialogFragment内存泄露的代码。于是我有研究了一番,感觉可以分享一下。怎么引发内存泄露的这个DialogFragment的内存泄露几年前我就遇到了,但当时也稀里糊涂的,在网上搜索各种办法,看的我也是云里雾里,迷迷糊糊。在查阅大量资料之后,终于明白为什么会导致内存泄露了。归根到底就是DialogFragment在给Dialog设置setOnCancelListener和setOnDismissListener的时候将当前的.

2021-09-29 22:15:44 654

原创 Kotlin你必须知道的小细节~

如果你开始使用Kotlin,我个人的建议是多关注编译后字节码或是反编译后的java代码,这样你会发现更多的细节。单纯只学习语法会让你忽略一些细节,而这可能会是性能问题或bug的来源。下面我举一些我在使用中碰到的问题,看能否给你启发,想到哪就写到哪了。本篇内容基于Java 8 + Kotlin 1.5.211.字符串拼接java 中我们通常使用StringBuilder、concat或者+等方式来拼接字符串。Kotlin中还可以使用字符串模板和plus一个简单的例子:val a = "H

2021-09-29 22:12:22 510

原创 当支付宝 App 遇见 AndroidX......

转载自Alibaba技术团队背景自2018年Android Support被“革了命”后,Support扩展库被尘封,享年28(最后的一个官方版本)。而AndroidX得到了社区的广泛接纳,众多知名框架纷纷推出AndroidX适配的版本,各大App厂家也跟进AndroidX升级。不负责任的说,缺失AndroidX长远来看将与Android社区组件脱节,无法享受到组件的维护,新的组件也难以融入,比如Paging 3.0,CameraX 1.0.0,Hilt 1.0.0,AppSearch 1.0.

2021-09-29 22:07:19 190

原创 用Compose实现轻量版网易云音乐

简述这是一个几乎全部使用Compose实现UI各组成部分的纯Kotlin Android App,应用取名Compose Many是因为最初想实现集各种小功能的工具软件,当然主要还是想也借此来学习Compose的整个开发流程。不过目前只做好了音乐部分。Compose目前正式版已经发布到了1.0.2(Alpha版本是1.1.0),目前来看官方更新速度不算太快,第一个正式版应该还是以稳定性为主。希望后续大版本更新时,能像Flutter2.0一样,功能更全面的同时也带来更丰富的生态。效果已经完成的

2021-09-28 20:40:55 1639

原创 Android 音视频缓存机制的系统性设计

在自媒体的时代,音视频播放 俨然已成为内容类型 APP 最基础的能力,对于 Android 开发者而言,无论是 Google 开源的 ExoPlayer ,还是 Bilibili 开源的 ijkplayer , 都是构建应用音视频播放能力时优秀的选择。虽然上述的三方播放器都自带完善的缓存功能,但对于内容和形式都日新月异的一众互联网产品来说,想要打造完美契合自家产品的用户体验,播放器自身的缓存机制已逐渐无法满足需求。最具代表性的产品是 抖音。 在播放短视频内容时,保证浏览、上下切换时 无缝链接 般丝滑

2021-09-28 14:48:01 527

原创 LiveData奇思妙用总结

前言 本文不涉及LiveData的基本使用方式。 阅读本文之前,强推推荐先看官方文档 LiveData的概览,官方文档写的非常好,并且很详细。 本文是一篇总结文,自己的一些使用结总结以及网上的学习归纳。 一、LiveData结合ActivityResult对 Activity Results Api不怎么了解的,可以先看下官方文档:developer.android.com/training/ba…1.1 调用系统相机场景调用系统相机,获取拍照后返回的照片

2021-09-28 14:23:32 359

原创 Android性能优化之内存优化

当一个应用同时运行越来越多的任务以及复杂的业务,Android系统的内存管理机制已经无法满足内存的释放与回收,为了应用的稳定性与性能,去控制内存的创建和回收就成为了一个重要的命题。本篇文章主要涉及内容如下:对象的创建与回收; 分配内存的方式,对象在JVM中的生命周期; 判断对象是否需要被回收,垃圾回收算法; 内存抖动、内存泄漏的监控; Bitmap的大小、重复监控方案; 设备分级方案。一、对象的创建和回收1.1、对象的创建在java中对象的创建基本上就是一个new,但new的背后

2021-09-27 16:40:40 504

原创 ANR原理及分析

ANR 基础知识ANR(Application Not Responding)的监测原理本质上是消息机制,设定一个delay消息,超时未被移除则触发ANR。具体逻辑处理都在system server端,包括发送超时消息,移除超时消息,处理超时消息以及ANR弹框展示等;对于app而言,触发ANR的条件是主线程阻塞。分类很多情况下对应类型的ANR与正在执行的组件(ContentProvider、Broadcast、Service)本身没有关系。Service ANR:前台20s,后台200s;s

2021-09-27 15:28:30 10722

原创 听说你还在用dp做屏幕适配

大家在Android开发时,肯定会觉得屏幕适配是个尤其痛苦的事,各种屏幕尺寸适配起来巨烦无比。如果我们换个角度我们看下这个问题,不知道大家有没有了解过web前端开发,或者说大家对于网页都不陌生吧,其实适配的问题在web页面的设计中理论上也存在,为什么这么说呢?电脑的显示器的分辨率、包括手机分辨率,我敢说分辨率的种类远超过Android设备的分辨率,那么有一个很奇怪的现象:为什么Web页面设计人员从来没有说过,屏幕适配好麻烦?那么,到底是什么原因,让网页的设计可以在千差万别的分辨率的分辨率中依

2021-09-27 15:19:00 2043

原创 一文掌握Android Handler消息机制核心代码

前言该文主要是分析Handler消息机制的关键源码,阅读前需要对handler有一些基本的认识。这里先简要回顾一下:基本组成完整的消息处理机制包含四个要素:Message(消息):信息的载体 MessageQueue(消息队列):用来存储消息的队列 Looper(消息循环):负责检查消息队列中是否有消息,并负责取出消息 Handler(发送和处理消息):把消息加入消息队列中,并负责分发和处理消息基本使用方法Handler的简单用法如下:Handler handler = n

2021-09-27 14:54:33 218

原创 今日头条Android屏幕适配方案

屏幕适配是我们Android开发,老生常谈的问题!面试官:看你简历上写着熟悉Android屏幕的适配,那就说一说吧我:1、我们为什么要适配?Android系统是开放的,是开源的,任何用户,开发者,手机厂商,运营商都可以对Android进行定制,比如小米,华为等等,还有许许多多的工控板,用的也是Android系统,于是乎哦吼,导致了运行Android系统的设备,多种多样,既然设备多了,就保不齐它们有着不同的屏幕尺寸,和像素密度。尽管系统可通过基本的缩放和调整大小功能使界面适应不同屏幕,但A

2021-09-26 21:02:32 669

原创 征服性能优化看它就够了

前两天跟一个六年经验的Android老鸟开发者聊天,跟我说最近的几次面试不尽如人意。这老哥都六年经验了,面试怎么还都能不太如意呢?深入交流后才知道,他是卡在性能优化这块了。老哥说自己开发经验虽然比较足,但其实对于性能优化这块,基本都是到网上搬运代码,虽然大部分开发者也都是搬运代码,但真正的高级开发者对于原理和方法的熟练掌握,可以让他们不论在实战还是面试中都游刃有余。很多求职者抱怨大厂:脱了裤子放屁多此一举,但其实面试官是想全方位地考察你对技术的理解深度,从而判断你解决问题的能力,性能优化对于一个产品来说

2021-09-26 20:21:37 93

原创 Android邻接矩阵实现的商品规格选择

介绍电商相关app在商品购买页面选择商品,根据不同的规格组合,选择对应的商品效果预览解决思路使用邻接矩阵解决假设我们有如下规格列表:specList: [ { title: "颜色", list: ["紫色", "红色"] }, { title: "套餐", list: ["套餐一", "套餐二"] }, { title: "内存", list: ["64G", "128G", "256G"] }]specList: [ { title: "头部", lis

2021-09-25 21:11:57 514

原创 Android 高级UI2 RecyclerView添加head和footer设计思路

RecyclerView通过其高度的可定制性深受大家的青睐,也有非常多的使用者开始对它进行封装或者改造,从而满足越来越多的需求,广泛应用于各类App开发中。 如果你对RecyclerView不陌生的话,你一定遇到过这样的情况,我想给RecyclerView加个headerView或者footerView,当你敲出.addHeaderView,你会发现并没有添加头部或者底部View的相关API。 但是我们可以参考ListView中addHeaderView()和addFooterView()方法,在Recy.

2021-09-25 20:44:14 563

原创 Android性能优化之-LeakCannary

LeakCanary使用LeakCanary是一个用于Android的内存泄漏检测库.本文从如下四点分析源码检查哪些内存泄漏 检查内存泄漏的时机 如何判定内存泄漏 如何分析内存泄漏(只有一点点,可能跟没有一样) 内存泄漏误报1.检查哪些内存泄漏AppWatcherInstaller继承于ContentProvider,调用时机是介于Application的attachBaseContext(Context)和onCreate()之间.通过这种方式初始化.方法2manualI..

2021-09-25 20:36:55 1339

原创 看完这篇,面试再也不怕Handler

一、为什么要使用 Handler众所周知,Android 不允许在子线程中更新 UI。但是我们在子线程完成耗时的操作之后,需要对界面数据进行更新,又该怎么处理呢?这时候,我们可以使用 Handler 进行 UI 更新。值得注意的是,更新 UI 我们需要把 Message 发送到主线程持有的 MessageQueue ,否则程序依然就会发生奔溃。另外,除了更新 UI,Handler 是 Android 系统的消息传递机制,它定义了一套处理消息的规则,广播、服务以及线程间的通信都需要靠它来完成。与

2021-09-25 15:28:48 93

原创 Android FFMPEG 极简配置

创建Android C++ 支持项目直接创建C++的支持项目,可以少写一些配置,新手可以直接创建。会更容易一些,创建C++ 支持项目会看到main 下面有一个 cpp 文件夹 ,cmake 配置文件也有了引入FFmpeg引入FFmpeg 之前,需要下载和编译。 这里不探讨下载编译,如果需要可以github 直接下载编译好的库就OK这里个人使用的是之前从git 下载的4.4版本编译的静态库。只要是4.0以后的版本差异不是很大,这些都不是本文要探讨的。本文 只考虑 如何 在android 配置好

2021-09-25 15:12:22 331

原创 Android 图片转场和轮播特效,你想要的都在这了

使用 OpenGL 做图像的转场效果或者图片轮播器,可以实现很多令人惊艳的效果。GLTransitions熟悉的 OpenGL 开发的朋友已经非常了解 GLTransitions 项目,该项目主要用来收集各种 GL 转场特效及其 GLSL 实现代码,开发者可以很方便地移植到自己的项目中。GLTransitions 项目网站地址: gl-transitions.com/galleryGLTransitions 项目已经有接近 100 种转场特效,能够非常方便地运用在视频处理中,**

2021-09-25 15:02:07 422

原创 性能优化之合并多个FileProvider

1. 前言最近在做Android App启动优化的工作,目前在快速定位耗时方法和合并多个ContentProvider两个方面取得了不错效果。本篇文章聚焦在合并多个ContentProvider上,特别是合并多个FileProvider,我发现目前网上没有合并多个FileProvider的教程,所以本文的合并多个FileProvider的方案是全网首创,一定会让你耳目一新。如果你觉得文章写的不错,帮忙分享给你的Android同事和朋友们。说到合并多个ContentProvider,大家一定会想到..

2021-09-23 21:46:17 908

原创 Android View post 方法

解析View.post方法。分析一下这个方法的流程。说起post方法,我们很容易联想到Handler的post方法,都是接收一个Runnable对象。那么这两个方法有啥不同呢?Handler的post方法先来简单看一下Handler的post(Runnable)方法。这个方法是将一个Runnable加到消息队列中,并且会在这个handler关联的线程里执行。下面是关联的部分源码。可以看到传入的Runnable对象,装入Message后,被添加进了queue队列中。Handler 有关的部

2021-09-23 20:57:13 1730

原创 Android技术分享| 一行代码实现安卓屏幕采集编码

越来越多的App需要共享手机屏幕给他人观看,特别是在线教育行业。Android 从5.0开始支持了MediaProjection,利用MediaProjection ,可以实现截屏录屏功能。本库对屏幕采集编码进行了封装,简单的调用即可实现MediaProjection权限申请,H264硬编码,错误处理等功能。特点适配安卓高版本 使用 MediaCodec 异步硬编码 编码信息可配置 通知栏显示 链式调用使用ScreenShareKit.init(this) ...

2021-09-23 20:15:22 508

原创 各大厂性能优化项目实战合集在这里!

一.何为App的性能此处以汽车举例,一辆小汽车的性能都包括哪些方面呢?同学甲说:油耗、加速快不快、开起来稳定是否、安全性等。同学甲说的不错,这些就是小汽车的性能那App的性能又是指什么呢?同学乙说,App启动是否够快,运行是否流畅,是否省电、省流量,安装包体积是否够小等等。是的,这就是App的性能。二.为什么要关注APP的性能?一辆小汽车性能越好,加速越快,跑的越稳,越省油。我们开发App也一样,性能越好,运行更流畅、更稳定、更省流量、电量,包的体积也会更小,这会给用户更加优秀的

2021-09-22 19:49:37 272

原创 Android 开发中的架构模式 -- MVC / MVP / MVVM

预备知识了解 Android 基本开发看完本文可以达到什么程度了解如何分析一个架构模式 掌握 MVC,MVP,MVVM 架构定义和实现阅读前准备工作clone CommonTec 项目,其中 architecture 模块是本文架构模式的对应的示例代码文章概览一、什么是架构关于架构的定义,其实在很多书籍和文章中都是不同的,很难做一个统一。这里列举两个定义:在维基百科里是这样定义的:软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之.

2021-09-17 15:45:23 835

原创 所谓Android架构到底是什么

关于Android架构,可能在很多人心里一直都是虚无缥缈的存在,似懂非懂、为了用而用、处处生搬硬套,这种情况使用的意义真的很有限。本人有多个项目重构的经验,恰好对设计领域较为感兴趣,今天我将毫无保留的将自己对架构、设计的理解分享给大家。本文不会具体去讲什么是MVC、MVP、MVVM,但我描述的点应该都是这些模式的基石,从本质上讲明白为什么这样做,这样做的好处是什么,有了这些底层思想的支持再去看对应的架构模式,相信会让你有一种焕然一新的感觉。知识储备:需掌握Java面向对象、六大设计原则,如果不理解也

2021-09-17 15:31:26 167

原创 Android开发未来如何发展

今天在知乎看到了这样一个问题,我觉得这是一个很不错的疑虑,这个问题相信很多人都考虑过,但是除了在大厂的 “螺丝钉”(褒义) 岗位有机会在工作上深入某个方向之外,很多时候中小型团队,特别是创业团队很难在工作上有这样的条件,因为日常工作可能都被业务包围,如果想要深入某个方向,只能靠自己业余去坚持。我算是业余坚持下的半个音视频开发和全职的大前端开发1、Android 音视频开发这个一个很不错的方向,特别是在 2018 -2020年的直播、短视频等风口让这个方向变得很火热,我算是半...

2021-09-17 15:08:17 260

原创 RecyclerView侧滑菜单的两种实现

侧滑菜单是App中常见的一个功能,理解了它的原理可以对自定义ViewGroup的测量、摆放及触摸事件的处理有更深的理解。本文主要讨论如何通过两种实现方式实现,以及两者的异同点,各自的缺陷等。为什么有两种实现呢?这个效果可以从不同的角度来实现:一种是父布局来处理、分发事件,控制子view的位置,也就是通过自定义RecyclerView实现 另一种是通过子ViewGroup拦截事件,处理事件来实现,也就是自定义ItemView的布局两种方式总体思路都是一样的,从布局方式到事件拦截、事件处理基本思路都

2021-09-17 14:54:14 1433

原创 带倒计时RecyclerView的设计心路历程

目前有这样一个需求:1 需要一个页面,展示多个条目 2 每个条目有独立的倒计时,倒计时结束后就删除此条目 3 每个条目上有删除按钮,点击可以删除该条目 4 列表上的条目类型是多样的 可行性分析首先肯定是可以做的:1 用一个RecyclerView来实现 2 每个item里面添加一个倒计时控件,注意倒计时是在item对应的数据里面,不是UI里面 3 添加删除按钮,点击就删除对应的数据,并且停止数据对应的倒计时,同时更新适配器 4 使用getViewType()来实现多个item类型三

2021-09-16 20:47:29 141

原创 一篇文章让你读懂Fragment

Fragment 是 Android 中历史十分悠久的一个组件,在 Android 3.0 (API 级别 11)的时候推出,时至今日已成为 Android 开发中最常用的组件之一在一开始的时候,引入 Fragment 的目的是为了在大屏幕(如平板电脑)上能够更加动态和灵活地设计界面,被定义为一个 轻量级 Activity 而进行设计。通过 Fragment 可以将整个界面划分为多个分散的区域块,且同个 Fragment 可以被应用于多个 Activity 中,从而实现界面的模块化并提高可重用性。随着

2021-09-16 20:23:20 939

原创 Android Handler,看这一篇就够了!

1、Handler的实现原理(基于Android 11)(1)、消息循环队列的创建过程当应用进程被启动时,调用ActivityThread.java的main()方法,进行消息循环队列创建 frameworks/base/core/java/android/app/ActivityThread.javapublic static void main(String[] args) { ···· //高版本废弃方法,由android环境创建 Looper.prepareMa

2021-09-16 19:42:50 819 1

原创 用Jetpack Compose搞定你的自定义Layout

概述Compose已经内置了许多组件,诸如Column,Row,Box等。开发者可以通过这些组合这些已有的组件来定制自己的专属组件。就像在传统View系统中,当LinearLayout等基础布局无法满足你的需求时,你可以通过重写measure与layout来达成你的期望。Compose沿用了这一理念,在一些场景下如果Compose内置组件可能无法满足你的需求,可以尝试通过定制测量与布局过程来完成需求。事实上,Compose内置组件也是通过定制Layout来达成的,只是一个更高层次的封装。在学习如

2021-09-16 16:21:54 187

原创 Compose 的重组会影响性能吗?聊一聊 recomposition scope

不少初学 Compose 的同学都会对 Composable 的 Recomposition(官方文档译为"重组")心生顾虑,担心大范围的重组是否会影响性能。其实这种担心大可不必, Compose 编译器在背后做了大量工作来保证 recomposition 范围尽可能小,从而避免了无效开销:Recomposition skips as much as possibleWhen portions of your UI are invalid, Compose does its best to re

2021-09-16 15:38:10 263

原创 Android Kotlin Jetpack Compose UI框架到底好不好用?

前言Q1的时候公司列了个培训计划,部分人作为讲师要上报培训课题。那时候刚从好几个Android项目里抽离出来,正好看到Jetpack发布了新玩意儿——Compose,我被它的快速实时打包给吸引住了,就准备调研一下,于是上报了此次课题。可是计划总赶不上变化,刚把课题报上去,我就扎入了前端的水深火热之中。从0到1地学习前端,一边学一边做项目,一边做项目一边分享,思考怎么让别人也学会做前端项目,这段时间,真的酸爽。随着时间推移,之前上报的课题分享也快临近了,这才想起来我还欠一个交代。没办法,自己报的课

2021-09-16 15:23:34 2040 1

原创 【译】体验在Jetpack Compose使用Navigation

通过本文你会了解到怎么在Jetpack Compose里面使用Navigation。你还会了解到在navigate的时候怎么传递基础类型和自定义类型数据。注意:Jetpack Compose最近已经发布了beta版本。这就意味着API的结构不会有太大的变动了。因此,现在这是学习怎么用Android开发下一代UI工具的时候了。Navigation是android开发的核心内容之一,所以你就好好看看本文吧。使用Jetpack Compose Beta版本需要使用Android Studio Canary

2021-09-14 14:26:14 1028 2

原创 Compose会是UI设计的最佳答案吗

很多开发者在做UI设计的时候本身就非常头疼,原生UI设计还没有学好,就有了Flutter,之后又出来了个Compose。这二者到底有什么区别,哪个才是UI设计的最优解呢?今天就带大家全面了解一下ComposeCompose简介Jetpack Compose:利用声明式编程构建Android原生界面(UI)的 工具包优势更少的代码、代码量锐减 强大的工具/组件支持 直观的 Kotlin API 简单易用Compose 编程思想 声明性编程范式:声明性的函数构建一个简单的界面组件

2021-09-13 20:35:21 298

原创 音视频到底难不难

2019年年末,5G浪潮席卷全国,各大手机厂商纷纷打出5G招牌,中国三大网络通信巨头也频频推出5G流量套餐,各种活动层出不穷。在这样的环境下,我们聊一聊Android音视频开发,一大波干货来袭,高能预警。二、浅谈音视频开发环境虽然2020年年初在疫情的高压下,各行各业都遭受了不同程度的打击,在这样的经济萧条下,互联网经济则显示出了自己的优势——交易和资金依靠网络,仍旧在不同的人,不同的地区间畅通无阻。以高速度、泛在网、低功耗(设备端)、低时延、万物互联、重构安全为特点的5G技术使直播,短视频

2021-09-13 20:16:49 573

原创 Spring Framework 6 和 Spring Boot 3 蓄势待发!

SpringOne 大会上宣布了一件重大的事情:Spring Framework 6 和 Spring Boot 3 计划在 2022 年第四季度能够达到生产可用的发布标准。Spring 6.0 的完整发布路线图如下:简单解释一下不同版本的区别:M1 M2 M3 M4 中 M 是 Milestone 里程碑的意思。代表功能可能还不完整,可能存在一些问题。 RC1 RC2 RC3 中的 RC 是 Release Candidate 的缩写,翻译过来的意思就是发布候选。代表功能完整且相对稳定,

2021-09-13 19:44:23 772 1

原创 探索App性能优化之绘制优化/UI流畅度优化

一、页面绘制对App性能的影响绘制性能主要影响 :App的页面显示速度。绘制影响性能的实质:页面的测量 & 绘制时间,一个页面通过递归完成测量 & 绘制过程。二、绘制优化思路和方向思路:View的onDraw()要避免执行大量的操作方向:降低View.onDraw()的复杂度 & 避免过度绘制(Overdraw)三、绘制优化具体方案(一) 降低View.onDraw()的复杂度1、onDraw()中不要创建新的局部对象因为onDraw())可...

2021-09-10 16:34:48 346

原创 [Flutter翻译]GSoC ‘21:为Flutter创建一个桌面样本

原文地址:medium.com/flutter/gso…原文作者:medium.com/@abd99发布时间:2021年8月22日 - 5分钟阅读(GSoC)是一个由Google赞助的开源的暑期项目。在这个项目中,学生们在一个开源组织的指导下进行项目工作。这是Dart团队第二次作为指导组织参加GSoC。不幸的是,由于导师的不到位,今年的创意列表中没有Flutter项目。因为这是我第二次参加GSoC,所以我联系了去年的导师Brett,看看是否有可能参与项目。经过与他和组织管理员的讨论,我找到了

2021-09-10 16:18:21 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除