“ 基于 Kotlin[1] 语言仿写「开眼 Eyepetizer[2]」的一个短视频 Android 客户端项目,采用 Jetpack[3] + 协程[30]实现的 MVVM 架构。”...图片加载不出来?附上博客地址[6] 下载体验 长按图片,识别二维码安装: ?...https://www.pgyer.com/eyepetizer 点击下载 eyepetizer.apk[7] 主要功能 观看优质高清短视频与评论。 浏览社区图文与视频创作。...使用工具 Vector Asset Studio[8] 图标制作 iconfont[9] 图标/设计 Postman API[10] 调试工具 Charles API[11] 数据抓包 PxCook[12...^_^ 致谢 Retrofit[14] 网络请求框架封装 Glide[15] 图片加载 OkHttp[16] 网络请求 Gson Gson[17] 解析 Glide Transformations[18
Flow 结合 Retrofit2 + Room 的混合使用 Kotlin Flow 与 LiveData 的使用 使用 Coil 加载图片 使用 ViewModel、LiveData、DataBinding...Kotlin Flow 是什么? Kotlin Flow 解决了什么问题? Kotlin Flow 如何在 MVVM 中使用?...Kotlin Flow 如何与 Retrofit2 + Room 混合使用?...Kotlin Flow 在 Repositories 中的使用 如果我们想在 Flow 中使用 Retrofit 或者 Room 进行网络请求或者查询数据库的操作,我们需要将使用 suspend 修饰符的操作放到...,也会加入更多的 Jetpack 成员,可以点击下方链接前往查看。
本文完成后的效果图: 正文 每当一个新的框架出来,都会解决掉上一个框架所存在的问题,但同时也会产生新的问题,瑕不掩瑜,可以在实际开发中,解决掉产生的问题,就能够更好的使用框架,那么MVI解决了MVVM...→ Kotlin data class File from JSON,如图所示: 在出现的弹窗中复制通过网页请求得到的JSON数据字符串,如图所示: 这里如果觉得看起来不舒服,点击 Format...这里对_state首先赋值为Loading,表示加载中,然后进行一个网络请求,结果就是成功或者失败,如果成功,则赋值Wallpapers,View中收集到这个状态后就可以进行页面数据的渲染了,请求失败,...initView()函数中是控件的一些配置,比如给RecyclerView添加布局管理器和设置适配器,给按钮添加点击事件,在点击的时候发送意图,发送的意图被MainViewModel中mainIntentChannel...observeViewModel()函数中是对状态的收集,在状态为Loading,隐藏按钮,显示加载条,然后网络请求会有结果,如果是成功,则在UI上隐藏按钮和加载条,显示列表控件,并添加数据到适配器中,
最y: 1、对着项目一通问,包括项目结构、自己参与的部分等等 2、OKhttp原理,链式调用、链接复用等 3、对exoplayer、ijkplayer的了解,如果在视频未播放时就调用暂停,会有什么问题?...4、Glide、okhhtp、retrofit等三方库的原理,简单阐述 5、视频播放器封装、弹幕的实现,自己项目的结构和路由框架、新闻列表的实现、mpv的实现等 6、android内存泄露有哪些?...13、一个网格页面、显示9张图片,弱网情况下,滑到下一页,怎么去调度线程加载下一页面的图片?...函数式和面向对象比较 17、商城里有图片、文档、视频,字段有(id,name,type,pic,author,price),选择购买后在我的订单页可以查看,可选择下载至手机本地,给出客户端实现方案、写关键代码...,给出数据库实现,写关键sql语句 18、文件中每行有一个手机号对应用户信息,给定手机号查找出对应信息,如果手机号排序了,怎么查?
Kotlin 拓展函数怎么实现的?基于什么原理。 Kotlin 属性委托怎么实现的?基于什么原理。 简述 SharePreferences 以及过程中遇到的问题。...Kotlin 协程有用过吗?用在什么场景? 协程是个什么东西? 有了解过协程如何切换线程原理吗? Retrofit 和 OkHttp 是什么关系?...Retrofit 是如何通过注解来方便我们 api 调用?基于什么原理。 JetPack 用过哪儿些? ViewModel 用来做什么的? ViewModel 如何实现生命周期绑定?...假设后端接口列表中返回了超大图片,你是如何处理优化并正常显示列表中的? 使用过 Jetpack 的哪儿些东西,你对它评价怎么说? Jetpack Compose 了解过么?简单谈下个人理解。...或者点击 【这里】 查看获取方式。
△ 在 MessagingStyle 通知中,您可以显示对话和智能回复 (左) 或添加图片和表情 (右) 文本放大镜 Android 9 中添加文字放大镜工具 (Magnifier widget),以提升文本选择方面的用户体验...HEIF 是目前比较流行的一种的压缩格式,它改善了图片的压缩效果,并减少了图片的储存空间以及网络流量。引入平台支持后,开发者能更加方便地从后台服务器传输并使用 HEIF 图像。...一旦确定您的应用与该数据格式兼容,可用于分享或者显示,不妨尝试将 HEIF 设定为应用内图片的储存格式。...我们在 Kotlin 性能方面进行了长期资源投入,同时持续加大对 Kotlin 的支持,如优化 Kotlin 代码性能。...点击收看视频或者前往 Google I/O Android 播放列表,了解 Android 9 为开发者准备的精彩新亮点。
implementation 'com.squareup.retrofit2:retrofit:2.9.0’ 官网:http://square.github.io/retrofit/ GitHub:https...FragmentRigger/wiki/%E9%A6%96%E9%A1%B5 GitHub:https://github.com/JingYeoh/FragmentRigger GSYVideoPlayer(视频播放器...Search in repositories 点击install开始安装,安转成功之后会提示restart重启as,重启就好了。...://github.com/square/leakcanary Dart Dart开发插件 Flutter Flutter开发插件 Json To Kotlin Class json转kotlin bean...api=jdk_7u4 在线文档-Android https://developer.android.google.cn/develop/index.html 在线文档-Kotlin https://github.com
1、新建工程 我们新建一个工程,点击Include kotlin support 如图: ?...如显示隐藏进度条,和显示文字消息 */ interface View : IBaseView { fun showDayCalentarData(calentarDayBean...不可错过的 Kotlin 资源列表 https://github.com/KotlinBy/awesome-kotlin 这是一个比较完整的 Kotlin 资源列表,包括各种实用链接、书籍、库、框架和视频等...二、视频资源 Kotlin 介绍 https://www.youtube.com/watch?...如 Kotlin 中的面向对象以及像 lambda 表达式的功能编程。
前面我们使用Java来运用JetPack中的一系列组件,又使用kotlin运用这些组件实现了一系列功能: kotlin--Flow文件下载 kotlin--Flow结合Room运用 kotlin--Flow...结合retrofit运用 kotlin--StateFlow运用 kotlin--SharedFlow运用 接着,Jetpack的Paging3中,我们使用的语言是kotlin,相信通过这些项目的对比,...Jason老师的辛勤付出,动脑学院在B站上也有投稿koltin基础的视频,通过视频可以快速学习和上手kotlin 今天来综合使用各种组件,搭建最新MVVM项目框架,利用Paging3实现列表功能,Paging3...就可以将2.中我们的MovieEntity转换为MovieItemModel了 class MovieRepositoryImpl( private val api: MovieService,...progress.isVisible = data is LoadState.Loading // 加载失败,显示并点击重试按钮
、Retrofit等等,可谓是百花齐放、百家争鸣。...智能手机普遍提供了定位功能,可是系统自带的定位服务只能获得用户所在的经纬度信息,而这枯燥的经纬度数字令人不知所云,肯定要把经纬度转换为详细的地址信息才方便用户理解。...介绍完了网络图片的存取流程,最终的Kotlin编码一如既往地简单明了,下面展示了一个验证码动态显示的页面代码: class HttpImageActivity : AppCompatActivity()...,回到主线程把验证码显示在界面上 uiThread { finishGet(bitmap) } } } //在主线程中显示获得到的验证码图片 ...而且,短小精悍的Kotlin代码并未造成任何功能缺失,以上面的图片验证码页面为例,使用Java编码和使用Kotlin编码,最终的显示效果都如下图所示。 ? 点此查看Kotlin入门教程的完整目录
图片 作者 / Google 产品总监 Karen Ng Jetpack Compose 是一个现代化的 UI 工具包,旨在帮助开发者通过原生平台 API 简单快捷地在全 Android 平台构建精美应用...,它能大幅降低代码量并包含交互式工具,以及使用直观的 Kotlin API,为您的应用增添活力。...随着 app 状态的变化,需要更新 UI 层次结构来显示当前的数据。...示例应用 展示了如何在 Compose 嵌入一个 MapView 观看视频: 将 Compose 加入现有的应用:https://youtu.be/PjQdFmiDgwk 强大的工具 Android...或者直接进入 示例应用 并在 "Compose by Example" 中浏览这些应用: 观看视频: Compose 示例:https://youtu.be/DDd6IOlH3io 欢迎访问 Compose
这个库提供: - alpha 触摸动画 - 设置间隙角 - 动画期间自己适配文本域的位置 - 对每一个段设置描述并显示它 - 点击回调 - 点击特效 - 在饼图和环形图之间切换 - 绘制图表时的动画 它有很好的文档...下面的 gif 图片可以显示其直观的效果。 该项目包含了一个示例应用。文档对于入手来说足够丰富,而它是以 MIT 许可发行的。 8....12. kotlin-math https://github.com/romainguy/kotlin-math 这是使得图形数学算法写起来更轻松的 Kotlin API 的集合。...23. retrofit2-kotlin-coroutines-adapter https://github.com/JakeWharton/retrofit2-kotlin-coroutines-adapter...这是用于 Kotlin 协程的 Deferred 的实验性 Retrofit 2 CallAdapter.Factor。
个人简介 5 年工作经验,后将近三年技术栈野蛮生长(Flutter、微信小程序、PHP、H5、后台 Api、PS 等...) 96 非本非专,高中学历。...Kotlin 拓展函数怎么实现的?基于什么原理。 Kotlin 属性委托怎么实现的?基于什么原理。 简述 SharePreferences 以及过程中遇到的问题。...Kotlin 协程有用过吗?用在什么场景? 协程是个什么东西? 有了解过协程如何切换线程原理吗? Retrofit 和 OkHttp 是什么关系?...Retrofit 是如何通过注解来方便我们 api 调用?基于什么原理。 JetPack 用过哪儿些? ViewModel 用来做什么的? ViewModel 如何实现生命周期绑定?...页面中如何预防用户连续点击?如何在项目所有点击事件中使用呢? AOP 知道实现原理吗?适用于哪儿些场景。 动态代理的使用场景有哪儿些? AOP 主要解决哪儿些场景问题? 如何实现一个自定义进度条?
是怎么实现的 7.泛型是怎么解析的,比如在retrofit中的泛型是怎么解析的 8.mvp与mvvm的区别,mvvm怎么更新UI,databinding用得多吗,databinding的原理?...9.kotlin ?的原理 10.在项目中有直接使用tcp,socket来发送消息吗 11.如何在网络框架里直接避免内存泄漏,不需要在presenter中释放订阅 12.生命周期都是通过什么调用的?...2.视频播放,一个player怎么实现预加载,避免loading 2.webView加载本地图片,如何从安全方面考虑 3.http1.0,http1.1,http1.2有什么区别 4.https与http...Native 开发工具 Linux 编程 底层图片处理 音视频开发 机器学习 看视频进行系统学习 前几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统...以上这些资料都已打包整理完毕,点击我的GitHub可以看到全部内容。或者点击 【这里】 查看获取方式。
,请使用 module_[modulename]*的命名规则 * * [project.ext.dependVersion] 中创建各个依赖库的版本号控制,需在类库名称后增加‘_version’...以Deps结尾,原则上以类库功能分类,比如网络库,图片处理库 * 尽量不要以类库本身的名字命名依赖列表 * * 各个module中引用类库时尽量使用项目依赖列表中的项目,不要直接使用类库地址中的项目...= [kotlin_stdlib_jdk8: "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$dependVersion.kotlin_version" ]...这个接口我们就从网上找了一个关于手机号的省份的api (想和Gsonfromat一样把Json快速生成Kotlin的代码,推荐一个插件JsonToKotlinClass)这样就可以快速根据Json生成...mBinding.remote = mViewMode2 } } 我们可以看到 在Activity当中承担了请求网络的角色 但是 对于数据的处理并没有在这里体现,同时 我们可以看到对于点击的操作以及显示并没有出现在这里
我们运行项目,点击Profiler——Memory,就能看到以下图片了,一个正在运行的内存情况实时图: image.png 可以看到图片中有两个按钮我标出来了: 捕获堆转储文件按钮,也就是生成hprof...文件,这个文件会展示Java堆的使用情况,点击这个按钮后,AndroidStudio会帮我们生成这个堆转储文件并且进行分析。...所以我们打开HandlerActivity后,马上finish,然后点击GC按钮,再点击捕获堆转储文件按钮。...AndroidStudio会自动跳转到以下界面: image.png 可以看到左上角有一个Leaks,这就是你内存泄漏的点,点击就能看到内存泄漏的类了。右下角就是内存泄漏类的引用路径。...中的内部类与Java有什么不一样吗 其实可以看到,在上述的代码中,我都加了一句 btn2.setText("2222") 这是因为在kotlin中的匿名内部类分为两种情况: 在Kotlin中,匿名内部类如果没有使用到外部类的对象引用时候
重新点击,显示哪个?...17、说一下你所了解的设计模式有哪些 18、说下java中的线程创建方式,线程池的工作原理。 Kotlin Kotlin协程为什么能以同步代码写出异步逻辑?...5、网络封装框架:Retrofit实现原理 6、响应式编程框架:RxJava实现原理 7、图片加载框架:Glide实现原理 8、Glide如何确定图片加载完毕?...Android中开启摄像头的主要步骤 19. ViewPager使用细节,如何设置成每次只初始化当前的Fragment,其他的不初始化? 20. 点击事件被拦截,但是想传到下面的View,如何操作?...子线程对UI的操作方法 如何在应用程序远程调用中表明用户身份 单例模式、建造者模式、中介模式 手写中位数查找算法 三面 聊聊项目 Handler和Looper的底层结构 postRunnable方法的底层实现
因为workManager比service强大太多,它可以在应用程序退出或者其他原因中止后,依然执行(本地任务如:本地图片的读取展示)或者应用程序打开后继续执行任务(网络请求)。...我用一张图片说明以下: ?...所以这也是一种优化,可以为用户节约电量。...执行网络请求 */ private suspend fun retrofitRequest() : String { val retrofit = Retrofit.Builder...return jsonString } } 网络请求用的是kotlin中的协程,api接口是网络上随便找的。
早上跟同事丁教授来到会场准备停车的时候,发现Google把停车位置从之前的大空地转到不远处的大草地上了。停好车后,我们绕了一条小路快速向会场方向走去,突然发现路边有很多开了花的树,样子非常像椰菜花。...这块没有来得及整理,大家可以直接点击这里观看视频。我比较赞同Fei-Fei Li访谈中的一句话“机器的价值就是人的价值”,让机器为人类创建更多价值吧,AI时代已经来临。...主要介绍可以通过使用Vulkan API(一个低开销、跨平台的二维、三维图形与计算的应用程序接口)来显示控制Command Buffer的提交时机等来让CPU和GPU执行更均衡。...通过这种方式解决后,图片加载时间从233ms下降到30ms,提升非常明显。 ? 接着介绍如何让动画效果更加流畅。...比如一个正常的页面,可以先将图片在worker线程离屏绘制好,然后再提交到真正的屏幕上,提升绘制性能。 ? 从数据上来看,离屏渲染后,内核线程的绘制渲染的耗时提升接近10倍。 ?
②实现BasePullToRefreshView.OnStateChangeListener监听(重点,主要是进行状态切换后的相关操作逻辑) 1.在构造函数中设置 onStateChangeListener...,然后在onSatae中根据状态对加载和没有跟多显示提示进行显示隐藏操作。...设置断网显示的图片 disConnectText 设置断网显示的文本 tipTextSize 文本字体大小 tipTextColor 文本字体颜色 (1)定义一个通用布局 <com.youngmanster.collection_kotlin.base.stateview.StateView...做出对应的显示和操作(例如弹框提示跳转到设置页面或者toat提示)。...显示弹框 dismiss 弹框销毁 setAllCancelable 点击返回键和外部不可取消 setOnlyBackPressDialogCancel 点击返回键可以取消 setDialogInterval
领取专属 10元无门槛券
手把手带您无忧上云