- 博客(7)
- 收藏
- 关注
原创 Dagger Hilt - Android官方推荐的依赖注入框架
Dagger HiltAndroid端有不少DI框架可供选择 – 例如用于控件注入的ButterKnife、用于Kotlin的Koin等,但唯有Dagger才称得上是谷歌官方认可的DI方案。Dagger最早由Square开发,后被谷歌fork并升级为Dagger2,成为了Android官方推荐的DI最佳实践。Dagger较好地实现了JSR-330规范,虽然功能强大,但是无法很好地应对Android项目。谷歌随后推出dagger-android(及dagger-android-support),试图通.
2020-06-25 23:55:30 7612 3
原创 透过GoogleI/O看Android11以及Jetpack的最新进展
今年因为疫情原因Google I/O 2020被迫取消了,但实际上Google官方仍然通过Youtube放出了原本为I/O准备的各种干货内容,从某种程度上说本届IO如期在Youtube上举办了。那么本届IO中有哪些值得关注的内容呢?https://www.youtube.com/watch?v=bAdRKQNbLmQ&list=PLWz5rJ2EKKc9hqKx4qZWolQxy59Bt20t_# Android11Android11目前处于Beta版本,提供了很多新的实用的API公开发.
2020-06-15 01:24:38 1434 1
原创 轻松玩转ConstraintLayout(二)示例篇
上一篇介绍了ConstraintLayout的基础知识,本篇会尝试使用ConstraintLayout实现一些常用布局效果。我会根据子View的个数来举例各种常见的场景单一控件居中上下左右全部居中,通过基础篇介绍的位置属性实现<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/ap
2020-06-13 22:13:28 585
原创 轻松玩转ConstraintLayout(一)基础篇
ConstraintLayout自从2016年Google/IO推出以来,已逐渐成为Android开发的首选布局。它与RelativeLayout相似但是性能方面更优,而且AndroidStudio提供LayoutEditor可以达到像iOS上AutoLayout一样的开发体验。Our performance comparison shows that ConstraintLayout performs about 40% better in the measure/layout phase than
2020-06-13 22:10:53 891
原创 MotionLayout实现无限滑动ViewPager
ConstraintLayout2.0带来了MotionLayout ,MotionLayout是ConstraintLayout的子类,它具有ConstraintLayout的所有属性,用来处理两个ConstraintSet之间的切换,并且可以通过Transition定义两个ConstraintSet之间的切换动画。模拟ViewPager使用MotionLayout可以模拟实现一个无限Item的ViewPager切换效果:实现思路定义三个子View,分别代表ViewPager当前显示中Vie
2020-06-06 15:38:00 1066
原创 Android Studio 4.0 新功能之 AndroidKotlin Live Templates
最近 Android Studio 4.0 稳定版本正式发布,其中增加了适用于Kotlin的Android Live TemplatesLive Templates通过 Preferences > Editor > Live Templates 打开配置页面相对于Android Studio 3.6 多了以下几组Kotlin相关的Android模板AndroidCommentsKotlinAndroidKotlinAndroidLogKotlinExamplesto.
2020-06-05 15:32:27 805
转载 解密Kotlin协程的suspend修饰符
Kotlin 协程中引入了 suspend 修饰符和挂起函数的概念,Kotlin 编译器将会为每个挂起函数创建一个状态机,这个状态机将为我们管理协程的操作。协程协程简化了 Android 平台的异步操作。正如官网《利用 Kotlin 协程提升应用性能》所介绍的,我们可以使用协程管理那些可能阻塞主线程的异步任务,更奇妙的是可以使用命令式代码替换那些基于回调的 API:// 简化的只考虑了基础功能的代码fun loginUser(userId: String, password: String, u.
2020-06-01 20:50:25 8684 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人