虚拟按键隐藏过程log

公司最近开始搞Android P的项目,有一天在新的代码上出现了一个奇怪的问题。在点完开机向导后,进入到launcher,发现虚拟按键中的recents不见了,点击那个区域也没反应,但是在系统配置发生改变时(比如切换言)recents又出来了。 刚开始只有一个user版的手机,开机向导过程中的log抓不到,怀疑是别人改了SystemUI造成的也没法验证,为了方便分析问题,只能先编一个userdebug版本。编译时间比较长,闲着也是闲着,就先在代码里看下有没有什么头绪吧。 在SystemUI...

阅读全文

ActivityManagerService启动过程

ActivityManagerService简称AMS,也就是通常说的组件管理器,是系统核心服务之一,用于对四大组件进行管理,包括创建四大组件,组件生命周期管理等。这里先先了解下AMS的创建过程。代码基于Android P。 AMS的启动是在SystemServer中进行的。SystemServer中服务启动分为三个过程: 123startBootstrapServices();startCoreServices();startOtherServices(); AMS的启动贯穿了这三个过...

阅读全文

应用安装-点击apk安装

之前了解了通过adb进行应用安装的过程,现在了解在应用中点击apk进行应用安装的过程,代码基于Android P。安装流程的PKMS部分和通过adb安装类似,这里主要是了解下应用安装发起过程和PackageInstaller相关代码。 发起安装该部分以DocumentsUI为例,了解应用安装发起的过程。打开Files应用,切换到内部存储,找到apk,点击安装。对应的代码如下: 1234567891011private void onDocumentPicked(DocumentInfo d...

阅读全文

PKMS启动过程

PKMS启动过程参考:https://blog.csdn.net/u012124438/article/details/54882771 PackageManagerService,是Android系统中核心服务之一,管理着所有跟package相关的工作。Android是基于mashup(混搭)的风格设计的,程序是由一个个的组件拼凑起来的,而PackageManagerService的任务就是解析package,然后把其中的组件信息一个个的拆解出来把相关信息放到内存里,当然还要处理pack...

阅读全文

ABI确定过程

ABI确定过程之所以了解这块内容,是因为在项目中出现了一个奇怪的问题:64位的代码编译刷机后,多个app无法运行,点击后直接闪退,log提示是找不到dex文件。问题非必现,但是第一次启动后如果存在该问题,之后就会一直存在该问题。但是恢复出厂设置和重新刷机后问题可能会消失。 经人提示是32和62位相关的东西引起的,看log发现出问题的apk都是64位的,但是查找的路径是32位的,所以找不到。 问题的log如下: 1234567891011121314151617181920212223242...

阅读全文

Android “original-package” 机制解析

Android “original-package” 机制解析原文:https://blog.csdn.net/hwy584624785/article/details/51774580 问题 之前项目上遇到一个问题:手机系统从版本 A 通过 FOTA 升级到版本 B 后,系统源码中的输入法(LatinIME.apk,下面称 LatinIME)不见了!也就是设置中语言和输入法选项没有 Android Keyboard 这一项,并且设置中的应用选项中也找不到。 问题情况 先了解了一下两个版本...

阅读全文

应用安装-开机安装应用

一、应用安装类型1. 安装方式: 安装系统APK和预制APK时,通过PMS的构造函数中安装,即第一次开机时安装应用,没有安装界面。 网络下载安装,通过应用商店等,即调用PackageManager.installPackage(),有安装界面。 通过adb工具安装,没有安装界面,它通过启动pm脚本的形式,然后调用com.android.commands.pm.Pm类,之后调用到PMS.installStage()完成安装。 安装本地apk,有安装界面,由PackageInstaller系...

阅读全文

HashMap、LinkedHashMap、三级缓存

HashMapHashMap在迭代器创建后,通过iterator的remove()方法之外的其他方式改变HashMap结构(增加或删除元素),都会抛出ConcurrentModificationException异常(fail-fast),因为HashMap不支持并发操作,预期在将来产生无法预料的后果,不如马上抛出错误。这种fail-fast的行为并不一定总是有效,因此在程序中不应该依赖这种行为。 HashMap中的树节点size是普通节点的两倍左右,所以在桶里的节点不多的时候(阈值为6,...

阅读全文


Powered by Hexo and Hexo-theme-hiker

Copyright © 2018 - 2022 得一 All Rights Reserved.

访客数 : | 访问量 :