改造 Android 官方架构组件 ViewModel】的更多相关文章

前言 Android 官方架构组件在今年 5 月份 Google I/O 大会上被公布, 直到 11 月份一直都是测试版, 由于工作比较繁忙, 期间我只是看过类似的文章, 但没有在实际项目中使用过, 更没有看过源码, 所以对这几个组件的使用很是生疏, 同时也觉得这几个组件非常高大上, 非常神秘! 直到 11 月份 Android 官方架构组件正式版发布, 并且 Google 也在 Support Library v26.1.0 以后的版本中内嵌了 Android 官方架构组件中的生命周期组件,…
此指南适用于那些曾经或现在进行Android应用的基础开发,并希望了解和学习编写Android程序的最佳实践和架构.通过学习来构建强大的生产级别的应用. 注意:此指南默认你对Android开发有比较深的理解,熟知Android Framework.如果你还只是个Android开发新手,那么建议先学习下Android的基础知识. Android程序员面临的问题 传统的桌面应用程序开发在大多数情况下,启动器快捷方式都有一个入口点,并作为一个单一的过程运行,但Android应用程序的结构更为复杂.典型…
Android官方架构组件介绍之LifeCycle 下面是官方提供的Android App开发的架构图: 从上图可以看到一些关键字:ViewModel,LiveData,Room等.其实看了上面视频的会发现Google官方Android架构组件一共包括以下几个: LifeCycle : 与Activity和Fragment的生命周期有关 LiveData :异步可订阅数据,也是生命周期感知 ViewModel :视图数据持有模型,也是生命周期感知 Room :SQLite抽象层,用于简化SQLi…
Google 2017 I/O开发者大会于近日召开,在开发者大会上谷歌除了发布了Android O等一些新产品之外,也对Android代码的架构做出了一个官方的回应. Google 2017 I/O开发者大会Android架构组件介绍现场视频 下面是官方提供的Android App开发的架构图: 从上图可以看到一些关键字:ViewModel,LiveData,Room等.其实看了上面视频的会发现Google官方Android架构组件一共包括以下几个: LifeCycle : 与Activity和…
ViewModel 像Activity,Fragment这类应用组件都有自己的生命周期并且是被Android的Framework所管理的.Framework可能会根据用户的一些操作和设备的状态对Activity或者Fragment进行销毁和重构.作为开发者,这些行为我们是无法干预的. 所以Activity或Fragment中的一些数据也会随着销毁而丢失,随着重构而重新生成.比如你的Activity中有个用户列表,当这个Activity重构的时候,新的Activity会重新获取用户列表.对于一些简…
ViewModel 像Activity,Fragment这类应用组件都有自己的生命周期并且是被Android的Framework所管理的.Framework可能会根据用户的一些操作和设备的状态对Activity或者Fragment进行销毁和重构.作为开发者,这些行为我们是无法干预的. 所以Activity或Fragment中的一些数据也会随着销毁而丢失,随着重构而重新生成.比如你的Activity中有个用户列表,当这个Activity重构的时候,新的Activity会重新获取用户列表.对于一些简…
LiveData LiveData是一个用于持有数据并支持数据可被监听(观察).和传统的观察者模式中的被观察者不一样,LiveData是一个生命周期感知组件,因此观察者可以指定某一个LifeCycle给LiveData,并对数据进行监听. 如果观察者指定LifeCycle处于Started或者RESUMED状态,LiveData会将观察者视为活动状态,并通知其数据的变化. 我们看一段代码: public class LocationLiveData extends LiveData<Locati…
LiveData LiveData是一个用于持有数据并支持数据可被监听(观察).和传统的观察者模式中的被观察者不一样,LiveData是一个生命周期感知组件,因此观察者可以指定某一个LifeCycle给LiveData,并对数据进行监听. 如果观察者指定LifeCycle处于Started或者RESUMED状态,LiveData会将观察者视为活动状态,并通知其数据的变化. 我们看一段代码: public class LocationLiveData extends LiveData<Locati…
讲一个项目常见的功能,友盟统计功能 例如一个项目有很多多modlue,每个里面modlue都有Activity,Activity需要友盟统一,Fragment也需要友盟统计.一般做法就是继承一个BaseActivity,BaseFragment. 然后在BaseActivity,BaseFragment大概是这样的 import android.support.v7.app.AppCompatActivity; public class BaseActivity extends AppCompa…
Android Navigation 架构组件入门教程 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:https://www.cnblogs.com/cavalier-/p/10429936.html 前言 Navigation组件是AndroidStudio3.2版本更新带来的新组件,其特点是在一个Activity中使用多个Fragment处理平滑用户操作,且可以统一进场,退场,弹出,隐藏动画,可视化处理Action,支持深层链接(不在同一个Activity时可以弹出跳…
概述 ViewModel,从字面上理解的话,它肯定是跟视图(View)以及数据(Model)相关的.正像它字面意思一样,它是负责准备和管理和UI组件(Fragment/Activity)相关的数据类,也就是说ViewModel是用来管理UI相关的数据的,同时ViewModel还可以用来负责UI组件间的通信. 之前存在的问题 ViewModel用来存储和管理UI相关的数据,可于将一个Activity或Fragment组件相关的数据逻辑抽象出来,并能适配组件的生命周期,如当屏幕旋转Activity重…
背景 近几年,Android 相关的新技术层出不穷.往往这个技术还没学完,下一个新技术又出来了.很多人都是一脸黑人问号? 不少开发者甚至开始哀嚎:"求求你们别再创造新技术了,我们学不动了!"在这些新技术里,Jetpack 是最具代表性的,它们的知识体系复杂,学起来难度大,学完后实战的坑也多. jetpack一定要学吗? 学,肯定要学,Android Jetpack于谷歌而言,这是他们重新整理和统一安卓生态环境决心的体现,Android Jetpack所展现的内容,也是谷歌想拓展和维护的…
Android WorkManager compile "android.arch.work:work-runtime:1.0.0-alpha02" 继承Worker类并实现doWork()方法 public class MineWorker extends Worker { @NonNull @Override public WorkerResult doWork() { LogUtils.i("MineWorker--doWork"); return Worke…
首先,不了解 Clean 架构的可以看看这个,不过也没关系,阅读本文后你也许会对Clean架构思想有一个认识. 对比MVP项目的结构图,我们发现不同之处是新增的这个Domain Layer这层,来隔离Presentation Layer和Data Layer,负责了所有的业务逻辑交互,那么本文就主要来分析这层的设计和实现.   MVP-Clean架构图 我们仍然以Sample中详情界面(功能)来进行分析,下图展示了在 TaskDetailFragment 中点击删除按钮,然后所经历的逻辑交互以及…
参考:https://mp.weixin.qq.com/s/n-AzV7Ke8wxVhmC6ruUIUA 参考:https://jekton.github.io/2018/06/30/android-arch-ViewModel/ 参考:https://jekton.github.io/2018/07/06/android-arch-lifecycle/ 参考:https://jekton.github.io/2018/07/14/android-arch-LiveData/…
Android精选源码 Android一个有趣的Android动画交互设计 android可伸缩日历效果源码 关于界面,全新的卡片风格,支持夜晚模式 Android 用 Kotlin 实现的基于物理的动画 Android-自定义应用选择器源码 使用 Kotlin 实现的一个 Dribbble 客户端 android画矩形,圆,箭头,铅笔,擦除功能 Android 展开型布局菜单效果 Kotlin 实现的 View to View 动画效果库 改造 Android 官方架构组件 ViewModel…
文:https://www.jianshu.com/p/ce26e7960926 最近App项目(MVC架构)越做越大,协同开发效率较低,维护困难,所以产生了调整架构的想法,在 简书.csdn.知乎上看了不少文章,感觉知乎用户 0x8421bcd 对于“Android项目开发如何设计整体架构?”的回答颇为精彩,在此引用,鞠躬感谢! 0. 前言 想要设计App的整体框架,首先要清楚我们做的是什么.一般我们与网络交互数据的方式有两种:主动请求(http)和长连接推送. 结合网络交互数据的方式来说一下…
原文地址:Jetpack架构组件学习(1)--LifeCycle的使用 | Stars-One的杂货小窝 要看本系列其他文章,可访问此链接Jetpack架构学习 | Stars-One的杂货小窝 最近有时间了,准备入坑Jetpack架构,第一篇就学个简单的LifeCycle,可以帮助开发者创建可感知生命周期的组件. 介绍 为什么需要LifeCycle组件? 在很多情况下,我们需要在Activity的相关生命周期中进行相关的初始化操作,比如上一节说到的EventBus,需要在OnCreate()和…
要看本系列其他文章,可访问此链接Jetpack架构学习 | Stars-One的杂货小窝 原文地址:Jetpack架构组件学习(2)--ViewModel和Livedata使用 | Stars-One的杂货小窝 Jetpack架构推荐使用MVVM结构,为此推出了几个MVVM的组件库供我们开发者快速接入,首先要讲的就是ViewModel 个人理解:Activity为View,VM就是ViewModel,负责数据的逻辑处理,Model则是数据源 ViewModel 介绍 ViewModel能做什么?…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 目录LiveDataLiveData 简介LiveData 功能概览LiveData 的优点LiveData 使用步骤TransformationsmapswitchMapMediatorLiveDataViewModel基本介绍适用场景ViewModel 的 onCleared 调…
原文:Android零基础入门第2节:Android 系统架构和应用组件那些事 继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件. 一.Android 系统架构 Android系统的底层建立在Linux系统之上,该平台由操作系统.中间件.用户界面和应用软件4层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建.这种软件叠层结构使得层与层之间相互分离,明确各层的分工.这种分工保证了层与层之间的低耦合,当下层的层内或层下发生…
转自: http://www.infoq.com/cn/articles/wechat-android-app-architecture 微信Android客户端架构演进之路 作者 赵原 发布于 2015年12月31日 | 注意:GTLC全球技术领导力峰会帮助深具远见卓识的技术人审时度势,提升领导力!4 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享    已保存     我的阅读清单   去年7月,笔者在InfoQ举办的ArchSummit深圳2014的架构师峰会上,分…
以上是我在这个课题下的一些参考博客或者网页链接.里面有对于android架构的一些较好的分析理解,接下来是楼主在阅读后自己的一些整理. Android采用层次化系统架构,官方公布的标准架构如下图所示. Android由底层往上分为4个主要功能层,分别是linux内核层(Linux Kernel),系统运行时库层(Libraries和Android Runtime),应用程序架构层(Application Framework)和应用程序层(Applications). 接下来对这几个层面进行逐个分…
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等. 在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog.注:官方不推荐直接使用Dialog创建对话框. 2. 好处与…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6950440 文简要介绍了Android应用程序组件Content Provider在应用程序间共享数据的原理,但是没有进一步研究它的实现.本文将实现两个应用程序,其中一个以Content Provider的形式来提供数据访问入口,另一个通过这个Content Provider来访问这些数据.本文的例子不仅可以为下文分析Content Provi…
转: Android 官方推荐 : DialogFragment 创建对话框 复制内容,留作备份 1. 概述 DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等.在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog.注:官方不推荐直接使用Dialog创建对话框. 2. 好处与用法 使用DialogFragment…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com Lifecycle Activity和Fragment生命周期感知组件 LifecycleObserver MD 目录 目录简介相关的几个接口和类LifecycleObserverLifecycleOwnerLifecycleLifecycleRegistry使用案例LifecycleOb…
1.请看某个著名的it公司一则招聘信息的其中一条要求:“熟悉android系统架构及相关技术,1年以上实际android平台开发经验:”,里面非常明确的说道要求熟练android系统架构,这从某种程度上说明了对android体系架构的理解的重要性. linux kernel:负责硬件的驱动程序.网络.电源.系统安全以及内存管理等功能. libraries和android runtime:libraries:即c/c++函数库部分,大多数都是开放源代码的函数库,例如webkit,该函数库负责and…
Android操作系统架构   Android操作系统整体应用架构 Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层. 1.应用程序 Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等.所有的应用程序都是使用JAVA语言编写的. 2.应用程序框架 开发人员也…
Android官方新推的DI库 Hilt Hilt是Google Android官方新推荐的依赖注入工具. 已加入到官方文档: Dependency injection with Hilt. 目前是alpha release阶段. Hilt是在Dagger之上, Hilt单词的意思是: 刀把, 柄. 代码库还是这个google/dagger. Hilt的出现, 让我想起了曾经昙花一现的dagger.android, 不知道hilt能不能经得住时间的考验. 本文介绍Hilt的基本使用. 熟悉dag…