最新 Android 热门开源项目公布

news/2025/2/2 2:21:21 标签: android, 开源

image

这个库借鉴了 iOS 的 JTAppleCalendar,提供了比较齐全的日历视图所需特性,支持定制样式。

GitHub 仓库:kizitonwose/CalendarView

Kyrie

VectorDrawable 和 AnimatedVectorDrawable 的超集。

image

VectorDrawable 提供了像素密度无关性——在任意设备上随意缩放而不损失画质。AnimatedVectorDrawable 在其基础上添加了动画特性。然而,它们有三大缺陷:

  • 无法暂停和继续。

  • 无法在运行时动态创建。

  • 相比 web 上的 SVG,它们仅仅支持少量特性。

Kyrie 提供了 KyrieDrawable 类,支持 VectorDrawable 和 AnimatedVectorDrawable 的所有特性,同时改进了上述缺陷。

GitHub 仓库:alexjlockwood/kyrie

Assent

面向 Kotlin 和 AndroidX,让 Android 的运行时权限控制易于开发。

fun saveImage(bitmap: Bitmap) = runWithPermissions(WRITE_EXTERNAL_STORAGE) {

上面的例子展示了 Assent 提供的简洁紧凑的基于回调的 API。(当然,你还是需要在 AndroidManifest.xml 里声明权限的,否则 Android 总会拒绝相应权限。)

GitHub 仓库:afollestad/assent

ktlint

开箱即用的 Kotlin linter:

  • 零配置。采用官方风格(kotlinlang.org 和 Android Kotlin 风格指南)。

  • 内置格式化功能,类似 Go 语言的 gofmt。

  • 单一可执行 jar 文件,内置所有依赖(当然,你还是需要自备 jvm 的)。

  • 可搭配 maven、gradle、GNU Emacs、Vim 使用。

注意「零配置」的意思是并不提供多种风格选项让你选择,但是你仍然可以通过自行编写规则来自定义 linter 的行为。另外,ktlint 也会遵循 .editorconfig 中的设置。

ktlint 也可搭配 IntelliJ IDEA 使用。不过通常没有这个必要,可以直接使用 IDEA 内置的代码格式化功能(效果和 ktlint 一致)。暂时也没有 vscode 插件,不过可以通过 sonarlint 曲线使用。

官网:ktlint.github.io

mockk

Kotlin 的 mock 测试库,不仅支持常规的单元测试,还支持在真机或模拟器上运行的 instrumented 测试。

mockk 提供了全面、强大的特性,可以 mock 类、对象、私有函数、协程等多种结构(Android P 之前的版本 instrumented 测试有少数特性不支持)。

官网:mockk.io

KOIN

面向 Kotlin 开发者的轻量依赖注入框架。

KOIN 提供了轻量的函数式依赖注入 DSL,无需代码生成和反射。

class Controller(val service : BusinessService)

class BusinessService()val myModule = module {

single { Controller(get()) }

single { BusinessService() }

}class MyApplication : Application() { override fun onCreate(){

super.onCreate()

startKoin {

androidContext(this@MyApplication)

modules(myModule)

}

}

}

官网:https://insert-koin.io/

Firefox Fenix

Firefox Fenix 是 Firefox 的下一代 Android 浏览器,未来将取代 Firefox for Android (其实 Firefox for Android 的开发早已放缓,因为 Mozilla 将更多的精力投入到 Fenix 的开发中)。上个月,Mozilla 在 Google Player 上发布了公测版(仅向报名测试的人员开放下载)。

Firefox Fenix 基于 GeckoView 和 Android components 开发。GeckoView 是 Mozilla 开源的 Android 库,封装了自家的 Gecko 浏览器引擎。


http://www.niftyadmin.cn/n/5839708.html

相关文章

高速PCB设计指南5——电磁干扰和电磁兼容

高速PCB设计指南5——电磁干扰和电磁兼容 1. 电磁兼容性(EMC)2. EMC和EMI定义3. EMI的来源4. EMC的最佳PCB设计实践 上一期我们介绍高速PCB中的叠层设计和PCB技术,这一期我们介绍PCB中的电磁干扰和电磁兼容 电磁兼容(EMC&#xff…

数据结构:线性表查找的三种方式

只要是静态查找表即可 #define ElemType int typedef struct { ElemType *d; int length; }SSTable; 顺序查找 S(n)O(1) 哨兵空间 int Search_Seq(SSTable t,ElemType key) {t.d[0]key;for (int i t.length; i >0 ; i--) {if(t.d[i]t.d[0]){return i;}}return 0; } 折半查找…

stm32教程:EXTI外部中断应用

早上好啊大佬们,上一期我们讲了EXTI外部中断的原理以及基础代码的书写,这一期就来尝试一下用它来写一些有实际效能的工程吧。 这一期里,我用两个案例代码来让大家感受一下外部中断的作用和使用价值。 旋转编码器计数 整体思路讲解 这里&…

第11章:根据 ShuffleNet V2 迁移学习医学图像分类任务:甲状腺结节检测

目录 1. Shufflenet V2 2. 甲状腺结节检测 2.1 数据集 2.2 训练参数 2.3 训练结果 2.4 可视化网页推理 3. 下载 1. Shufflenet V2 shufflenet v2 论文中提出衡量轻量级网络的性能不能仅仅依靠FLOPs计算量,还应该多方面的考虑,例如MAC(memory acc…

hdfs:介绍三个脚本

1、jps-cluster.sh 如果我们想在Bigdata01 这台电脑上,查看整个集群的服务启动情况,可以使用这个脚本文件。 #!/bin/bash USAGE"使⽤⽅法:sh jps-cluster.sh" NODES("bigdata01" "bigdata02" "bigdata03…

Github 2025-01-31Java开源项目日报 Top10

根据Github Trendings的统计,今日(2025-01-31统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目10C项目1Kotlin项目1Bazel:快速、可扩展的多语言构建系统 创建周期:3564 天开发语言:Java协议类型:Apache License 2.0Star数量:2…

浅谈RTB场景中的动态出价算法

一、RTB与动态出价的基本概念 实时竞价(Real-Time Bidding, RTB) 是一种程序化广告交易方式,当用户访问网页或应用时,广告展示机会会通过实时拍卖机制出售给广告主。整个过程通常在毫秒级完成,涉及以下步骤&#xff1…

【cocos官方案例改】跳跃牢猫

自制游戏【跳跃牢烟】 案例解析 案例需求,点击鼠标控制白块左右。 资源管理器部分 在body创建一个2d精灵用作玩家。 在地下在创建一个2d精灵用来代表地面。 在body下挂在脚本。 全部脚本如下 (在二次进行复刻时候,发现把代码复制上去无法…