简介 M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS...
简介 M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS...
协程是一种并发设计模式,你可以在 Android 平台上使用它来简化异步执行的代码。协程[https://kotlinlang.org/docs/coroutines-gui...
前言 前一段时间,在公司内部进行了一次QUIC协议的演讲。当时因为时间有限,没有仔细的讨论Cronet 的源码细节,仅仅只是介绍了QUIC的协议细节。本文就从Cronet源码...
最近在项目上处理比较多的应用No Focused Window类型的问题,于是把流程梳理一遍(基于Android R),了解问题发生的原因才好有相应的应对措施。 首先看No ...
问题 因为业务需求把所有业务的域名都搞成相同的,导致Cronet在底层连接出错的判断逻辑也跟着出错了。原因是域名相同后,假如某个业务域名所建立的连接一直出错,但是该连接的端口...
ExoPlayer 源码分析 一 HLS 拉流及播放流程[https://www.jianshu.com/p/45ae8935cffc]ExoPlayer 源码分析 二 类图...
本文来分析下matrix对于线程的监控,matrix对于线程的监控主要 hook pthread 的pthread_create pthread_detach pthre...
@Override
public Context getApplicationContext() {
return (mPackageInfo != null) ?//此时mPackageInfo是在执行完成attachBaseContext方法之后才进行的赋值 所以此时获取是null
mPackageInfo.getApplication() : mMainThread.getApplication();
}
-----------------------------
这里mPackageInfo不为null,应该是mPackageInfo.getApplication()返回为null吧, 因为LoadedApk.mAplication是在attachBaseContext之后赋的值
Context getApplication()返回null先来看下Context的类组织结构 ContextImpl: Application/Activity/Service通过attach() 调用父类ContextWrappe...
一、简介 一提到App内的WebView加载网页,大家的第一印象就是:慢、耗流量、体验比原生差。但WebView加载网页也有其天生的优势:动态,跨平台,开发周期短。 那能如何...
一、序 说到内存映射函数mmap大家可能觉得陌生,其实Android中的Binder机制就是mmap来实现的。不仅如此,微信的MMKV key-value组件、美团的 Log...
通过mmap或者内存共享的Linux IPC机制 直接将同一段内存映射到数据发送进程和数据接收进程的用户空间,这样数据发送进程只需要将数据拷贝到共享的内存区域,数据接收进程就...
Android日志收集: 日志的收集一直有个痛点,就是性能与日志完整性无法兼得。 保证性能: 要实现高性能的日志收集,势必要使用大量内存,先将日志写入内存中,然后在合适的时机...
前言 好久没有更新常用的第三方库了。让我们来聊聊MMKV这个常用的第三方库。MMKV这个库是做什么的呢?他本质上的定位和sp有点相似,经常用于持久化小数据的键值对。其速度可以...
日志收集框架的作用 相信大家在开发应用的时候,总会遇到bug,这个时候,如果bug是在我们本地开发的过程中发现的,那么我们把手机插入android studio进行联调,就可...
Linux内存指标概念 VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS- Resident Set Size 实际使用物理内存(包含...
一、基础 1.1 Java 系列文章Java基础Java基础(一)-泛型[https://www.jianshu.com/p/d7e470217272]Java基础(二)-注...