06 2021 档案
计网
摘要:TCP的报文是交给IP层传送的,但是IP层只能提供尽最大努力交付的服务,也就是说,TCP下面的网络所提供的是不可靠传输,其实就是传输信道是不可靠的(所谓的信道,就是指连接信号发送方和接收方的传输线路,包括双绞铜线、同轴电缆、光纤、陆地无线电或者卫星无线电等物理媒体)这时,传输层的可靠传输机制就显得特
操作系统进程
摘要:进程概览: 程序是静态的,是存放在磁盘里的指令集合;进程是动态的,是程序的一次执行过程 进程的身份证——PID 进程的各种信息放在PCB进程控制块中 进程的状态与转换: 进程控制: 在进程切换时要在PCB保存这个进程的运行环境信息(比如说通用寄存器里的数值) 能够保存运行环境和恢复运行环境是实现并发
git常用命令
摘要:git init 在一个目录下新建仓库 git clone <url> [重命名文件名] 克隆一个仓库 git status 在一个仓库目录下,查看当前仓库状态 git log 在一个仓库的目录下,输出commit日志。按向下箭头翻页。按q退出。--oneline选项只显示简略信息。git log
PleaseSmile项目中的妖魔鬼怪
摘要:viewmodel中有这么一个变量: val pb:MutableLiveData<Int> = MutableLiveData() 在fragment中赋值的时候,要用setValue,不能用postValue,不然没效果 因为我在主线程上更新,文档中有这么一段话: 注意:您必须调用 setVal
操作系统概览
摘要:概述1: 并发事件,宏观上同时,微观上交替。 单核cpu同一时刻只能执行同一程序,各个程序只能并发执行 多核cpu可以并行执行多个程序 互斥共享和同时共享的区别:是否可以被多个进程“同时”(宏观上)访问 没有共享,就没有并发;没有并发,也没有共享;没有并发,也没有虚拟性;只有并发性,才有可能导致异步
数据绑定 DataBinding
摘要:一: 在activity里 binding = DataBindingUtil.setContentView(this, R.layout.activity_main) = binding = ActivityMainBinding.inflate(layoutInflater) setConten
Android-FileProvider学习——文件操作
摘要:一 : content-url(content://)相比于file-url(file:///),安全很多。intent通过把uri设置为它的参数,并通过setFlags设置flag,可以让其他app获得该uri的临时访问。而file的话,授权是永久的,除非手动改变。 二:使用fileProvide
双指针 leetcode 633
摘要:自己的解法为: long num = c; long l = 0; long r = c; while (l <= r){ if ((Math.pow(l, 2) + Math.pow(r, 2)) < num) {l++;continue;} if ((Math.pow(l, 2) + Math.
内部存储和外部存储
摘要:这张图是Android11之前的,现在Android11外部存储空间已经变成: 现在图为: 现在得到私有目录file的话用context.getFileDir()还是可以的,访问外部的话,那些什么Enviroment直接取用的getExternal那些都不行了。这时候建议用MediaStore和Fi
camerax——uesecase之preview
摘要:添加依赖 def camerax_version = "1.0.0" // CameraX core library using camera2 implementation implementation "androidx.camera:camera-camera2:$camerax_versio
leecode 406
摘要:/** * 解题思路:先排序再插入 * 1.排序规则:按照先H高度降序,K个数升序排序 * 2.遍历排序后的数组,根据K插入到K的位置上 * * 核心思想:高个子先站好位,矮个子插入到K位置上,前面肯定有K个高个子,矮个子再插到前面也满足K的要求 * * @param people * @retur
记录好用的库
摘要:人工智能,面部识别:https://developers.google.com/ml-kit/vision/face-detection/android 权限请求:permissionX
数据库没有这个项,cursor的count为0
摘要:比如说,联系人里面有个叫“jack"的人,只有名字,没有电话号码。 val queryFields2 = arrayOf(ContactsContract.CommonDataKinds.Phone.NUMBER) val phoneCursor = requireActivity().conten
runtime permission写法
摘要:首先,即使是runtime permission,在运行时进行的权限请求,也应该在manifest中著名。 比如说: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.c
registerForActivityResult应在fragment或activity创建之前调用
摘要:就是说,如果要为返回的结果注册监听器的话,不能在fragment或activity已经创建好了再调用。 可以放在字段中: class CrimeFragment : Fragment() { ... private val aLauncher = registerForActivityResult(
使用registerForActivityResult接受从activity返回的数据
摘要:不要再用onActivityResult了,用更高级更方便的。 启动一个activity需要一个laucher,这个laucher由registerForActivityResult返回,这个方法需要两个参数,一个参数为一个抽象类——ActivityResultContract<I, O>的实现,另
UI刷新会比数据库查询速度快
摘要:我想在一个fragment创建的时候,判断当前recyclerview获取到的列表是不是空的,是空的,就让一个控件不可见,否则,可见。 可是,因为UI刷新是比数据库查询速度快的,数据库查询是在后台线程做的。因此无论我在fragment的onActivityCreated或onStart里检测当前列表