' } 而如果你使用的是Kotlin,那么就在build.gradle中引入如下配置: dependencies { implementation 'org.litepal.android:kotlin...在异步查询的onFinish()回调中,我们直接得到的并不是查询的对象,而是一个泛型T对象,还需要再经过一次强制转型才能得到真正想要查询的对象。...Song类型了,从而避免了一次强制类型转换。...一次不可思议的升级 从上述文章中我们都可以看出,Kotlin版的代码普遍都是比Java代码要更简约的,Google给出的官方统计是,使用Kotlin开发可以减少大约25%以上的代码。...不管是Java还是Kotlin,只要是基于JVM的语言,泛型基本都是通过类型擦除来实现的。也就是说泛型对于类型的约束只在编译时期存在,运行时期是无法直接对泛型的类型进行检查的。
我们发现在初始化的时候呢,我们每次都会初始化,但是在实际的测试中呢,我们可能会是有些参数或者动作只需要做一次即可,那么我们只能在用例中初始化一次。那么unittest里面有没有这样的方法 呢?...setUpClass(cls): pass @classmethod def tearDownClass(cls): pass 我们只需要在初始化一次的时候调用...我们将这些代码带入到我们的测试用例中,看下效果会如何。...这样我们就实现了初始化一次,清理一次的需求。
作者 / 软件工程师 Ting-Yuan Huang 和 Jiaxiang Chen Kotlin Symbol Processing (KSP)——用于在 Kotlin 中构建轻量级编译器插件的全新工具现已推出稳定版本...为何要构建 KSP 在 Android 团队中,我们经常会向开发者提出这样一个问题: 就现阶段而言,开发应用时遇到的最大痛点是什么?其中出现最频繁的问题就是构建速度。...Kotlin 注释处理工具 (KAPT) 通过与 Java 注释处理基础架构相结合,让大部分 Java 语言注释处理器能够在 Kotlin 中开箱即用。...但是创建这些存根的成本很高,这意味着编译器必须多次解析程序中的所有符号 (一次生成存根,另一次完成实际编译)。 KSP 不使用存根生成模型,而是作为 Kotlin 编译器插件运行。...此举大幅提升了构建速度 (对于 Room 的 Kotlin 测试应用 而言速度提高了 2 倍),同时也意味着 KSP 可以在非 Android 以及非 JVM 环境 (如 Kotlin/Native 和
真的很遗憾看到,即使在今天,Kotlin在国内仍然还只是少部分开发者群体使用的语言,然而这就是现实。因此,如果PermissionX只支持Kotlin语言的话,势必将大部分的开发者都拒之了门外。...因为这3种权限都是属于隐私敏感的权限,如果像过去一样用户同意一次就代表永久授权,可能某些恶意应用会无节制地采集用户信息。在Android 11中请求摄像机权限,界面如下图所示。 ?...在Android 10系统中,如果我们同时申请前台和后台定位权限,那么将会出现如下界面: ?...但是如果我们在Android 11系统中同时申请前台和后台定位权限会怎么样呢?很遗憾地告诉你,会崩溃。...具体思路也是比较简单的,如果应用程序同时申请了前台和后台定位权限,那么就只先忽略后台定位权限,只申请前台定位以及其他权限,等所有权限都申请完毕后再单独去申请后台定位权限。 看上去很简单是不是?
Kotlin Flow 是什么? Kotlin Flow 解决了什么问题? Kotlin Flow 如何在 MVVM 中使用?...Google 推荐在 MVVM 中 使用 Kotlin Flow Google 推荐在 MVVM 中使用 Kotlin Flow我相信如今几乎所有的 Android 开发者至少都听过 MVVM 架构,在...我相信能够体会到从入门到放弃是什么感觉 解决回调地狱的问题 而相对于以上的不足,Flow 有以下优点: Flow 支持线程切换、背压 Flow 入门的门槛很低,没有那么多傻傻分不清楚的操作符 简单的数据转换与操作符,如...map 等等 Flow 是对 Kotlin 协程的扩展,让我们可以像运行同步代码一样运行异步代码,使得代码更加简洁,提高了代码的可读性 易于做单元测试 Kotlin Flow 如何在 MVVM 中使用...Kotlin Flow 在数据源中的使用 在 [PokemonGo](https://github.com/hi-dhl/PokemonGo) 项目中,进入详情页,会检查本地是否有数据,如果没有会去请求
中增加 7000 个方法和 1M 的大小,如果您使用 Kotlin 替换如 Guava、RxJava 等其他的库,影响可能会小一些。...如果您在使用中遇到了问题请参考以下链接中的 “Kotlin 在 Android Studio 的常见问题” 如何在 Android Studio 中使用 Kotlin?...当有提示出现的时候,点击 “Yes” 将 Java 代码转换为 Kotlin 代码,并且可以勾选 “Don’t show this dialog next time” 来方便您下一次转换。...与此同时,开发者可以依赖 Java 和 Kotlin 的互操作性,将 Java 代码转换为 Android Studio 中的 Kotlin 代码。...Kotlin 在运行时可能会在您的 debug APK 中增加 7000 个方法和 1M 的大小,如果您使用 Kotlin 替换如 Guava、RxJava 等其他的库,影响可能会小一些。
Kotlin 协程把 suspend 修饰符引入到了我们 Android 开发者的日常开发中。您是否好奇它的底层工作原理呢?编译器是如何转换我们的代码,使其能够挂起和恢复协程操作的呢?...ko… 协程的进阶使用: Kotlin Flow 和 Live Data codelabs.developers.google.com/codelabs/ad… 协程 101 协程简化了 Android...使用不同的 Dispatcher 您可以在不同的 Dispatcher 间切换,从而做到在不同的线程中执行计算。那么 Kotlin 是如何知道从哪里开始恢复挂起的计算的呢?...此时,编译器只需要添加如何在状态之间切换的信息。 首先需要知道的是: 函数是第一次被调用; 函数已经从前一个状态中恢复。...如您将在下面代码中所见,它将调用 LoginUserStateMachine 中存储的 cont 变量的 resume 函数: /* Copyright 2019 Google LLC.
,原有的 adb 安装速度很慢,即使安装包只做了一点点修改。...由于需要在设备级别上更改文件系统,ADB 增量安装 只适用于 Pixel 4 / 4XL 设备。所有新推出的 Android 11 设备都将包含这一变化并支持 ADB 增量安装。...在 Kotlin 中,object 有几个用法。第一是实现单例类。object 修饰的单例类,其实是通过私有化构造函数并在静态代码块中实例化来完成的。...第二种是 companion object ,Kotlin 中没有 static 关键字,可以用 companion object 来代替。...上面的文章介绍了 Android 是如何渲染页面的,以及应用如何在 Android 11 上请求不同的刷新率。 AndroidX AndroidX 发布了一些更新(通常是两周发布一次更新)。
△ 品果科技三位联合创始人徐灏、徐滢、顾锐 (左起) 虽然现在很多 Android 旗舰机的自带相机拍照功能越来越强大,第三方相机应用的必要性似乎越来越低。...能在激烈的市场竞争中屹立不倒,得益于 Camera360 开发公司成都品果科技对于产品定位的精准拿捏以及最新技术的快速跟进。 这个老牌影像应用是如何在手机自带相机越来越强的冲击下顺利存活的?...这一次,我们带来的是 Camera360 的开发商品果科技的心得与故事。 及时跟进新技术 用 Kotlin "换血" 提效 任何一家技术驱动型公司,都会对热门领域的新技术嗅觉敏感。品果也不例外。...2017 年,Lee 和同事参加 Google I/O 大会时见证了 Kotlin 正式成为 Android 官方语言的时刻,回到成都后,便开始在公司内部推动学习 Kotlin。...在发展初期,Camera360 是记录、创作两手抓,所以早期的一些滤镜如 LOMO、复古等,其实都是想让用户更好地记录所见到的世界。
在近期完成的一系列 Modern Android Development (简称 MAD Skills) 的视频和文章中,我们重点关注了 Kotlin 和 Jetpack。...我们介绍了多种不同的方法,让 Android 代码更具表现力、更简洁、更安全以及更易于使用 Kotlin 运行异步代码。...优先使用 KTX 库 在本视频中,我们探讨了如何通过 Jetpack KTX 扩展 使 Android 和 Jetpack 编码变得轻松、愉悦且符合 Kotlin 习惯。...上手使用 Room Kotlin API 本视频打开了 Room 的大门,一探如何在 Kotlin 中创建 Room 表和数据库,以及如何使用 Flow 实现插入和使用可观察的查询等一次性挂起操作。...社区分享 本视频中,Magda Miu - Android 的 GDE 分享了她结合使用基础 Kotlin API 与 CameraX 的经验。您可以 点击这里 观看视频。
这意味着,你能在网上(如 StackOverflow.com 上)找到的任何代码片段都可以转换为 Kotlin。...除了 Java 和 Kotlin 之外,你也可以选择其他语言,如 C#、JavaScript 等。在本文的后半部分,我们会简要地讨论一下。 2 如何学习 Anroid 开发?...一旦你对如何创建自己的 Android 应用有了一个大概的想法,就可以开始构建了。 这是目前为止最好的学习方式: 它将提供大量你在今后的日常工作中需要的技能。...最后,同样重要的是,看看 Android 官方的 Twitter 账户(@AndroidDev)。它非常活跃,经常会分享大量有用的信息。 5 如何在求职时脱颖而出?...这意味着许多公司还没有多少机会使用它,许多公司正在设法弄清楚如何在他们的应用中使用它。目前,很多工作都还没有这个要求。
一、函数的基本用法 函数这个词相信各位不会陌生,而Kotlin中也是使用了众多函数的,正所谓面向函数编程。...1.2 输入参数的格式 Kotlin的函数写法与Java的传统写法区别很大,刚从Java开发Android转Kotlin开发Android的朋友会不适应,但是后面你就会明白Kotlin的优势了,这也是Google...我这一顿操作的意义何在呢?不是说默认参数吗?请听我慢慢道来,Kotlin中引入了默认参数的概念,允许在定义函数时直接指定输入参数的默认值。...,Kotlin又引进了命名函数的概念,说的是调用函数时可以指定某个参数的名称及其数值,格式如“参数名=参数值”,演示代码如下: ?...10点 小写的hh 表示12小时制的两位小时数字,如06可同时表示早上6点与傍晚6点,容易产生歧义所以实际开发中很少用 小写的mm 表示两位分钟数字,如45表示某点45分 小写的ss 表示两位秒钟数字
那么,我们该如何在Android中应用这门新的语言呢?今天的这篇文章带你学习使用Kotlin开发Android应用,并对比我们传统语言Java,让你真真切切的感受到他的美和优雅。...好了,言归正传,Anko是Kotlin官方开发的一个让开发Android应用更快速更简单的Kotlin库,并且能让我们书写的代码更简单清楚更容易阅读。它包括多个部分,如下 ?...那么接下来,我们就通过代码来理解Kotlin语言开发Android的优势所在。...有时候写的是不是想吐,可能有些人说现在不是有一些注解的库,如butterknife,当我们使用注解时可以不用findViewById了,使用方式如下 ?...Anko在Kotlin代码中实现这个布局。
在 Room 2.4 中,对 Kotlin Symbol Processing (KSP) 的支持已经稳定。在我们针对 Kotlin 代码的基准测试中,KSP 相对 KAPT 有两倍的速度提升。...如果想要了解如何在各种 SharedPreferences 的应用场景中使用这一强大的替代方案,您可以查看 MAD Skills: DataStore 系列文章和视频,其中包含了如何测试应用中 DataStore...如需了解有关 Paging 3 的更多信息,请参阅 Android 开发者网站中全新简化版的教程: Paging Basics Codelab,它描述了如何在包含列表的应用中集成 Paging 库。...架构库指南 针对我们的核心架构库如何协同使用这一问题,如您想要了解更多信息,可以观看我们的视频与 文章 合集,这其中涵盖了现代 Android 开发最佳实践系列内容——MAD Skills: 架构。...JankStats 还提供了超越平台内置功能的其他能力: 帮助定位丢帧原因的启发式算法、在报告中提供了额外上下文的界面状态,以及可以用于上传数据以进行分析的报告回调。
简而言之,这是一次不容错过的升级!✨ 围绕这些主题,Beta 版中还有很多功能和改进供您体验,请继续阅读本文或观看下面的演讲,以了解更多亮点。...无论您的应用是完全用 Compose 编写的布局,还是混合使用了 Compose 和 View,Layout Inspector 都能帮助您了解布局如何在设备或模拟器上呈现,获得丰富的细节 (如传递给每个...这些扩展控件将为开发者提供强大的工具来在 Android studio 中测试应用,如导航回放、虚拟传感器和快照。...Kotlin 和原生内存分配。...观看以下演讲视频以了解最新功能,并获得有关如何使用 Android Studio 的技巧和心得: Android 开发工具更新一览 Android Kotlin 最新状态 设计工具更新一览 Android
如何在 Android Studio 中使用 Kotlin? Android Studio 3.0 及更高版本全面支持 Kotlin。...详情请参阅 "Kotlin 使用入门"。 如何在 Android Studio 中调试 Kotlin 代码? Kotlin 代码的调试方法与 Java 代码相同。您不需要执行任何其他操作。...我可以在 Kotlin 中调用 Android 或其他 Java 语言库的 API 吗? 可以。Kotlin 与 Java 语言具有互操作性。...如何将 Kotlin 代码添加到我的新项目中? 当您在 Android Studio 中创建新项目时,只需选中 Include Kotlin support 复选框即可。...Kotlin 在 Android 开发中能实现协程吗?能实现异步/等候吗? Kotlin 协程目前应该可以实现,但这些特性还处于实验设计阶段。
借助配套的 UI 模板,Slices 能够将应用内容以高动态、富交互的形式插入到多个使用场景中,比如 Google Search 和 Assistant。请进一步了解如何在应用中构建 Slices。...请阅读《Android P 中的新文本特性》,了解更多有关放大镜以及文本特性的相关信息,如 Precomputed Text、行高以及基线文本对齐。...这可以让您在应用中使用室内定位功能。...Kotlin 优化 Kotlin 是 Android 开发的一等编程语言,如果您还未尝试,还在等什么呢?...我们在 Kotlin 性能方面进行了长期资源投入,同时持续加大对 Kotlin 的支持,如优化 Kotlin 代码性能。
重构 Plaid 的目标不仅是修复内容源 API 接口的失效问题,更重要的是应用最新的 Android Jetpack、Kotlin 语言特性和 Android 应用架构指南,因此 Plaid 2.0...Plaid 1.0 起初,我们定位 Plaid 将是一款 Material Design 样例应用,我们希望通过它展示 Material Design 的可以为交互体验带来的改进。...随着 Android 平台不断的改进以及 Kotlin 在全球开发者社区的迅速流行,达到这个目标变得更容易了。...使用 Kotlin (视频) Kotlin 语言有诸多特性 (如协程的 suspend 函数、扩展函数和高阶函数等) 可以帮助开发者更好的构建应用。.../plaid 关于 Kotlin 的更多知识,可以参考我们之前发布的内容《31 天,从浅到深轻松学习 Kotlin》,或 点击这里 访问 Android 开发者文档网站。
重构 Plaid 的目标不仅是修复内容源 API 接口的失效问题,更重要的是应用最新的 Android Jetpack、Kotlin 语言特性和 Android 应用架构指南,因此 Plaid 2.0...Plaid 1.0 起初,我们定位 Plaid 将是一款 Material Design 样例应用,我们希望通过它展示 Material Design 的可以为交互体验带来的改进。...随着 Android 平台不断的改进以及 Kotlin 在全球开发者社区的迅速流行,达到这个目标变得更容易了。...使用 Kotlin (视频) Kotlin 语言有诸多特性 (如协程的 suspend 函数、扩展函数和高阶函数等) 可以帮助开发者更好的构建应用。.../pla… 关于 Kotlin 的更多知识,可以参考我们之前发布的内容《31 天,从浅到深轻松学习 Kotlin》,或 点击这里 访问 Android 开发者文档网站。
还有信息太多的情况下,可以调整Log Level为Error,让系统只输出严重问题日志。或者直接搜索 “FATAL EXCEPTION”,直接定位到崩溃异常。...如图,模拟一个崩溃日志: 异常日志 注意,Android应用编译,Kotlin代码会被编译为和Java代码同样的低级字节码,所以即使是用kotlin来编写代码,会看到java.lang异常也不用觉得太奇怪...地址:https://jaeger.itscoder.com/android/2016/02/14/android-studio-tips.html 小总结: 打印Log日志的优点是,在同一日志记录中可以看到多处的栈跟踪信息...^_^ 挑战练习:探索布局检查器 Tools → Layout Inspector 可用交互的方式检查布局文件,研究它是如何在屏幕上渲染显示的。...挑战练习:探索Android性能分析器 Android Studio 3.0 及更高版本中的 Android Profiler 取代了 Android Monitor 工具。
领取专属 10元无门槛券
手把手带您无忧上云