博客导读 对博客内的文章提供快速入口,按照分类进行查看。 其中主要涉及以下模块: 计算机网络相关 HTTP的原理和工作机制 HTTP的原理和工作机制 TCP/IP协议相关 TCP/IP协议相关 计算机网络基础 计算机网络基础 JVM相关 Android中的GC分析-Dalvik和ART虚拟机 Android中的GC分析-Dalvik和ART虚拟机 JVM相关及其拓展(一)– JVM 2019-03-14 #目录
Activity,Window,View的关联与理解 Activity,Window,View相关 1. 什么是Activity,Window,View以及职能简介 Activity:不负责视图控制,只是控制生命周期和处理事件,真正控制视图的是Window,一个Activity包含一个Window,Window真正代表一个窗口。Activity是一个控制器,控制视图的添加与显示以及通过回调方法来进行Window与View的交互。 Window:Wi 2018-04-01 #Android
Activity启动过程 下列源码分析是基于 Android 8.0源码 Activity的启动过程分为两种: 根Activity的启动过程 - 指代根Actiivty的启动过程也可以认为是应用程序的启动过程 普通Activity的启动过程 - 除启动应用程序启动的第一个Activity之外Activity的启动过程 根Activity启动过程 点击桌面的应用程序图标就是启动根Activity的入口, 2019-01-02 #Android
SparseArray简析 HashMap在Android开发中是一种常用的数据结构类型,但是占用内存方面相对会比较大,而且复杂的机制导致运行效率也不高。所以Android系统提供了SparseArray以及ArrayMap来对其进行替代。这也是Android性能优化的一种手段。 SparseArray SparseArray可以对key为Integer类型的HashMap进行替代。还有 LongSparseArray 2019-01-28 #源码解析
Android-动画分析 Android的动画就可以分为3种: View动画 View Animation 帧动画 Drawable Animation 属性动画 Property Animation 1.View动画 View动画的作用对象是View。View动画的View移动只是视觉效果,并不能真正的改变位置。 View动画的种类 种类 标签 子类 效果 平移动画 <translate> 2018-06-11 #Android
Android-Art类加载过程 Dex文件加载 加载Dex文件后会生成DexFile对象,里面储存了多个类文件信息。 通过PathClassLoader或者DexClassLoader去加载Dex文件,最后还是调用到BaseDexClassLoader的加载方法 12345678class BaseDexClassLoader extends ClassLaoder{ public BaseDexClass 2019-12-19 #Android
Android中的GC分析-Dalvik和ART虚拟机 Dalvik虚拟机 Dalvik Virtual Machine,简称Dalvik VM或者 DVM。DVM是Google专门为Android平台开发的虚拟机,是Android的重要组成部分,支持dex格式的Java应用程序运行。 dex格式是专门为DVM设计的一种压缩格式,适合内存和处理器速度有限的系统。 从架构图中可知,DVM运行在Android的运行时库层。 DVM与JVM的区别基 2018-05-13 #Android
Android音频技术攻略-FFmpeg相关 FFmpeg 是一个开源跨平台多媒体框架,提供音视频的解封装、编解码、转码与流媒体处理能力。 一、FFmpeg 提供的核心能力 建议按“为什么选 FFmpeg -> 需要哪些能力 -> 如何落地 -> 代价与取舍”来梳理。 一句话结论:FFmpeg 的价值不只是“能解码”,而是“可控地稳定解码并统一输出 PCM”。 1.1 多媒体能力总览 解封装(Demux):从 MP3& 2026-02-16 #音视频
AOP学习笔记-APT APT全称Annotation Processing Tool-注解处理器,用于在代码编译期间解析注解并生成新的Java文件,减少手动的代码输入。 主要通过生成注解类所在类的代理类,在运行期直接调用代理类中的方法实现功能。 注解处理方案-反射注解处理方案-APT 2019-04-17 #AOP
Android-Binder分析 Linux传统的进程间通信原理 进程隔离 保护系统中进程互不干扰。在操作系统中,进程之间数据是不互通的,相互之间无法访问数据,保证数据的安全星。 在进程隔离的条件下,需要通过IPC(Inter Process Communication)机制进行进程间的通信。 进程空间划分 操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间以及底层的硬件设备。 为了使用户进程不能操作内核 2026-02-16 #Android
Android硬件加速 软硬件绘制的分歧点绘制过程入口位于ViewRootImpl.performDraw()中 123456789101112131415//viewRootImpl.java private void performDraw() { ... try { //调用draw()执行实际的绘制工作 boolean 2020-10-27 #Android
Android需要的必备知识 第一关:Binder、AIDL、多进程(建议学习时间:2周)知识点:Binder原理、AIDL的使用、多进程的定义和特性学习资料:① Android开发艺术探索第2章【推荐理由】地球人都知道学Android要看艺术探索。② Android Bander设计与实现 - 设计篇 - universus的专栏 - CSDN博客 【推荐理由】Binder底层史上最牛逼分析,没有之一。③ 艺术探索第2章的例 2018-12-09 #Android
Android-线程相关 在Android中进程一般指代App,线程又分为 主线程:进程所拥有的线程,默认情况下一个进程只有一个线程,这个线程就是主线程。Android中对应UI线程 子线程:工作线程,除主线程以外的线程都是工作线程。Android中的子线程的作用是处理耗时任务,比如网络请求,IO操作。 ThreadJava多线程基础 AsyncTask 轻量级的异步任务,可以在线程池中执行后台任务,然后把执 2018-12-21 #Android