前言 ZRAM这个玩意儿在移动端上已经存在很长时间了,但是不知道为什么现在PC上依然在使用普通的swap。在我看来,zram这个玩意其实放在PC上也是很不错的一个功能。特别是现在一些云服务的内存不到的情况下使用,还是能缓…
(原创)基于Android R之ContentProvider分析
1. 概述 ContentProvider(内容提供器)是Android四大组件之一,提供对数据访问的统一格式,封装具体的实现。使用方无需知道底层数据的组织形式(例如数据库、文件、网络等),只需要…
(原创)使用Android Studio开发Gradle插件
记录下使用Android Studio开发Gradle插件的过程 Grandle插件开发 首先创建一个Android项目 在刚刚新创建的项目中,新建一个Android Module项目,类型选择A…
(原创)ServiceManager.addService流程学习
最近在公司有听到同事做的一个需求。就是一个非系统应用(不使用系统签名),通过额外的方法,将自身一个AIDL service的binder句柄通过ServiceManager.addService接…
(原创)使用AOSP源码为Khadas VIM3编译系统镜像
事情的开始是这样,去年在咸鱼蹲了一块Khadas VIM3的开发板,本来是想体验一下Fuchsia系统的的,但是Fuchsia系统对VIM3支持并不好,一直没有运行成功,但是呢,最近发现Googl…
(原创)基于Android R之了解下ArtField、ArtMethod、DexCache和Class
在初略了解了ClassLinker之后,我们下一步先了解一些相关的类或者结构体。ArtField在ART虚拟机底层中用来表示类的成员变量的;ArtMethod则是用来表示类的成员方法;DexCac…
原创)基于Android R之ClassLinker分析
ART虚拟机系列,在前几篇我们分析了ART虚拟机的创建、JavaVmExt和JNIEnvExt。这篇我们继续展开,我们来分析下ART虚拟机中ClassLinker的作用。首先我们看下ClassLi…
(原创)基于Android R之ART虚拟机JNIEnvExt类介绍
说到JNIEnvExt这个类,其实是和JavaVMExt类似的,JavaVMExt是从JavaVM继承而来,而JNIEnvExt类则是从JNIEnv继承而来,类关系图和JavaVMExt也是类似的…
(原创)基于Android R之ART虚拟机的JavaVmExt类和InitNativeMethods方法介绍
这一篇是紧接着上一篇《(原创)基于Android R之ART虚拟机的创建流程》遗留的一些问题做进一步分析。上一篇我们遗留了两个内容,一个是JavaVmExt类,另一个则是InitNativeMet…
(原创)基于Android R之ART虚拟机的创建流程
我们知道Android的底层是Linux系统,Android系统运行的APK都是包含的Java代码。要在Linux上运行Java代码,这里就会涉及Java虚拟机创建的过程,Android系统自5.…