一.前言 为了解决Android-App开发以来一直存在的架构设计混乱的问题,谷歌推出了Jetpack-MVVM的全家桶解决方案.作为整个解决方案的核心-LiveData,以其生命周期安全,内存安全等优点,甚至有逐步取代EventBus,RxJava作为Android端状态分发组件的趋势. 官网商城app团队在深度使用LiveData的过程中,也遇到了一些困难,尤其是在LiveData的观察者使用上踩到了不少坑,我们把这些经验在这里做一次总结与分享. 二.Observer到底可以接收多少次回调…
要看本系列其他文章,可访问此链接Jetpack架构学习 | Stars-One的杂货小窝 原文地址:Jetpack架构组件学习(2)--ViewModel和Livedata使用 | Stars-One的杂货小窝 Jetpack架构推荐使用MVVM结构,为此推出了几个MVVM的组件库供我们开发者快速接入,首先要讲的就是ViewModel 个人理解:Activity为View,VM就是ViewModel,负责数据的逻辑处理,Model则是数据源 ViewModel 介绍 ViewModel能做什么?…
对于一个需要处理高并发的系统而言,可以从多个层面去解决这个问题. 1.数据库系统:数据库系统可以采取集群策略以保证某台数据库服务器的宕机不会影响整个系统,并且通过负载均衡策略来降低每一台数据库服务器的压力(当然用一台服务器应付一般而言没啥问题,找一台当备机放着应付宕机就行,如果一台应付不了,那么再加一台,但是备机还是要的,至少一台),另外采取读/写分离的方法降低数据库负载,再加上分库和分表进一步降低数据库负载,从而可以从容地应对高并发问题.当然成本会比较高,毕竟要这么多服务器. 2.分布式缓存系…
软考论文的六大应对策略V1.0 短短2个小时,要写3000字的文章,对习惯了用电脑敲字.办公的IT从业人员而言,难度不小.尤其,大家会提笔忘字.笔者的应试策略,就是勤学苦练,考试前的一个星期,摸清套路,写3-4篇文章,考前3-4天,多记忆点计算机专业知识点,考试前3个小时,重新默写一篇论文. 然后上考场了,直接选一个相较自己而言最为熟悉.最为贴近自己工作的论文题材,按照自己的已经准备的套路,准备的计算机专业知识点,洋洋洒洒展开来写. 如果在考场,考生自己还想怎么写,行文布局怎么组织,哪时间肯定不…
堆内存划分为 Eden.Survivor 和 Tenured/Old 空间,如下图所示: 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的JDK里默认包括了对永生带即方法区的回收 (JDK8中无永生带了),出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的.Major GC的速度一般会比Minor GC慢10倍以上. 下边看看有那种情况触发JVM进行…
目录: GC之一--GC 的算法分析.垃圾收集器.内存分配策略介绍 GC之二--GC日志分析(jdk1.8)整理中 GC之三--GC 触发Full GC执行的情况及应对策略 gc之四--Minor GC.Major GC和Full GC之间的区别 GC之六--SystemGC完全解读 <垃圾收集器之:G1收集器> <垃圾收集器之:CMS收集器> 1.System.gc()方法的调用 此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full G…
导读:伴随着互联网与移动网的融合,移动互联网变得更加开放.与此同时,伴随着新型的移动互联网服务模式的出现,移动互联网的安全问题也出现了新的形式及特点. 如今,移动互联网遭受到的攻击已严重影响了人们的隐私安全.信息安全,甚至危及国家安全,造成重大社会影响.本文重点以目前现有的移动互联网存在的电信诈骗问题为切入点,一步步详细分析其原因和应对策略.后续笔者将会针对电信诈骗中的关键问题另行它文进行分析. 电信诈骗案屡见不鲜 电信诈骗是指犯罪分子通过网络.电话和短信方式,编造虚假信息,设置骗局,对受害人实…
原文地址:Jetpack架构组件学习(1)--LifeCycle的使用 | Stars-One的杂货小窝 要看本系列其他文章,可访问此链接Jetpack架构学习 | Stars-One的杂货小窝 最近有时间了,准备入坑Jetpack架构,第一篇就学个简单的LifeCycle,可以帮助开发者创建可感知生命周期的组件. 介绍 为什么需要LifeCycle组件? 在很多情况下,我们需要在Activity的相关生命周期中进行相关的初始化操作,比如上一节说到的EventBus,需要在OnCreate()和…
原文地址:Jetpack架构组件学习(3)--Activity Results API使用 - Stars-One的杂货小窝 技术与时俱进,页面跳转传值一直使用的是startActivityForResult方法,如今有了新的API实现方式,学习并稍微总结下 startActivityForResult复习 MainActivity代码: Main2Activity代码: 效果: 上面的代码应该是比较基础的代码,这里我就不再赘述了 主要说些缺点 所有逻辑都在onActivityResult()方…
最近在研究APP的启动优化,也是发现了Jetpack中的App Startup库,可以进行SDK的初始化操作,于是便是学习了,特此记录 原文:Jetpack架构组件学习(4)--App Startup库的使用 - Stars-One的杂货小窝 两种方式初始化SDK 首先,先是讲解了关于SDK的初始化方式,像我们一般使用到百度地图,或者某些开源库的时候,需要我们进行初始化操作 而他们文档给出的大多数为以下方式: 自定义一个Application,在Application对应的生命周期OnCreat…