logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

请谈谈 Kotlin 中的 Coroutines,它与线程有什么区别?有哪些优点?

场景协程的优势网络请求避免阻塞主线程,简化异步回调数据库操作结合 Room 的协程支持,实现流畅的数据库访问文件 I/O通过高效调度并发任务使用aync/await并行执行任务并合并结果UI 交互在主线程安全更新 UI,避免 ANR轻量高效:支持大规模并发,资源消耗极低;非阻塞挂起:最大化线程利用率,避免资源浪费;结构化并发:通过作用域自动管理生命周期,减少泄漏风险;代码简洁:以同步风格编写异步代

#kotlin#java#jvm
try、catch、finally的执行顺序

1. 不带return的执行顺序异常处理中,try、catch、finally的执行顺序:如果try中没有异常,执行顺序为:try->finally如果try中有异常,执行顺序为:try->catch->finallypublic class Test {public static int rank;public static void main(String[] args) {

文章图片
#java
Android性能优化(一)—— 启动优化

在性能优化中存在启动时间原则:八秒定律是在互联网领域存在的一个定律,即指用户访问一个网站时,如果等待网页打开的时间超过了,就有超过70%的用户放弃等待。冷启动的详细流程可以简单分成三个步骤,其中创建进程步骤是系统做的,启动应用和绘制界面是应用做的:不同的启动方式决定了应用对用户可见所需要花费的时间长短,冷启动消耗的时间最长。 基于冷启动方式的优化工作也是最考验产品用户体验的地方。以下是启动时间,这

文章图片
#android#性能优化#java
跨进程共享数据——ContentProvider

跨进程共享数据——ContentProviderAndroid数据持久化技术,包括文件存储、SharedPreferences存储以及数据库存储,使用这些持久化技术所保存的数据只能在当前应用程序中访问。虽然文件存储和SharedPreferences存储中提供了MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE这两种操作模式,用于供给其他应用程序访问当前应用的数据,但

文章图片
#android
Android系统启动(四) — Launcher 启动过程

系统启动的最后一步是启动一个应用程序来显示系统中已经安装的应用程序,这个应用程序就叫做Launcher。Launcher在启动过程中会请求返回系统中已经安装的应用程序信息,并将这些信息封装成一个快捷图标列表显示在系统屏幕上,这样用户就可以通过点击这些快捷图标来启动相应的应用程序。通俗的讲,Launcher就是Android系统的桌面,作为Android系统的启动器,用于启动应用程序;作为Andro

应用程序进程启动过程

想要启动一个应用程序,首先要保证这个应用程序所需要的应用程序进程已经启动。AMS在启动应用程序时会检查这个应用程序所需要的应用程序进程是否已经存在,如果不存在就会请求Zygote进程启动需要的应用程序进程。在Zygote进程启动过程中可以知道,在方法中会创建一个Server端的Socket用来等待AMS请求Zygote进程创建子进程。Zygote进程通过fork自身创建子进程,这样,子进程就会获得

#android#java#jvm
Android系统启动(二) — Zygote进程启动过程

在Android系统中,DVMDalvik虚拟机)和ART,系统服务进程以及应用程序进程都是由Zygote进程来创建的(而Native程序,也就是C/C++开发的程序则是由init进程创建启动的)。Zygote进程也称孵化器,通过fork(复制进程)的形式来创建应用程序进程和进程,由于Zygote进程在启动时会创建DVM或者ART,因此通过fork而创建的应用程序进程和进程可以在内部获取一个DVM

文章图片
#zygote#android#java
Java虚拟机(三)—— Java变量在虚拟机中的内存分配

JDK(Java Development Kit)kit [kɪt] 工具箱;成套工具Java虚拟机可以看作是一种抽象化的计算机,通过在实际的计算机上模拟各种计算功能来实现的。它有自己的一套字节码指令集、一组寄存器、一个堆栈、一个垃圾回收堆和一个方法区。JVM,Java Virtual Machine Java虚拟机只识别字节码,也就是.class文件,它和生成字节码文件的源文件是没有关系的,它也

文章图片
#java#c#
    共 13 条
  • 1
  • 2
  • 请选择