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

学习笔记 | Android Studio安卓开发入门经验总结 干货

接着,Minimum SDK指的是本项目所支持的最小安卓SDK,点击“Help me choose”会出现如下界面帮助选择合适的安卓最小SDK版本: 图1 安卓API版本选择帮助界面 其中CUMULATIVE...DISTRIBUTION表示如果支持该安卓版本以上设备,则预估能支持安卓设备占所有安卓设备的百分比。...版本,构建脚本的仓库,依赖包仓库。...3.3.5 回收型列表视图RecyclerView的使用 RecyclerView是基于viewholder的回收理念在ListView上的一个升级版,功能强大,当然在不需要进行回收的场景就当然不要用了...3.3.6 适配器理念Adapter 如上所说,列表视图需要一个中间件:适配器,来将数据适配到布局上,这是一个从结构化的数据到结构化的视图的中间过程,纵观整个项目开发,可以发现有很多地方在使用这样的理念

2.5K60

划重点 | Android Jetpack 三大重要更新!

下面的例子展示了如何利用 App Startup 来优化 WorkManager 的初始化时间,底层的实现是 App Startup 使用了一个共用的 ContentProvider,并代替了 WorkManager...请通过我们的文章《期待已久的动态数据库工具终于来了!》了解更多关于这个工具的内容以及如何使用它。...我们同时还添加了对于内存分配的追踪,以便于开发者可以优化内存分配和垃圾回收所消耗的时间。...使用这个 API 的时候,如果网站支持深色主题,WebView 会自动地使用深色主题渲染该站点。如果网站不支持深色主题,这个 API 会强制转换其中的一些颜色。...新版本添加了许多新功能,包括视图组件的互通性、更多的 Material UI 组件、支持深色主题、新的 UI 测试和动画 API、对于 ConstraintLayout 的支持、优化状态管理、集成可观察的数据流和

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

    Android Sdk版本、Support包版本及常用框架最新版本汇总

    数据来源于官方网站 特别注意 Android 支持库的最新版本是28.0.0,这是最后一个google发布的支持库版本,现在google已将所有support包下的库都迁移至androidx包下面,...Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库,所有的support库现在都属于Jetpack开发工具的一部分,还包括一些非常实用的开发框架,可以说只使用Jetpack就能满足绝大部分的应用开发需求...androidx.fragment.app: 1.2.0 fragment支持库 androidx.cardview:cardview: 1.0.0 卡片式视图 androidx.constraintlayout...: 2.3.0 导航框架 androidx.recyclerview:recyclerview: 1.1.0 强大的列表视图 androidx.room:room-runtime: 2.2.5 数据库ORM...多视图容器 androidx.work:work-runtime: 2.4.0 后台管理框架 4.常用框架最新版本 最后编辑时间: 2021-1-17 框架名 最新版本 作用 Butter Knife

    2.8K30

    Android之RecyclerView介绍

    image.png RecyclerView 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,更加强大和灵活。...RecyclerView是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字Recyclerview即回收view也可以看出。...RecyclerView 支持 线性布局、网格布局、瀑布流布局 三种,而且同时还能够控制横向还是纵向滚动。...使用 RecyclerView 基础使用关键点同样有两点: 继承重写 RecyclerView.Adapter 和 RecyclerView.ViewHolder 设置布局管理器,控制布局效果 ecyclerView...实战例子 使用RecyclerView,当前版本需要直接在xml文件中定义: androidx.recyclerview.widget.RecyclerView android

    77720

    在 Android 应用中使用矢量资源

    使用 AndroidX 加载 当加载 drawables 时,你需要使用 AndroidX 的方法,因为它已经提供了对矢量资源的支持。...在内部,这些 AppCompat 视图使用 AppCompatResources 来支持加载矢量的加载。...AndroidX 支持显式渲染 元素(也包括动画向量(animated-vector)和动画选择器(animated-selectors),但我们今天主要讨论静态 vectors)。...例如,虽然 AndroidX 对 fillType="evenOdd" 支持的很好,但是在 API 21-23 设备上不使用 AndroidX 支持向量是无法理解这个属性的。...使用 AndroidX 支持既可以在更多平台版本和后端功能上使用矢量资源,也可以让你接收任何未来的更新。 现在我们已经理解了为什么以及如何使用向量,下一篇文章将深入探讨如何创建它们。

    1.5K30

    生命周期感知 Lifecycle

    自定义生命周期所有者 支持库 26.1.0 以及更高版本中的 Fragment 和 Activity 已经实现了 LifecycleOwner 接口。...尝试编写数据驱动的 UI ,其中 UI 控制器的职责是在数据更改时更新视图,或者将用户操作通知给 ViewModel 。 将数据业务逻辑放在 ViewModel 类。...但并不是说让 ViewModel 类去获取数据,相反的应该让其他合适的组件去获取数据,ViewModel 类只是把结果提供给 UI 控制器。 使用数据绑定库维护视图和 UI 控制器的整洁。...这让视图更具声明性,并减少在 UI 控制器的更新代码。如果你倾向于使用 Java ,可以使用 Butter Knife 减少重复代码。...如果 ViewModel 生命超过 Activity (配置发生更改的情况下)可能会造成 Activity 泄漏,并且不被垃圾处理器回收。

    1.2K20

    Android 上一次编写,随处测试

    今天,我们很高兴地宣布 v1.0.0 最终版本和 Robolectric v4.0 一起发布。作为 1.0.0 版本的一部分,所有 AndroidX Test 现在都是开源的。...它包括现有的 Android JUnit 4 支持,Espresso 视图交互库和几个新的密钥测试 APIs。这些 APIs 可用于在真实和虚拟设备上进行仪器测试。...ActivityScenario 处理与系统的所有同步,并为你应测试的常见场景提供支持,例如你的应用如何处理被系统销毁和重建。...我们使用 Espresso 视图交互库将文本输入到两个文本字段中,然后点击 UI 中的按钮。...要使用 Robolectric 模拟器在本地 JVM 上运行测试用例,请将测试用例放在 “test” 资源根目录中,将以下代码添加到 gradle.build: testImplementation(“

    1.5K20

    回顾 | Android Jetpack 重要更新

    下面的例子展示了如何利用 App Startup 来优化 WorkManager 的初始化时间,底层的实现是 App Startup 使用了一个共用的 ContentProvider,并代替了 WorkManager...请通过我们的文章《期待已久的动态数据库工具终于来了!》了解更多关于这个工具的内容以及如何使用它。...我们同时还添加了对于内存分配的追踪,以便于开发者可以优化内存分配和垃圾回收所消耗的时间。...使用这个 API 的时候,如果网站支持深色主题,WebView 会自动地使用深色主题渲染该站点。如果网站不支持深色主题,这个 API 会强制转换其中的一些颜色。...新版本添加了许多新功能,包括视图组件的互通性、更多的 Material UI 组件、支持深色主题、新的 UI 测试和动画 API、对于 ConstraintLayout 的支持、优化状态管理、集成可观察的数据流和

    27040

    实战 | 认识 RecyclerView

    当视图滑出屏幕时,RecyclerView 会复用它并且填充新的数据。由于它是通过回收已有的结构而不是持续创建新的列表项,所以它可以有效提高应用的时间效率和空间效率。...粉红色的方格表示屏幕上正在显示的表项,黄色的方格表示屏幕可视范围之外的表项是如何被回收并转为新的视图 为什么您需要使用 RecyclerView 呢?...,它支持纵向滑动的列表和横向滑动的列表,以及交错布局的列表和网格布局的列表。...随着用户滑动屏幕,ViewHolder会被回收 (使用新数据进行填充),已有的表项会在一端消失,并且在另一端显示一个新的表项。...该视图使用前面我们创建的用于显示文本的布局。

    1.3K30

    实现边到边的体验 | 让您的软键盘动起来 (一)

    除此之外还有软键盘,有时候也叫 IME (输入法编辑器),这是另外一个我们需要了解的系统 UI 。 应用如何实现边到边?...在 WindowCompat 中,我们还有一个 Jetpack 版本的该函数,androidx.core 库的 v1.5.0-alpha02 版本里也包含了这个函数。 以上就是第二步的改动。...我们稍后还会展示如何使用 OR 位运算来查询结合到一起的类型。...应用可以从任何视图获得一个控制器,然后我们就可以通过传入 IME 类型,并执行 show() 或者 hide() 函数来实现显示或隐藏软键盘: val controller = view.windowInsetsController...AndroidX 中的 WindowInsetsController? 可惜的是这个 API 的 Jetpack 版本还没有上线,而我们正在加紧准备,敬请关注。

    35720

    浅试Android开发

    ,新版本没有很复杂的配置选项。...所以摒弃之前手动配置java环境的方法,直接使用scoop解决这一切,包括java的安装和java版本管理。直接看下面几个指令即可,用过其他包管理工具的话直接就明白了。...这个文件包含了应用的包名、版本信息、权限声明、应用组件(如活动、服务、广播接收器和内容提供者)的注册,以及其他重要的配置信息。此处提到了一个重要概念,即活动(Activity)。...但现在好像都更推荐使用Jetpack Compose。主要原因是Hetpack Compose支持响应式编程,能够自动根据数据变化更新界面,简化了手动更新UI的过程。...,所以用-s指定设备经检验,debug版本的app在手机上也可以正常安装使用。

    9520

    Now in Android #15 —— 最新 Android 知识分享

    四月初很多 AndroidX 库都发布了版本,包括以下 Stable 版本: ExifInterface 1.2.0 ,支持向 PNG 图片写入 EXIF 元数据,对 WebP 读写 EXIF 。...向 AndroidX 迁移 Nick Anthony 发布了一篇关于如何从 Support 库迁移到 AndroidX 的文章,地址如下: https://medium.com/androiddevelopers...大家肯定都了解了如何在 ViewModel/LiveData/Lifecycle 中正确的使用协程,使得在恰当的情况下可以取消协程,比如用户离开当前页面。...但是当我们就是需要做一些长期的任务,即使用户离开当前页面也不需要取消,那么应该如何处理呢?这时候就需要 自定义作用域 。具体的的实现可以阅读原文,或者等待我的译文。...在 4.0 中,支持视图的 3D 展示,视图实时更新,直接跳转到视图声明处。我也写了一篇文章进行介绍: Layout Inspector 支持 3D 视图了!

    99730

    ViewBinding 与 Kotlin 委托双剑合璧

    ViewBinding 是 Android Gradle Plugin 3.6 中新增的特性,用于更加轻量地实现视图绑定(即视图与变量的绑定),可以理解为轻量版本的 DataBinding。...ViewBinding 是 Android Gradle Plugin 3.6 中新增的特性,用于更加轻量地实现视图绑定(即视图与变量的绑定),可以理解为轻量版本的 DataBinding。...答:Activity 实例和 Activity 视图的生命周期是同步的,而 Fragment 实例和 Fragment 视图的生命周期并不是完全同步的,因此需要在 Fragment 视图销毁时,手动回收绑定类对象...| Fragment 核心原理 & 面试题 (AndroidX 版本)")") 总之,在视图销毁但是控制类对象实例还存活的时机,你就需要手动回收绑定类对象,否则造成内存泄露。...1、创建和回收 ViewBinding 对象需要重复编写样板代码,特别是在 Fragment 中使用的案例; 2、binding 属性是可空的,也是可变的,使用起来不方便。

    1.7K20

    由浅入深,聊聊 LeakCanary 的那些事

    LeakCanary 版本:2.10本篇定位 中等,将从背景到使用方式,再到源码解析,尽可能全面、易懂。基础概念在开始之前,我们还是要解释一些常见的基础问题,以便更好的理解本篇。什么是内存泄漏?...;androidx.fragment.app.FragmentManager;上述版本,经历过的开发同学相必都很清楚,过往的教训,这里就不多提了。...,用于拦截所有根视图的创建,具体使用了 curtains 库实现。...// 并且调用了基类的 WeakReference(referent, referenceQueue)构造器 // 这样的话,弱引用在被回收之前会出现到 referenceQueue 中...RootViewWatcher(RootViewWatcher) 使用 **curtains** 库监听所有根 View 的创建与销毁,并初始化了一个 `runable` 用于监听视图是否泄漏。

    47340

    Android 面试题:为什么 Activity 都重建了 ViewModel 还存在?—— Jetpack 系列(3)

    5、WorkManager:加强对后台任务的支持 6、Compose:新一代视图开发方案 ---- 1....因此,我们使用 ViewModel 来承担界面控制器的职责,并且配合 LiveData / Flow 实现数据驱动。...例如: 方法 1: 在 ViewModel#onCleared() 中通知数据层丢弃对 ViewModel 回调监听器的引用; 方法 2: 在数据层使用对 ViewModel 回调监听器的弱引用(这要求...ViewModel 必须持有回调监听器的强引用,而不能使用匿名内部类,这会带来编码复杂性); 方法 3: 使用 EventBus 代替回调监听器(这会带来编码复杂性); 方法 4: 使用 LiveData...又由于内存空间相对较大,因此可以存储大数据,但会受到内存空间限制; 2、onSaveInstanceState() :使用场景针对于应用被系统回收后重建时对数据的恢复,由于应用进程在这个过程中会消亡,因此不能选择内存存储而只能选择使用持久化存储

    1.2K20

    Android Studio 3.2新功能特性

    导航编辑器 新的导航编辑器与Android Jetpack的导航组件集成,为创建应用的导航结构提供图形视图。导航编辑器简化了应用内目的地之间导航的设计和实现。...要了解更多信息,请阅读 导航编辑器文档。 AndroidX重构 作为Jetpack的一部分,我们正在使用androidx命名空间将Android支持库重构为新的Android扩展库。...android.enableJetifier:设置true为该标志时,表示您希望获得工具支持(通过Android Gradle插件)自动将现有的第三方库转换为与AndroidX相同的库。...布局编辑器中的示例数据 许多Android布局具有运行时数据,这使得在应用程序开发的设计阶段难以可视化布局的外观和感觉。您现在可以在布局编辑器中轻松查看您的视图预览,其中包含示例数据。...要开始使用,请右键单击项目文件夹并选择New > Other > Slice Provider。 要了解更多信息,包括如何测试Silces交互,请阅读Silces入门指南。

    5.5K10

    由浅入深,聊聊 LeakCanary 的那些事

    LeakCanary 版本:2.10 本篇定位 中等,将从背景到使用方式,再到源码解析,尽可能全面、易懂。 基础概念 在开始之前,我们还是要解释一些常见的基础问题,以便更好的理解本篇。...; androidx.fragment.app.FragmentManager; 上述版本,经历过的开发同学相必都很清楚,过往的教训,这里就不多提了。...,用于拦截所有根视图的创建,具体使用了 curtains 库实现。...// 并且调用了基类的 WeakReference(referent, referenceQueue)构造器 // 这样的话,弱引用在被回收之前会出现到 referenceQueue...RootViewWatcher(RootViewWatcher) 使用 curtains 库监听所有根 View 的创建与销毁,并初始化了一个 runable 用于监听视图是否泄漏。

    33420

    可折叠设备的桌面模式

    要使用这些库,您必须将 Google Maven 库添加到项目中,并且声明相关依赖: dependencies { ... // 成文时使用如下的版本号,Exoplayer 最新版本号详见...首先考虑视频播放器 Activity 的布局,其根元素是包含了三个子视图的 MotionLayout。...版本开始,您可以使用 window-java 这个工具,它提供一系列对 Java 友好的 API 来注册或是取消注册回调函数,或是使用 window-rxjava2 以及 window-rxjava3...viewLocationInWindow[0], -viewLocationInWindow[1]) return featureRectInView } 总结 在本文中,您学习了如何通过实现支持桌面模式的灵活布局来改善可折叠设备上媒体应用的用户体验...您的反馈对我们非常重要,感谢您的支持!

    2.4K30

    Android开发笔记(一百八十一)使用CameraX拍照

    常言道,眼睛是心灵的窗户,那么相机便是手机的窗户了,主打美颜相机功能的拍照手机大行其道,可见对于手机App来说,如何恰如其分地运用相机开发至关重要。...,往dependencies节点添加以下几配置,表示导入指定版本的camerax库: // camerax库各版本见 https://mvnrepository.com/artifact/androidx.camera...implementation 'androidx.camera:camera-view:1.0.0-alpha28' 使用CameraX拍照之前要先初始化相机,包括界面预览以及参数设定等等,具体的初始化步骤说明如下...CameraSelector,指定使用前置摄像头还是后置摄像头; 5、构建图像捕捉器对象ImageCapture,分别设置捕捉模式、旋转角度、宽高比例、闪光模式等拍照参数; 6、调用相机提供器对象的...bindToLifecycle方法,把相机选择器、预览视图、图像捕捉器绑定到相机提供器; 7、调用预览视图对象的setSurfaceProvider方法,设置预览视图的表面提供器; 把上述的初始化步骤串起来

    1.8K20

    Android经典实战之约束布局ConstraintLayout的实用技巧和经验

    ConstraintLayout 是 Android 中一种强大的布局管理器,能够帮助你创建复杂而灵活的布局。...它允许你在视图之间创建多种多样的约束条件,比如对齐、比例、偏移等。 基本用法 要使用 ConstraintLayout 需要在布局文件中声明它,通常使用 XML 文件来定义约束: 使用 wrap_content:wrap_content 可能会导致性能问题,考虑用 match constraints 来代替。...使用 chains:在需要多个视图沿某个方向排列时,可以使用链(horizontal chain,vertical chain),这比线性布局更高效。...Barrier 和 Guideline:使用 Barrier 可以实现动态的视图边界管理,而 Guideline 可以让你更容易地对齐视图。

    29910
    领券