简介 一般情况下, Composable 是以参数形式向下流戏整个界面树,传递给每个可组合函数。 这会使可组合项的依赖项变为显式依赖项, 对于广泛使用的常用数据(如颜色或类型样式),这可能会很麻烦。 同时也会使 Coposable 函数的形参数量膨胀。 CompositionLocal 是 用于在 Composable 函数之间传递和共享数据。 它…
RecyclerView A flexible view for providing a limited window into a large data set. 一个灵活的view, 用于在有限的窗口空间中展示大量的数据集。 RecyclerView 用来设计于在有限的窗口空间加载大量的数据,屏幕本身就是有限的窗口,从这个角度看,Android…
出发点 音视频这个行业我还是比较看好的。 首先,音视频相关的知识及技术与图形学也相关,是我感兴趣的方向。 其次,这是一个趋势,声音和图像的传播必将是主流。 然后,这几年的开发我走得是广度优先的路线,接下来该深度优先发展一波了,因此,计划拿2年的时间,将音视频技术学到高级水平。 学习背景 第1章 课程导学与准备工作 本章主要介绍为何要带大家学习一个音…
是什么 官方文档 开始为了解决Fragment导航困难的问题, 现在也加上了Activity的导航, 看完Navigation, 还是得再看一看Arouter。 Navigation不仅仅是解决跳转困难的问题, 而是与Toolbar, DrawerLayout, BottomDrawerLayout 结合起来,朝图形化设计方向行进。类似xcode的…
背景 这两年主要玩Android系统与网络,对于应用层的开发有些陌生。然而现在终究是要靠应用技术吃饭,因此,借着重新学习Jetpack,做自己项目的机会,将Android应用层开发技术学习的过程记录下来, 后续再归纳整理成可读性更高的blog。 主要方针是,首要先学会如何使用, 初步理解原理,阶段性的整理成blog。 积累 AppCompatAct…
dagger2 是什么 Dagger2 是一个依赖注入框架, hilt 是为了简便dagger的使用, 省去一些模板代码。 现在使用一个框架默认最简的操作都是使用注解了么? google Android 依赖注入文档 官方user guide 为什么 dagger 哲学 尽可能地将重复的事情自动化,这也是编程的本质 减少模板代码地编写,专注于不同部…
介绍 官方文档 版本信息 dependencies { def lifecycle_version = "2.2.0" def arch_version = "2.1.0" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_versi…
摘要 VoLTE(Voice-over-LTE)是LTE移动网络的指定语音解决方案,其全球部署正在进行中。它将呼叫服务从传统的电路交换电信电话重塑到分组交换Internet VoIP。在这项工作中,我们在全面推出VoLTE安全之前进行了首次研究。我们在其控制平面和数据平面功能中发现了几个漏洞,这些漏洞可被利用来破坏运营网络中的数据和语音。特别是,我…
疑问 build.gradle 脚本中的那些DSL语言从哪里学习? 有一个博客解答了我的疑问, 但是该博客是解决了查看源码的问题。系统的学习还是得去看gradle文档。 gradle dsl document gradle 与 groovy gradle是使用groovy编写的, groovy 是脚本语言, 兼容java, 可以直接使用jdk的类。…
介绍 官方文档 开源的好处就是可以衍生出很多“项目官方”精力之外的优秀框架,而一些优秀框架就反哺官方团队再次集成优化。 Jetpack就是官方吸收一些优秀的框架的思想, 然后集成到官方版本并再次优化, 继而试图统一规范? 刚好我个人的项目还在初期, 所以, 使用Jetpack 来继续接下来的开发,是一举多得。 架构 jetpack 目前(2021/…