- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 Java 内存模型的简单理解
大量规则其实就是通过数据的同步协议,保证内存副本之间数据的一致性,同时防止重排序对程序的影响。备注:重排序通常是编译器或运行时环境为优化程序性能而采取的对指令进行重排序执行的一种手段...
2021-04-09 15:19:56 89
原创 Glide和Picasso的优缺点比较
一:with传入参数不同Glide.width()不仅可以传递上下文,还可传入activity,fragment实例。Picasso.width()只能传入上下文。备注:Glide和activity生命周期绑定,不会出现内存泄露二:加载后图片质量不同Glide默认使用RGB_565格式,Picasso默认使用ARGB_888模式。由于Picasso使用的是全图加载模式,因此清晰度和图片质量比Glide高,但是内存占用是Glide的一半三:加载GIF图片Glide支持gif动.
2021-04-08 16:31:17 323
原创 TCP和UDP协议的区别是什么
1:TCP面向连接,UDP无连接。2:TCP占用系统资源较多,UDP较少3:TCP结构复杂,UDP相对简单4:TCP基于流模式,UDP基于数据报模式5:TCP保证数据正确性,UDP容易丢包6:TCP保证 数据顺序,UDP不保证在UDP和TCP协议面前,如何选择并使用?1:当网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。比如:QQ语言、QQ视频等。2:当网络通讯有要求的时候,比如:整个数据要准确无误的传递给对方,使用TCP...
2021-04-07 17:41:38 199
原创 android.os.BadParcelableException: ClassNotFoundException
原因:跨进程间使用Bundle传递一个Parcelable对象时出现ClassNotFoundException异常,出现这个异常的原因是因为ClassLoader不对造成的,我们应用中存在两种类加载器它们分别是BootClassLoader和PathClassLoader.BootClassLoader用来加载系统类,PathClassLoader用来加载我们在应用中自己写的类.所以当类加载器为BootClassLoader时我们要加载自己写的类就会出现ClassNotFound异常.在进程间通信中M
2021-03-26 18:01:25 728
原创 BroadcastReceiver
一:静态注册1:package com.example.fmtest.broadcast;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;public class MyBroadcastReceive extends BroadcastReceiver {private final Strin
2021-03-08 17:40:38 127
原创 本地广播的使用 LocalBroadcastManager
一:本地广播:LocalBroadcastManager :本地广播管理器这种通知的好处是安全性高,效率也高,适合局部通信,app内部使用,可代替hander更新UI二:使用步骤:1:这个类是android-support-v4.jar中的,要导入这个jar包才点得出来2:获取实例:LocalBroadcastManager.getInstance(this)3:直接上代码吧。package com.example.fmtest.broadcast;import android.app.Act
2021-03-08 16:14:56 733
原创 请求时出现:not permitted by network security policy
原因:Android P之后系统限制了明文的网络请求,非加密请求会被系统禁止掉。使用OkHttp3做网络请求框架时,如果是http请求而非https请求,会导致请求失败同样如果您使用了WebView加载http协议下的页面,也会出现加载失败,https则不受影响。解决方法:方法一:在 AndroidManifest.xml application 标签内加上android:...
2019-08-02 14:04:57 2606
原创 TextView去除上下默认padding
方法一:android:includeFontPadding="false"这个方法貌似只对上边距有效方法二:自定义TextvView方法三:为textView写一个xml设置为背景<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/...
2019-08-01 14:47:02 1521
原创 内存泄漏的工具及简单使用
自己常用的LeakCanary工具、Link,MAT工具1:LeakCannary一:在build.grade中引入releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'二:在Application中初始化LeakCanary.install(this);三:运行app如果出现内存泄漏就会在导航栏提...
2019-03-12 20:54:26 230
原创 内存溢出和内存泄漏的区别
一:内存溢出:程序在申请内存时,没有足够的内存空间供其使用,比如Interger申请到的内存空间,却要存long才能放下的数据简单理解就是:我给你分配的地方就这么多,你超过了就溢出了二:内存泄漏:指程序申请到内存空间后,无法释放已经申请的内存空间,积累多了,再多的内存都会被占进三:内存泄漏并不会导致程序功能异常,但会导致Android程序内存占用过大,这将提高内存溢出发生的几率。...
2019-03-12 19:19:21 2095
原创 自定义Handler时怎么避免内存泄漏
一:原因:当我们在activity里面使用一个继承handler类的时候,如果我们点击了返回按钮,这个子handler还没有处理完消息,就会持有当前activity,导致这个activity没有被及时释放,从而导致内存泄漏。二:解决方法: 1:把该handler设置为静态内部类。 2:通过弱应用(WeakReference)的方式,让handler持有外部类的应用。 由...
2019-03-12 17:11:12 357
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人