自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 kotlin 和java 对比,以及一些扩展函数

Java 的写法Kotlin 的写法(Unit 跟 void 一样效果)// 在 Kotlin 可以省略 Unit 这种返回值。

2024-07-16 13:39:15 944

原创 ANR 是什么?怎样避免和解决 ANR

三种类型:1). KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2). BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成3). ServiceTimeout(20 seconds) --小概率类型 Service在特定的时间内无法处理完成为什么会超时:事件没有机会处理 & 事件处理超时。

2024-06-18 16:18:33 164

原创 android 性能优化

布局优化的本质就是减少View的层级。在LinearLayout和RelativeLayout都可以完成布局的情况下优先选择LinearLayout,可以减少View的层级,但是注意相同组件可能RelativeLayout绘制时间长使用 < include > 标签将常用的布局组件共同的部分抽取出来,以便复用。使用ConstraintLayout支持构建复杂的页面布局,如果使用它作为页面的布局容器,基本上一层就足够了。

2024-06-18 13:34:07 872

原创 Android ConstraintLayout 的使用

从Android Studio 2.3版本开始,创建Activity时的默认布局容器变为ConstraintLayout。为什么官方推荐使用ConstraintLayout呢?。我们知道一个好的布局是浅而宽的,而不是窄而深的。布局层次越浅,即布局层次越少,那么UI测量和布局阶段所花费的时间就越少,UI的性能就越好。通常情况下,我们在使用传统布局容器来实现一些稍微复杂的页面时布局层次很容易就大于等于两层。ConstraintLayout支持构建复杂的页面布局,如果使用它作为页面的布局容器,基本上一层就足够了。

2024-06-14 14:02:36 593

原创 kotlin 协程

它的设计应用场景多用于 子协程为独立对等的任务实体的时候,比如一个下载器,每一个子协程都是一个下载任务,当一个下载任务异常时,它不应该影响其他的下载任务。在Kotlin协程中,被suspend修饰的函数是一个挂起函数,可以调用和使用协程库里的方法,仅能被suspend修饰的方法或lambda闭包使用,在其余地方使用会编译报错,因为被suspend修饰的函数再编译成java后会增加一个Continuation的参数,这个函数用于回调协程执行的结果,所以说协程的异步调用本质上就是一次异步调用。

2024-05-31 15:21:08 892

原创 Kotlin 标准库函数

因为run函数是let,with两个函数结合体,准确来说它弥补了let函数在函数体内必须使用it参数替代对象,在run函数中可以像with函数一样可以省略,直接访问实例的公有属性和方法,另一方面它弥补了with函数传入对象判空问题,在run函数中可以像let函数一样做判空处理。使用的场景有相同的地方比如run函数就是let和with的结合体。适用于let函数的任何场景,also函数和let很像,只是唯一的不同点就是let函数最后的返回值是最后一行的返回值而also函数的返回值是返回当前的这个对象。

2024-05-29 17:22:38 864

原创 Kotlin lambda学习

1234567。

2024-05-09 17:26:05 674

原创 android 内部存储和外部存储

应用内部存储目录相信很多人看到内部存储的目录结构,都有似曾相识的感觉,没错我们平常经常和内部存储打交道,只不过我们不知道罢了,下面我们来看下内部存储目录下各个子目录的作用。app_webview:主要用于存储webview加载过程中的数据,例如Cookie,LocalStorage等。cache:主要用于存储使用应用过程中产生的缓存数据。databases:主要用于存储数据库类型的数据。我们平常创建的数据库文件就是存储在这里。files:可以在该目录下存储配置文件,敏感数据等。

2023-08-21 15:07:06 336

原创 Activity ,view 和window之间的区别

view 和window之间的关系

2023-08-21 14:24:53 329

原创 android 如何避免内存泄露

这种创建Handler的方式会造成内存泄漏,由于mHandler是Handler的非静态匿名内部类的实例,所以它持有外部类Activity的引用,我们知道消息队列是在一个Looper线程中不断轮询处理消息,那么当这个Activity退出时消息队列中还有未处理的消息或者正在处理消息,而消息队列中的Message持有mHandler实例的引用,mHandler又持有Activity的引用,所以导致该Activity的内存资源无法及时回收,引发内存泄漏 ,可以使用软引用。正确的做法还是使用静态内部类的方式。

2023-03-16 18:05:09 192

原创 Android 事件分发详情

android 事件分发的详情

2023-03-14 13:49:44 130

原创 androd 服务详情

adnroid服务

2023-03-08 14:27:20 163 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除