自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学习笔记-Flutter-dart语法(2)

可实现noSuchMethod,进行一些处理。

2023-04-10 14:40:34 167

原创 学习笔记-Flutter-dart语法(1)

/ 常量// const定义常量 被他定义的常量 不止地址不能改 内部变量的地址也不能改,改动会报异常// final 定义的只是定制不能变,但里边的地址是可以变的 final跟kt中的val相似});

2023-03-30 16:03:25 186

原创 Android Framework源码分析-startActivity

activity的跳转,我们通常的写法无非就是startActivity或者startActivityForResult。问题:startActivity和startActivityForResult有什么区别呢?

2022-11-22 21:11:37 755

原创 Android Framework源码分析-LayoutInflater

*** 将布局XML文件实例化为其相应的View对象。它从不直接使用。而是使用android.app.Activity。* getLayoutInflationr()或Context。getSystemService以检索已连接到当前上下文并为正在运行的* 设备正确配置的标准LayoutInflationer实例。** * 使用其他LayoutInflationer创建新LayoutInflationr。对于您自己的视图,可以使用cloneContext克。

2022-11-19 13:34:12 652

原创 Android Framewrok源码分析-事件分发机制(2)

我们先想清楚。我们点击屏幕,响应单击事件都需要先点下去,然后抬起来。这对应的事件是DOWN、UP。以DOWN开始,UP触发响应为结束。那滑动呢?以点击开始,左右滑动响应,以手抬起来为滑动结束。以DOWN开始,中间无数个MOVE,UP结束滑动。

2022-11-17 16:47:33 603

原创 Android JetPack学习笔记-DataStore

通过键值对存储,以异步、一致的事务方式存储数据克服了SharedPreferences的一些缺点,基于kotlin协程的Flow实现。并且可以对SP数据进行迁移。以protobuffer协议进行存储,速度更快,效率更高。

2022-10-20 11:36:36 805

原创 Android JetPack学习笔记-Navigation

最后跳到目标节点进行跳转,如果是activity的,进行activity的Navigator进行StartActivity。到此返回了解析完了,返回了我们根节点属性的所生成的NavGraph,回到NavController的setGraph方法中。此时就会跳到对应的fragment中,此时咱们可以跳到fragmentC中,在fragmentC我们获取了这个paramas参数,是xhua。这一块我们注意到有获取注解的一系列操作,我们看看对应的有注解的类的注解值。

2022-10-14 17:50:37 575

原创 Android JetPack学习笔记-Paging

到这我们compute一路走下来就完全走完了,一路上我们通过factory创建了对应的dataSource,通过dataSource请求数据之后,进行了storage的初始化。到这,首次刷新UI大家就能了解了,数据传递在AsyncPagedListDiffer此类中,有多少数据找它拿,然后我们在我们些的adapter的onBindViewHolder方法直接获取对应实例,直接赋值给控件即可。到此为止,咱们的刷新UI就结束了,但是我们仔细看它是如何对adapter进行修改的。这样就去刷新我们的数据了。...

2022-08-17 18:57:56 638

原创 Android JetPack学习笔记-ViewModel

了解ViewModel总是会先说,它横竖屏数据不会消失。熟悉AMS和启动的应该知道横竖屏时配置更改会调用ActivityThread. 重新启动先后执行handleDestoryActivity和handleLaunchActivity。先销毁再启动。 代码里有注释,不多讲解了。这么看时序就是onPause->onStop->retainNonConfigurationInstances->onDestory。retainNonConfigurationInstanc

2022-08-03 17:28:03 850

原创 Android JetPack学习笔记-DataBinding

这代码是我贴出来的第三次了,应该很有印象了。第一次注册时,使用的mOberverble是咱们setUser的user对象,所以调用addOnPropertyChangedCallback方法就得到了后续的注册,这个callback是当时的WeakPropertyListener监听。这一路的操作就把咱们的布局绑定到了ActivityDataBindTestBinding文件中,然后再viewDataBinding的构造方法中进行了渲染,通过sdk的比较,要么使用编舞者要么用线程来更新。...

2022-07-28 18:24:56 694

原创 Android JetPack学习笔记-LiveData

这三行代码不复杂,第一行进行实例化一个livedata对象,第二行进行绑定联系。最后一行设置数据。其中setValue在主线程使用,postValue在子线程使用。我们先浅看一下postValue和setValue的区别。setValue咱们先看postValue,setValue后续看。............

2022-07-26 15:18:13 662

原创 Android JetPack学习笔记-LifeCycle

此类中有2个字段,观察者对象和观察者信息,他都存了什么信息呢,我们看看其构造函数中调用的getInfo方法,以下就稍微跳一些。然后通过‘下一状态’值和之前的状态值作比较,如果小于之前的值,表示是从显示到不显示,调用。获取完状态后,调用moveToState的方法,此方法有重要的一步,就是同步状态sync()的方法,然后再获取方法的参数进行判断,可以看出参数最高只能是2个。,我们点击过去发现是个接口,所以我们要去找实现类,还记得在入口处我们返回的。的状态,这个咱们从入口看到过,应该比较熟,最后在调用它的。..

2022-07-25 16:11:09 423

原创 学习笔记-kotlin(7)

目录协程1.Thread.sleep来阻塞2.runBlocking阻塞主线程3.join来阻塞4.runBlocking中阻塞(2)5.作用域构建器协程首先配置,在build.gradle中 配置:plugins { id 'java-library' id 'kotlin'}java { sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatib......

2022-05-09 01:20:54 945

原创 学习笔记-kotlin(6)

1.对象1.1.嵌套类如果一个类只对另一个有用,那么将其嵌套到该类中,并使这两个类保持在一起是符合逻辑的,可使用嵌套类。 //嵌套类 class Player2() { class Equipment(var equipName:String) { fun showEquip() { println("Equipment: $equipName") .....

2022-04-30 13:14:58 997

原创 学习笔记-Kotlin(5)

1.Filed针对你定义的每一个属性,Kotlin都会产生一个filed、getter和setter。你不能直接定义field,kotlin封装号了field,保护它的数据,只暴露了getter和setter使用。只有可变属性才会有setter方法。但在需要控制如何读写属性数据时,你也可以自定义它们。需要注意的是,在java中没有给field定义访问模式时,默认的是public。而kotlin,没有定义访问模式时,默认的是private。 class Player { ......

2022-04-29 17:18:11 1896

原创 学习笔记-Kotlin(4)

目录集合1.List1.1.list创建与元素获取1.2.mutator函数1.3.集合遍历1.4.结构2.Set2.1.List和Set转换3.Map3.1.Map的创建3.2.读取Map的值3.3.map遍历3.4.可变集合、mutator、getOrPut集合List、Set和Map类型的变量分为两类。只读和可变1.List1.1.list创建与元素获取getOrElse是一个安全索引取值函数,它需要两个参数......

2022-04-28 03:28:10 511

原创 学习笔记-Kotlin(3)

目录1.字符串操作2.数字类型3.标准函数库 (1).apply (2).let (3).run (4).with (5).also (6).takeIf和takeUnless1.字符串操作indexOf():用法跟java相同substring():字符串截取。跟java相同,但其中有一种用法是subString(range:Int)"frenk".su......

2022-04-27 17:46:15 469

原创 学习笔记-Kotlin(2)

1.函数内联 有关内联的引出,有些材料上说的是:在JVM上,你定义的lambda会以对象实例的形式存在,JVM会为所有同lambda打交道的变量分配内存,这就产生了内存开销,更糟的是,lambda的内存开销会带来严重的性能问题。幸运的是,kotlin有一种优化机制叫内联,有了内联,JVM就不需要使用lambda对象实例了,因而避免了变量内存分配。哪里需要使用lambda,编译器就会将函数体复制粘贴到哪里。 值得注意的是,使用lambda的递归函数无法内联,因为会导致赋值粘贴无限循环,编译会警告....

2022-04-26 23:17:43 1023

原创 学习笔记-Kotlin(1)

kotlin学习笔记

2022-04-26 01:50:32 1941

转载 Android view绘制

阅读他人的,自己进行总结的。原文章:Android LayoutInflater原理分析,带你一步步深入了解View(一)_郭霖的专栏-CSDN博客_layoutinflaterAndroid视图绘制流程完全解析,带你一步步深入了解View(二)_郭霖的专栏-CSDN博客_android 视图绘制Android视图状态及重绘流程分析,带你一步步深入了解View(三)_郭霖的专栏-CSDN博客Android自定义View的实现方法,带你一步步深入了解View(四)_郭霖的专栏-CSDN博客_a

2021-09-14 14:29:20 293 1

原创 Android 事件分发机制(二)

接着上期结尾所述 我们引入一些问题吧。为什么图片轮播器里的图片使用button不用ImageView?因为button是可点击的,在onTouchEvent方法中可以进入判断体中返回true。而ImageView是不可点击的。所以需要修改的话,我们可以给ImageView增加android:clickable="true"的属性。这样遍得到了解决。还有其他改法,这边就不说了。关于拦截1、如何拦截@Override public boolean onInterceptTouchEven

2021-09-09 14:51:26 102

转载 Android View事件分发机制

Activity是如何启动的zygote?什么作用?zygote意为“受精卵”,Android是基于Linux的,Linux中所有进程都由init进程直接或间接fork出来的,zygote进程也不例外。每一个app都是由一个单独的dalvik虚拟机和一个单独的进程系统中第一个zygote进程运行之后,再开启app,就相当于开启一个新进程。为了实现资源共用和更快的启动速度。Android通过fork第一个zygote进程实现的,也就是说,除了第一个zygote进程,其他的应用都在zygote的

2021-09-08 19:22:39 127

原创 Android中Handler知识(二)

消息机制概述他主要包含:MessageQueue、Handler和Looper这三大部分,以及Message。Message:传递的消息;MessageQueue: 消息的队列,它的数据结构是单链表。选择单链表而不是队列的原因是在数据上的操作更有优势。主要作用是向消息池投递消息和取走消息池的消息,也就是我们上期说的入队(MessageQueue.enqueueMessage)和出队(MessageQueue.next)的操作;Handler: 消息辅助类,主要向消息池发送各种消息(Handler

2021-09-07 10:53:36 78

原创 Android中Handler知识(一)

一、Handler 相关知识 1、Handler Looper Message 关系是什么? 首先我们来分析分析一下 Handler 的用法,我们知道,要创建一个 Handler 对象非常的简单明了,直接进行 new 一个对象即可,但是你有没有想过,这里会隐藏着什么注意点呢。现在可以试着写一下下面的一小段代码,然后自己运行看看:public class MainActivity extends ActionBarActivity { private Handler mHand

2021-09-06 17:01:58 91

空空如也

空空如也

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

TA关注的人

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