首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

最新 Android 热门开源项目公布

LeanCloud 工程师收集了 2019 年 5 月 GitHub 上比较流行的 9 个和 Android 开发相关的开源项目,分享给各位开发者,内容包括对话框、日历、矢量绘图组件,内存泄露检测库,Kotlin...GitHub 仓库:afollestad/assent ktlint 开箱即用的 Kotlin linter: 零配置。...采用官方风格(kotlinlang.org 和 Android Kotlin 风格指南)。 内置格式化功能,类似 Go 语言的 gofmt。...ktlint 也可搭配 IntelliJ IDEA 使用。不过通常没有这个必要,可以直接使用 IDEA 内置的代码格式化功能(效果和 ktlint 一致)。...Android components 则是 Mozilla 使用 Kotlin 开发的一套 Android 组件库,这套组件库主要面向浏览器和类浏览器应用。

1.4K00

Android代码静态检查(lint、Checkstyle、ktlint、Detekt)

Android代码静态检查(lint、Checkstyle、ktlint、Detekt) 在Android项目开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。...Android目前主要使用的语言为kotlin、java,所以我们需要尽可能支持这两种语言。 Lint Android Studio 提供的代码扫描工具。...checkstyle-result-preview.png 支持Kotlin 怎么实现Kotlin的代码检查校验呢?我找到两个富有意义的方法。 1....} 引入插件,完善相关配置: apply plugin: "org.jlleitschuh.gradle.ktlint" ktlint { android = true verbose...detekt-result-preview.png 总结 GitHub Demo CheckStyle不支持kotlin,Ktlin和Detekt两者对比Ktlint它的规则不可定制,Detekt 工作得很好并且可以定制

1.9K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用 detekt 呀,拿捏得死死的~

    另外,我们现在在招 Android 暑期实习生(腾讯地图,工作地:腾讯北京总部大厦),我们面试一向只看真本领,不面八股文,欢迎有兴趣的小伙伴投递简历至:bennyhuo@tencent.com。...类似于 Java 语言的 checkstyle 工具,Kotlin 也有两个类似的静态代码分析工具: ktlint[1]:Kotlin linter 工具,可自动格式化代码。...默认规则集扫描的都是代码格式问题。 detekt[2]:同样是针对 Kotlin 语言的静态代码分析工具,除了代码格式问题(集成了 Ktlint 的功能),还能扫描出代码风格问题和潜在风险。...与协程有关的规范检查 empty-blocks 空代码块检查,空代码应该尽量避免 exceptions 与异常抛出和捕获有关的规范检查 formatting 格式化问题,detekt直接引用的 ktlint...便于我们在代码编写的过程中,留意存在的代码问题。 高亮的效果和 IDE 自带的 inspection 的代码提示效果类似,鼠标移动到高亮的地方后会显示问题提示。

    3.7K21

    ​使用Kotlin和Android Studio开发Android应用的详细教程

    引言Android开发是移动应用开发领域中的一个重要方向,而Kotlin作为一种现代的、表达力强大的编程语言,逐渐成为Android开发的首选语言。...本教程将详细介绍如何使用Kotlin和Android Studio开发一个简单的Android应用,包括项目的创建、界面设计、代码编写以及运行应用。...步骤1:安装Android Studio和配置环境首先,确保你的系统中已经安装了最新版本的Android Studio。你可以从官方网站下载并按照安装指南进行安装。...安装完成后,打开Android Studio,确保SDK和其他必要的组件已成功安装。创建或导入一个新的Android项目。步骤2:创建新的Android项目打开Android Studio。...你已经成功创建并运行了一个简单的Android应用程序,使用了Kotlin语言和Android Studio进行开发。这只是一个简单的入门示例,你可以根据需要扩展应用,添加更多功能和界面元素。

    2.4K10

    Kotlin代码检查在美团的探索与实践

    这些特性使得Kotlin的代码比Java简洁优雅许多,提高了代码的可读性和可维护性,节省了开发时间,提高了开发效率。...本文剖析了Kotlin的隐藏开销,并就如何避免开销进行了探索和实践。...基于此,整个工具主要包含下面三个方面的内容: 解析Kotlin代码 编写可扩展的自定义代码检查规则 检查自动化 结合对工具的需求,在经过思考和查阅资料之后,确定了三种可供选择的方案: ktlint ktlint...类需要定义一套新的接口方法来适配遍历Kotlin节点回调时的调用 Kotlin代码解析 和Java一样,Kotlin也有自己的抽象语法树。...Kotlin代码检查实践 KLint插件分为Gradle插件和IDE插件两部分,前者在build.gradle中引入,后者通过Android Studio安装使用。

    1.5K40

    Kotlin 协程和 Android SQLite API 中的线程模型

    从 Room 2.1 版本之后,开发者们可以通过定义 suspend DAO 函数来使用 Kotlin 协程了。...在我们为 Room 添加协程的支持期间,我们遇到并解决了在协程模型和 Android SQL API 中没想到的一些问题。在本篇文章中,我们会向您阐述我们遇到的这些问题,以及我们的解决方案。...的 SQLite 事务受制于单个线程 上述代码中的问题在于 Android 的 SQLite 事务是受制于单个线程的。...中 SQLite 的线程限制是合理的,这在 Kotlin 还没出现时已然如此设计了。...直接取消 Android 线程对 SQLite 事务的限制是不可行的,因为我们希望提供一个向后兼容的解决方案,而上述这些方法的组合最终让我们在使用协程和 Fluent API 的解决方案中发挥了创造性。

    1.9K20

    如何用kotlin开发同时支持iOS和Android的库

    如何用kotlin开发同时支持iOS和Android的库 虽说kotlin-native可以支持链接到c,java,objective-c等语言,甚至可以进行原生开发,但是在使用的过程中并不友好,配置繁琐且...通过kotlin构建库不失为一个好办法,可以将iOS和安卓共有的参数、model和通用方法用kotlin写成库,并分别打包给两个平台使用,在未来应该是一个可行性的方案。...由于现在kotlin-native还是没有推出正式版,不建议马上通过这种方式来开发项目,这里只是给未来的开发提供了一种可能性。...、设置项目的GroupId、artifactId、 Version信息 四、选择gradle环境,如果选择本地的配置,可以省去配置的时间 五、配置项目名称和存放的路径,并Finish 写Demo代码 在根目录新建一个名为.../gradlew assemble 就会在项目根目录的 build/libs文件夹下生成名为 leacode.kotlin-1.0-SNAPSHOT.jar 可以用于导入安卓项目使用 打iOS的framework

    3K20

    Android经典面试题之Kotlin中 if 和 let的区别

    欢迎点击上方"AntDream"关注我,每天进步一 在Kotlin中,if和let虽然有时候用来处理相似的情景,但它们实际上是用于不同的场景并具有不同的性质。...返回值:if表达式可以有返回值,这使它与Java中的if语句有所不同,因为在Kotlin中if是有返回值的表达式。 嵌套和多分支:可以嵌套使用,并支持多分支 (else if)。...let 函数 let 是Kotlin标准库中的一个扩展函数,通常用于对非空对象执行某些操作。它的主要目的是避免显式的null检查,并且作用域内将对象以it的形式暴露出来。...适用于执行不同条件下不同逻辑的场景。 let:一种作用域函数,通常用于对非空对象进行操作,并带有安全调用的特性。适用于简化对可空类型的操作,避免显式的null检查。...选择使用if还是let,取决于你的具体需求和场景。在不需要null安全或作用域控制的简单条件判断中,使用if更为直观;在处理可空类型并需要对非空值进行操作时,使用let则更为简洁和优雅。

    21910

    R8 编译器: 为 Kotlin 库和应用 瘦身

    作者 / Morten Krogh-Jespeersen, Mads Ager R8 是 Android 默认的程序缩减器,它可以通过移除未使用的代码和优化其余代码的方式降低 Android 应用大小...除了生成更小的库文件,库压缩操作还可以隐藏开发库里的新特性,等到这些特性相对稳定或者可以面向公众的时候再对外开放。 Kotlin 对于编写 Android 应用和开发库来说是非常棒的开发语言。...R8 现在支持维持和重写 Kotlin 的元数据,从而全面支持使用 Kotlin 反射来压缩 Kotlin 开发库和应用。...该特性适用于 Android Gradle 插件版本 4.1.0-beta03。欢迎大家踊跃尝试,并在 Issue Tracker 页面 向我们反馈整体使用感受和遇到的问题。...我们可以在保留规则中使用 allowobfuscation 修饰符来允许 R8 重命名类,生成 Kotlin 元数据,这样 Kotlin 编译器和 Android Studio 都会将该类视为 Kotlin

    1K30

    Android经典面试题之Kotlin的==和===有什么区别?

    在 Kotlin 中,== 和 === 是两个不同的操作符,它们用于比较两个值是否相等,但它们的行为和用途有所不同。 == 操作符: == 是一个相等性比较操作符,用于比较两个变量的值是否相等。...在 Kotlin 中,=== 通常用于特定的场景,比如在某些情况下需要确保对象的唯一性。...其他常见比较操作符 在 Kotlin 中,除了 == 和 === 这两个用于比较相等的操作符外,还有其他几个比较操作符,它们用于不同类型的比较: 1、 !=(不等于): 用于比较两个值是否不相等。...5、 ranges(范围): Kotlin 支持使用 .. 操作符创建范围,例如 1..10 表示从 1 到 10 的整数范围。 范围可以与 in 和 !in 操作符一起使用,用于范围比较。...了解这些比较操作符和方法可以帮助你编写更灵活和强大的 Kotlin 代码。在实际编程中,选择正确的比较操作符或方法取决于你的具体需求和上下文。 END 点赞转发,让精彩不停歇!

    18910

    年度实用技巧:Spring Boot与Kotlin在后端开发中的实践总结

    学习总结在使用Spring Boot与Kotlin开发后端项目的过程中,Kotlin凭借其简洁的语法、强大的空安全特性以及对协程的支持,与Spring Boot形成了高效的开发组合。...合理使用Kotlin扩展函数增强代码可读性。例如,定义自定义异常处理器时,可通过扩展函数统一日志和响应格式。...: println("User not found")协程(Coroutines)的使用与优化Kotlin的协程对于异步处理和高并发场景有极高的性能优势。在服务中,可以使用协程简化异步逻辑。...()工具与调试技巧KTlint:用于代码格式检查,保持Kotlin代码风格一致。...Spring Boot与Kotlin的结合,不仅提高了开发效率,还通过其简洁的语法和强大的功能特性,使代码更加易于维护。在未来的开发中,可进一步探索Kotlin的DSL能力和更深层次的协程应用。

    16920

    R8 编译器: 为 Kotlin 库和应用 瘦身

    作者 / Morten Krogh-Jespeersen, Mads Ager R8 是 Android 默认的程序缩减器,它可以通过移除未使用的代码和优化其余代码的方式降低 Android 应用大小...除了生成更小的库文件,库压缩操作还可以隐藏开发库里的新特性,等到这些特性相对稳定或者可以面向公众的时候再对外开放。 Kotlin 对于编写 Android 应用和开发库来说是非常棒的开发语言。...R8 现在支持维持和重写 Kotlin 的元数据,从而全面支持使用 Kotlin 反射来压缩 Kotlin 开发库和应用。...该特性适用于 Android Gradle 插件版本 4.1.0-beta03。欢迎大家踊跃尝试,并在 Issue Tracker 页面 向我们反馈整体使用感受和遇到的问题。...我们可以在保留规则中使用 allowobfuscation 修饰符来允许 R8 重命名类,生成 Kotlin 元数据,这样 Kotlin 编译器和 Android Studio 都会将该类视为 Kotlin

    91920

    Android面试题之Kotlin 协程的挂起、执行和恢复过程

    协程的挂起、执行和恢复过程到底是怎么样的? 协程(Coroutine)的挂起和恢复机制是其高效管理并发性的核心。这些过程涉及多个关键步骤,包括状态和上下文的保存、释放线程控制权、以及恢复时的通知等。...协程挂起和恢复时保存的状态和上下文 1.1 状态信息 协程的状态信息主要包括: 局部变量:函数当前执行到的位置以及所有局部变量的值。...2.2 Continuation Kotlin中的挂起函数实质上会被编译器转换成带有回调的 Continuation 对象。...该对象包含两个主要部分: 上下文(Continuation Context):绑定的执行环境。 恢复逻辑(Resume Logic):保存和处理挂起点的逻辑。...总结 综上所述,Kotlin 协程在挂起和恢复过程中,通过调度器实现线程的切换和任务调度: 挂起点保存当前状态由Continuation管理。 调度器控制挂起后的线程控制权交还。

    20410

    《Kotin 极简教程》第13章 使用 Kotlin 和 Anko 的Android 开发

    第13章 使用 Kotlin 和 Anko 的Android 开发 ---- 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢您亲爱的读者...长久以来,Android视图都是用 XML 来完成布局的。这些 XML可重用性比较差。同时在运行的时候,XML 要转换成 Java 表述,这在一定程度上占用了 CPU 和耗费了电量。...android 布局库 Anko SQLite 用于 android sqlite 的查询 dsl 和分析库 Anko Coroutines 基于 kotlinx 协程库 有了Anko 我们就能直接用...视图的成员变量和属性的数据绑定。...在 verticalLayout 代码段内部,创建了三个Android的控件 - 两个 editText 视图和一个 button 视图。这里视图的属性都在一行里面设置好了。

    3.6K30

    如何让你的lint检查更加高效?

    公司级的静态代码扫描有CodeDog和CodeCC,当时CodeCC不支持kotlin,就选择了CodeDog,而CodeDog上的规则可以避免一部分问题,但很多项目相关的问题规避需要自定义规则才能解决...后来就开始调研如何自己做自定义规则,支持Kotlin的静态代码扫描工具主要有以下几种: Ktlint:只支持代码风格检查,如果要支持代码性能检查的话,需要大量扩展代码性能规则集。...Detekt:支持代码风格检查和代码性能检查,代码风格检查完全复用Ktlint,代码性能检查规则集也比较完善,且支持规则集扩展。 Lint:这个是Google官方提供的静态代码扫描工具。...支持Kotlin和Java等多种语言,支持扩展规则集。...因为我们的项目其实是使用了Kotlin和Java混合开发,项目中有相当一部分使用Java开发的代码,而lint能同时支持Java和Kotlin,所以最后我们选择了lint。

    3.5K20

    Android面试题之Kotlin Flow的collect和collectLatest有什么区别?

    欢迎点击上方"AntDream"关注我,每天进步一点点 在Kotlin协程库中,collect和collectLatest是用于收集流数据的两种不同操作。...理解它们的区别,将有助于确保在处理流数据时的效率和行为符合预期。 1. 基本定义 collect: 是一个挂起函数,用于启动流的收集过程。...收集过程会逐个处理每个发射的值,并从上游流向下游执行相应的操作。由于是逐个处理,较耗时的操作会阻塞后续值的处理。...collectLatest: 类似于collect,但有一个关键不同点,即当新的值发射时,如果上一个值的收集操作尚未完成,collectLatest将取消上一个挂起操作,并立即启动新的值的收集过程。...总结 collect:适合逐个、顺序处理所有发射的流数据,保证每个值都被完整处理。 collectLatest:适合只关心最新数据的场景,可以中途取消未完成的处理以优先处理最新的发射值。

    45710

    Android经典面试题之Kotlin中如何隐藏DialogFragment和Dialog的导航栏

    DialogFragment隐藏导航栏 在 Android 中,使用 DialogFragment 显示对话框时,如果您希望隐藏系统导航栏(如状态栏和导航键),可以通过设置相关的系统 UI 标志来实现。...以下是一个完整的例子,展示了如何在 DialogFragment 中隐藏系统导航栏(使用 Kotlin): import android.os.Bundle import android.view.View...这种方法允许您的 DialogFragment 在显示时全屏,并隐藏状态栏和导航栏。...Dialog中隐藏导航栏 在 Android 中,如果想在 Dialog 中隐藏系统导航栏(包括状态栏和底部的导航键),可以通过设置窗口属性来实现。...let { … }: 为了确保 window 不为 null,使用 Kotlin 的安全调用操作符 ?. 来使用窗口对象。 setLayout 方法将对话框设置为全屏。

    19810

    Android面试题之Kotlin中的object关键字和companion伴生对象

    override fun play() = "other loading..." } println(p.play()) } companion伴生对象 将某个对象的初始化和一个类实例捆绑在一起...一个类里只能有一个伴生对象 伴生对象只有一个,哪怕类初始化多次 只有在类实例化或是调用伴生对象的函数时,伴生对象才会初始化,才会加载到内存 伴生对象里的方法就类似Java里的static方法的实现 /...const val PATH = "xxx" fun load() = File(PATH).readBytes() } } fun main() { //static方法的实现...ConfigMap.load() } internal internal 修饰类的方法,表示这个类方法只适合当前module使用,如果其他module使用的话,会找不到这个internal方法或者报错....所以 internal 限制了跨 module 的方法的使用 码字不易,求转发,求点在看,求关注,感谢!

    9710
    领券