- 博客(8)
- 资源 (5)
- 收藏
- 关注
原创 JetPack之Lifecycle
为什么要使用Lifecycle?如果在Activity或者Fragment生命周期中做了很多操作,代码看起来特别多,Activity或者Fragment看起来特别的臃肿,为了解决这样的代码臃肿,Lifecycle把这些生命周期的操作拿了出来,新建了一个类去维护生命周期里的逻辑。首先看一下代码的具体实现本地的依赖dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementat
2020-12-31 11:41:02
242
原创 Android 引起内存泄漏的几种情况
概述内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。内存泄露有时不严重且不易察觉,这样开发者就不知道存在内存泄露,但有时也会很严重,会提示你Out of memory。首先使用leakcanary来检测内存泄漏debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.5'使用当前版本的leakcanary无需install直接可以使用(下一篇文章.
2020-12-11 18:01:38
7135
3
原创 异常 Program type already present: android.support.v4.app.INotificationSideChannel$Stub$Proxy
当前环境:apply plugin: 'com.android.application'android { compileSdkVersion 29 defaultConfig { applicationId "com.wanzi.designmode" minSdkVersion 16 targetSdkVersion 29 versionCode 1 versionName "1.0"
2020-12-30 15:36:00
1546
转载 Android Jetpack架构组件(一)带你了解Android Jetpack
前言Android已经发展了11年,可以说是比较成熟的技术了,一开始时框架很少,也没有什么规范,所有的代码都是要自己写,比如网络请求,数据库请求,数据解析等等。后来出现了一些框架来帮助开发者快速进行开发,比如XUtils、Volley、OKHttp、EventBus等,随着框架越来越多,一个应用可以有多种技术选型,直接导致应用开发越来越不规范,导致做出来的应用质量参差不齐,这显然不是谷歌想看到的。谷歌随后推出了MVP和MVVM相关的官方例子,效果很一般,而且覆盖面只是在架构上,Goole I/O 201
2020-12-25 15:13:07
196
原创 LeakCanary(2.0版本之前)的使用及其原理
概述leakcanary是一个监测android和java内存泄漏的工具。他能够在不影响程序正常运行的情况下,动态收集程序存在的内存泄漏问题。大体流程Activity Destory之后将它放在一个WeakReference 这个WeakReference关联到一个ReferenceQueue 查看ReferenceQueue是否存在Activity的引用 如果该Activity泄漏了,Dump出heap信息,然后再去分析泄漏路径。引用类型强引用(StrongReferenc
2020-12-15 14:36:54
715
原创 JAVA知识点—垃圾回收机制GC
概述垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。()内存泄露:ML (Memory Leak),程序在向系统申请分配内存空间后(new),在使用完毕后未释放。结果导致一直占据该内存单元,我们和程序都无法再使用该内存单元,直到程序结束,这是内存泄露。内存溢出:OOM(Out of Memory),程序向系统申请的内存空间超出了系统能给的。比如内存只能分配一
2020-12-08 14:14:48
568
原创 JAVA知识点—JVM的工作原理和类加载机制
JVM工作流程开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。运行时数据区区域 说明 程序计数器 每条线程都需要有一个程序计数器,计数器记录的是正在执行的指令地址,如果正在执行的是N...
2020-12-04 14:27:46
165
转载 Binder(初始篇)
红茶一杯话Binder(初始篇)1 什么是Binder? 简单地说,Binder是Android平台上的一种跨进程交互技术。该技术最早并不是由Google公司提出的,它的前身是Be Inc公司开发的OpenBinder,而且在Palm中也有应用。后来OpenBinder的作者Dianne Hackborn加入了Google公司,并负责Android平台的开发工作,所以把这项技术也带进了Android。 我们知道,在Android的应用层次上,基本...
2020-12-01 16:04:07
316
网络获取json解析json以及子线程显示
2018-12-17
SequencePlugin-1.3.0.zip
2019-11-26
通过LitePal保存集合到本地(可增删改查)
2018-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅