大众号:字节数组

希望对你有所帮助

闲着无事,来写篇文章,引荐几个我正在密布更新的个人开源项目,再附带几篇相关联的介绍文章,也许对你有所帮助

一、Matisse

Matisse 是一个用 Jetpack Compose 完成的 Android 图片/视频 挑选结构

推荐几个开源项目,也许对你有所帮助

Matisse 的特点 & 优势:

  • 适配到 Android 13
  • 处理了多个体系兼容性问题
  • 按需索取权限,极简的权限声明
  • 彻底用 Kotlin & Jetpack Compose 完成
  • 支撑一起挑选图片和视频,或许单独挑选两者之一
  • 支撑精细自定义主题,供给了日夜间两套默许主题
  • 支撑多种拍照战略,能够自由挑选是否要申请权限

知乎的 Matisse 应该有蛮多的 Android 开发者有了解过或许是曾经运用过,这是知乎在 2017 年开源的一个 Android 端图片挑选结构,惋惜近几年知乎官方已经不再对 Matisse 进行保护更新了,上一次提交记录还停留在 2019 年,累积了四百多个 issues 一直没人解答,许多高版别体系的兼容性问题和内部 bug 也一直得不到处理。我公司的项目也运用到了 Matisse,随着 Android 体系的更新,时不时地就会有用户来反馈问题,无法我也只能 fork 了源码自己来保护

一直这么小修小补毕竟不太合适,而且假如不进行彻底重写的话,Matisse 的一些交互体会问题也没法得到彻底处理。因而我在 2022 年 6 月份的时分就自己动手完成了一个新的媒体挑选结构并开源到了 Github,并用了和知乎相同的名字。至今已经有一年多的时刻了,期间一共发布了十几个版别,最近版别号也终于更新到了 1.0.1

推荐几个开源项目,也许对你有所帮助

关于 Matisse 我也先后写了两篇文章,读者能够一并看看,以此来了解 Matisse 的规划思路

  • Jetpack Compose 完成一个图片挑选结构
  • Android 13 媒体权限适配指南

Matisse 的 Github 地址:Matisse

二、compose_chat

compose_chat 也是一个 Jetpack Compose 项目,底层经过接入腾讯云 IM SDK 来完成消息通信功用,支撑私聊和群聊,上层则彻底用 Jetpack Compose 来完成

2021 年 7 月份的时分,Google 正式发布了 Jetpack Compose 的 1.0 版别。我看到后,想着立刻就接入到公司项目里也不太实际,就干脆先来测验做一个功用比较丰富的个人项目得了,因而在 8 月份的时分就开源了 compose_chat

我在 Github 上对 compose_chat 的简介是:Jetpack Compose 最佳实践,用 Jetpack Compose 写一个 IM APP。这也是我对 compose_chat 的定位,每逢我想测验下 Jetpack Compose 的一些新特性或新的规划形式时,基本都是先在 compose_chat 上进行实践,因而这两年来我陆陆续续都会做一些更新

关于 compose_chat 我也先后写了两篇文章,从 Jetpack Compose 的规划理念到上手实操都有涉及到,自认还算作是比较不错的 Jetpack Compose 入门教程

  • 学不动也要学,用 Jetpack Compose 写一个 IM APP(一)
  • 学不动也要学,用 Jetpack Compose 写一个 IM APP(二)

compose_chat 的 Github 地址:compose_chat

三、compose_tetris

compose_tetris 又又又是一个 Jetpack Compose 项目,是一个俄罗斯方块小游戏,一起支撑 Android 和 Windows 途径

推荐几个开源项目,也许对你有所帮助

compose_tetris 的开源时刻比 compose_chat 还早,是我在 2021 年 6 月份的时分发布的,开始只是我在 Android 途径上的一个实践小项目。后来看到 JetBrains 发布了适用于多个途径的声明式 UI 开发结构 Compose Multiplatform 的 1.0 正式版别,就又将 compose_tetris 移植到了 Windows 途径,所以现在 compose_tetris 在 Github 上的简介又变成了:不止 Android,Compose Multiplatform 完成 Android + Desktop 俄罗斯方块

前阵子我更新了下 compose_tetris,然后似乎被 Github 官方引荐了,在两三地利刻里 Star 数量就从三十多个涨到了一百多个,最近又停下来了

关于 compose_tetris 我也先后写了两篇文章,从 Jetpack Compose 实践到 Compose Multiplatform 初探

  • 学不动也要学,Jetpack Compose 玩一把俄罗斯方块

  • 不止 Android,Compose Multiplatform 初探

compose_tetris 的 Github 地址:compose_tetris

四、asm-samples

asm-samples 是一个关于 Android 字节码插桩实战的项目,是我在 2021 年 12 月份发布的

一开始的时分,我是想为公司的项目增加一个运用双击防抖的功用,对于一个代码库已经比较巨大的项目来说,这种功用就比较适合于经过字节码插桩的方式来完成。我先去 Github 上找有没有直接可用的开源项目,终究发现要么是完成得不行全面,要么便是很久没有更新了,都无法满意我的需求,最终就自己来动手完成了

一起,我也写了一篇文章来详细介绍了双击防抖功用详细的完成思路以及需要考虑到的方方面面。后来看到京东发布了一篇介绍如何用字节码插桩进行线程整治的文章,又遇到工信部要求我公司的项目进行隐私合规整改,就写了一系列关于 Android 字节码插桩的功用,也陆陆续续发表了六篇文章,分别从不同方向进行介绍,并开源了悉数的完成代码

  • ASM 字节码插桩:完成双击防抖
  • ASM 字节码插桩:进行线程整治
  • ASM 字节码插桩:助力隐私合规
  • ASM 字节码插桩:监控大图加载
  • ASM 字节码插桩:从 Lambda 表达式讲起
  • ASM 字节码插桩:Jetpack Compose 完成双击防抖

最近我主要是对 asm-samples 进行了两次更新,一次是更新到了 Gradle 8.0,一次是对功用模块进行了拆分,从而使得整个项目更加贴近技术潮流,且代码更加易于了解

此外,asm-samples 虽然开源了悉数完成代码,但假如开发者想要引进到自己项目中的话,还需要手动引进源代码,不太方便。因而最近我有计划将其中一两个插件抽取出来并托管到公共 maven,以便开发者能够直接长途依赖运用

asm-samples 的 Github 地址:asm-samples

五、Monitor

Monitor 是一个适用于 OkHttp / Retrofit 的可视化抓包工具

推荐几个开源项目,也许对你有所帮助

在运用 OkHttp 或许 Retrofit 的时分,我觉得大部分开发者做得最多的自定义完成便是拦截器了。因为 OkHttp 的拦截器真的是太有用了,我们的许多需求:增加 Header、计算并增加签名信息、网络恳求记录 等都能够经过拦截器来主动完成,只需定义好规则,就能够覆盖到全局的 OkHttp 网络恳求了

Monitor 便是经过 OkHttp 的拦截器完成的一个开源库,只需要为 OkHttpClient 增加 MonitorInterceptor,就能够主动记录并缓存一切的网络恳求信息,并供给可视化页面进行检查

关于 Monitor 最早能够追溯到 2020 年的 10 月份,那时分的国庆假日我闲着无聊,就想着来写一系列关于 Android 开源库源码解析和实战演练的文章,初定下的目标是 EventBus、ARouter、LeakCanary、Retrofit、Glide、OkHttp、Coil 等七个闻名开源库,而且每写一篇源码解析文章,就再写一篇自定义完成或许是扩展阅读的文章,而 Monitor 便是我写完了 OkHttp 源码详解的文章后写的一个 OkHttp 相关的开源库

  • 三方库源码笔记(1)-EventBus 源码详解

  • 三方库源码笔记(2)-EventBus 自己完成一个

  • 三方库源码笔记(3)-ARouter 源码详解

  • 三方库源码笔记(4)-ARouter 自己完成一个

  • 三方库源码笔记(5)-LeakCanary 源码详解

  • 三方库源码笔记(6)-LeakCanary 扩展阅读

  • 三方库源码笔记(7)-Retrofit 源码详解

  • 三方库源码笔记(8)-Retrofit 与 LiveData 的结合运用

  • 三方库源码笔记(9)-Glide 源码详解

  • 三方库源码笔记(10)-Glide 你可能不知道的知识点

  • 三方库源码笔记(11)-OkHttp 源码详解

  • 三方库源码笔记(12)-OkHttp / Retrofit 开发调试利器

  • 三方库源码笔记(13)-可能是全网第一篇 Coil 的源码分析文章

最近我也对 Monitor 进行了一次晋级,主要是处理一些兼容性问题

Monitor 的 Github 地址:Monitor

六、AndroidGuide

目前,我的文章的发布途径主要有三个:微信大众号、、Github。AndroidGuide 正是我在 Github 上专门用于存档文章的项目,我每发布一篇文章,相应的 Markdown 文档也都会同步保存到 AndroidGuide

推荐几个开源项目,也许对你有所帮助

由于在微信大众号发表的文章基本就没法修正,因而有时分文章需要订正的话,我就只能修正在和 AndroidGuide 上发布的文章。假如读者想要检查上面几个开源库相关联的文章的话,主张到我的主页或许 Github 上进行检查,微信大众号比较适合于实时看到有文章发布

:业志陈

Github:AndroidGuide