Android P 应用分组介绍
简介在Android P 中针对电源管理,添加了应用分组功能.依据应用使用的频率和最近一次使用时间,对其资源请求进行优先级排序。应用待机分组一共有五个分组,系统会根据每个应用的使用情况,将其划分至五个优先分组中的一个,而每个分组对设备资源的调度各有不同的限制。 1 优先分组系统动态的分配应用到不同的 ...
阅读更多
Android P 非SDK接口限制分析
在Android P版本,为了以后的android大版本更好的升级,Google在P版本上对隐藏的Java API进行了一定的限制,后续版本会逐步的完善限制。app侧通过反射等方式调用的Java API将很难实现。这也是为了Android 生态在未来更好的发展。 涉及的源码路径 libcore/oj ...
阅读更多
Mac Docker安装battery-historian
环境说明 mac os 版本: 10.15.2Docker 版本: 2.2.0.0 如果使用github上的官方安装方法安装,需要vpn,尝试使用vpn,依然没有反应,不知道是不是网络问题,不去纠结。换其他方法。 使用阿里云上images出现无法打开的bugtrport.zip的问题,如果有大神指 ...
阅读更多
Android P 反编译vdex
本文记一次解析YouTube的vdex的过程.由于在Android P中有一种新的dex文件格式cdex,所以反编译过程和以前有所不同。 0 准备文件从机器中拷贝出文件: adb pull system/app/YouTube ./ 目录结构如下: YouTube | |--YouTu ...
阅读更多
实例Class文件结构分析
1 Class 文件结构最近在看《深入理解Android Java 虚拟机ART》,里面的第二章是讲解Class文件结构的,结合书籍以及《Java虚拟机规范1.7》的第四章节。手动的解析了一个helloworld的Java文件对应的class文件。本文主要目的就是通过例子加深对Java虚拟机规范所写 ...
阅读更多
Android Classloader
Android N 最近的工作遇到了运用反射来加载类,需要用到这块的知识,因此有了这篇文章. ##1. java类加载器Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。具体过程参考< ...
阅读更多
Android开机总体流程
启动环节 启动电源以及系统启动当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行. 引导程序Bootloader引导程序是在Android操作系统开始运行前的一个小程序,它的主要作用是把系统OS拉起来并运行。 linux内核启动内核启动时,设 ...
阅读更多
Android O电量统计
#Android O电量统计 平台:Android O 电量统计电池电量统计: 软件电量计算:BatteryStatsHelper类中的processAppUsage()方法 硬件电量计算:BatteryStatsHelper类中的processMiscUsage()方法 fra ...
阅读更多
Zygote进程启动过程

zygote进程是由init进程启动的,在android中所有应用进程以及系统服务进程都是由zygote fork()出来的,并且system_server是zygote的嫡长子,
当zygote完成启动立启动system_server,这是在zygote.rc中的参数--start-system-serve决定的.
aosp/frameworks/base/cmds/app_process/app_main.cpp的main函数里runtime.start("com.android.internal.os.ZygoteInit", args, zygote);,
进入java层的aosp/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java的main函数

阅读更多
Android SystemServer学习笔记

版本:Android O

SystemServer和Zygote是Android java世界的两大支柱,SystemServer是Zygote孵化出来的进程,进程名为system_server,几乎所有的系统服务都在该进程中,eg:AMS,PMS,WMS .etc

阅读更多
init启动分析
Android N平台 涉及源码位置:aosp/system/core/init/init.cppaosp/system/core/rootdir/init.rcaosp/system/core/init/property_service.cpp 0 init进程的主要职责 init如何创建 ...
阅读更多
PackageManagerService 源码扫描安装包分析
平台:android 8.0 源码 本文分析的问题:apk的安装有如下四种方式: apk随着PMS的启动而安装(本文) adb install安装 ODM内置商店静默安装 拷贝apk到手机,界面安装 这四种方式在代码里的实现其实就是如下两种: PMS调用scanD ...
阅读更多
Android从驱动到应用(2)测试freg驱动的功能内置C程程序

在上一节驱动程序已经添加,可是还不知道该驱动程序是否可以正常工作,用该节的代码来验证一下.

阅读更多
Android从驱动到应用(1)添加

学习知识,重在实践.系列文章按照罗升阳大神的blog进行实践.向罗大神致敬!实现的是在从驱动层,HAL层,系统添加,JNI方法添加,AIDL方法添加,配置SELinux策略.
由于android版本的差异,部分代码和配置需要修改,kernel和android源码版本不一样才能出错,这样才有试错,学习成长的机会.本文是参看<<Android系统源代码情景分析(修订版)>>以及罗大神的blog和其他网友的blog而来.

阅读更多
Android从驱动到应用(5)框架层添加硬件访问服务

本节内容包括添加硬件访问服务,配置selinux权限,启动服务.

阅读更多