内存优化 Posted on 2021-11-04 In 性能优化 Views: 内存抖动内存波动图形呈锯齿状,频繁创建回收对象,GC导致卡顿。 内存泄露程序在申请内存后,无法释放已申请的内存空间,内存泄露堆积会造成OOM。在当前应用周期内不再使用的对象被GC Roots引用,导致不能回收,使实际可使用内存变小。 内存溢出程序在申请内存时,没有足够的内存空间供其使用。Out Of Memory即OOM,OOM时会导致程序异常。JVM对应用分配最大内存值,超出这个值就会OOM。 Java堆内存溢出、无足够连续内存空间、FD数量超出限制、线程数量超出限制。 Read more »
数据结构优化 Posted on 2021-11-02 In 性能优化 Views: Java集合框架数据结构Java 集合, 也叫作容器,主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要的子接口:List、Set 和 Queue。 Read more »
Gradle常用命令与配置 Posted on 2021-10-28 In 工具系列 Views: (一)常用命令 注:执行“./gradlew xxx”等同于执行“gradle xxx”,但执行“gradle xxx”需配置环境变量 清除build文件夹 1./gradlew clean 检查依赖并编译打包 1./gradlew build Read more »
AS常用快捷键汇总Mac Posted on 2021-10-27 In 工具系列 Views: mac上按键符号⌥ : option / alt⇧ : shift⌃ : control⌘ : command(一)查找/查看相关搜索任意内容 1双击 sft Read more »
Activity启动过程 Posted on 2020-08-24 In Android源码分析 Views: 前言本文是介绍Activity启动流程。(基于Android 10.0的源码) Read more »
Android系统启动-Launcher进程启动 Posted on 2020-08-22 In Android源码分析 Views: 前言本文是介绍Android系统启动——Launcher进程。(基于Android 10.0的源码) 目录SystemServer.startOtherServices Read more »
Android系统启动-SystemServer进程启动 Posted on 2020-08-20 In Android源码分析 Views: 前言本文是介绍Android系统启动——SystemServer进程。(基于Android 10.0的源码) 目录ZygoteInit.forkSystemServer Read more »
Android系统启动-Zygote进程启动 Posted on 2020-08-18 In Android源码分析 Views: 前言本文是介绍Android系统启动——Zygote进程。(基于Android 10.0的源码) 目录Zygote进程启动流程在init启动Zygote时主要是调用app_main.cpp的main函数中的AppRuntime.start()方法来启动Zygote进程的,我们先看到app_main.cpp的main函数: Read more »
Android系统启动-Init进程启动 Posted on 2020-08-16 In Android源码分析 Views: 前言本文是介绍Android系统启动——Init进程。(基于Android 10.0的源码) 目录Kernel 启动过程会创建 init 进程(pid=1),是用户空间的第一个进程,是所有用户空间进程的鼻祖。init 进程会启动servicemanager(binder服务管家),Zygote 进程(Android中Java进程的鼻祖)。Zygote 进程会创建 system_server 进程以及各种app进程,下图是这几个系统重量级进程之间的层级关系: Read more »
Android系统启动-综述 Posted on 2020-08-14 In Android源码分析 Views: 前言本文是介绍Android系统启动流程。 目录Android系统架构为了更好理解 Android 系统启动流程,我们需要先了解 Android 系统架构。它分为五层,从下往上依次分为Linux内核、HAL硬件抽象层、系统Native库和Android运行时环境、Java Framework框架层、应用层。如下图所示: Read more »