小米Android Framework及系统稳定性专家,专注Android系统改进及增强,研究跟进最新Android系统及特性,提升系统稳定性和用户体验
问题现象 这个问题最早是由接电话重启的现象暴露出来的,当时看到异常信息是Native crash,栈如下: Build fingerprint: 'Xiaomi/scorpio/scorpio:6.
一、准备工作 1、下载并编译Android系统源码 这里比较灵活,可以下载公司内部机型的代码,也可以下载原生AOSP的代码 环境配置参考 https://source.
一、准备工作 1、下载最新的Android Studio版本 https://developer.
一、问题现象 1、界面定住,没有任何刷新,所有输入事件无效,包括power key 2、adb shell可以连接并操作手机 3、手机的data和sdcard存储空间已满 4、watc...
前言 这个问题在来小米之前就遇到并解决过,当时的解决方案与朴老师的初步解决方案一样,本文在之前的初步分析结果之上进一步进行了深入分析,最终得出了当前看起来相对合理并符合原来架构设计的最终方案。
起因 JT同学拿着手机来找我说用着用着自动重启了,让我看一下,我抓出bugreport一看是system server发生watchdog重启了,然后接着看了一下traces,发现traces比较诡异。
上午的宁静被一个OTA卡白米问题打破,接下来不断有人反馈不同机型都复现了OTA后卡白米,10.
招聘职位 1. 高级Android系统开发工程师 高级Android系统开发工程师 工作职责: 1.
解决方案: 当前是根据当前问题场景即竖屏强制更改为横屏的需求而做的改动,基本是hardcode定义的状态,总共修改有效代码行数5行,如果后续有其他需求或者需要更灵活的配置横屏和竖屏,可以采用编译开关生成系统属性的方式来控制,在系统中通过属性来判断当前的屏幕状态以达到灵活目的,可以在本次修改的基础上增加条件判断达到目的,具体修改代码如下图中圈红标识。
时隔2年又开始使用Mac OS系统,之前的很多快捷键和常用的命令都忘记了,使用起来确实不方便,效率也低,特别是terminal下,所以对于terminal又找了一下并整理如下,希望对后来的同学也有用: control + a 将光标移到行首 c...
温故知新,基础复习(二叉堆排序) 最小堆(最终数组的数据是降序),最大堆(最终数组的数据是升序) 下例是最小堆 #include #include void Swap(int Arra[],unsigned int LeftIndex,u...
温故知新,基础复习(快速排序及优化) 使用了三值取中和插排优化 #include #define InsertSortNumber 10 void InsertSort(int Arra[],unsigned int LowIndex,uns...
温故知新,基础复习(一个有序从大到小不重复的数列,任意给出一个sum值,求出数列中所有满足和为sum的数对) #include #include void PrintSumNumbers(int Arra[],int ASize,int Sum)...
一种大数据外部排序(内存无法加载所有排序元素)、去除重复元素、快速找到随机被删除元素的BitMap小算法,核心思想即通过将一个数作为下标(index)来索引一个bit表示一个数是否存在,排序时的时间复杂度为O(N),需要的额外空间的复杂度O(N/8)...
一、出问题的场景 1、Sensorservice线程正在处理compass sensor事件的过程中,检查了一次buffer的指针的有效性,并在稍后会传递到AKM获取数据的函数接口中使用 2、Sensorservice线程所在进程的负责跨进程通信的B...
一、初步分析结论 sensorservice多线程机制存在问题,导致在disable accel sensor并释放相应内存和数据之后, 有很小的概率发生继续读取到未处理完的sensor事件,从而继续使用相应的内存和数据, 并且没有做相应的防御保护措施,最终引起指针地址操作错误。
一、问题现象 先遮盖P-Sensor,然后拨打电话,90%的情况下屏幕无法自动关闭背光显示。关闭Settings-》Display-》Brightness-》Auto,然后再执行以上操作则100%能够正常关闭背光显示。
一、问题现象 按下Power key点亮屏幕时,很大概率出现先亮button light,然后再亮屏的现象,明显感觉到卡顿。 线索1、快速按下Power key熄灭和唤醒基本不会出现以上问题现象 线索2、长按Power key会同时亮LCD和butt...
一、问题现象 1、多次进出需要强制横屏的app,比如Real FootBall2015,在退出app的时候会有概率出现退出卡顿,然后TP无法输入的问题。
一、问题现象 1、用户直观看到的现象是黑屏。 2、出问题时StatusBar、NavigationBar和墙纸消失。 3、大部分发生在FOTA重启之后,出现概率很低。
一、问题现象 1、用户直观看到的现象是System先ANR。 2、ANR之后系统重启。 测试方法: 在录音的界面不停的滑动音量进度条,同时座机给测试机打电话,电话没有接通,只见界面冻结,弹出ANR,接着系统重启。
一、问题现象 1、System先ANR。 2、ANR之后系统重启。 测试方法: Stability test。 Platform:MT6732 Android版本:4.4.4KK BuildType:user 系统软件版本:D17+ZX 系统RAM:1GB 问题概率:暂未统计,截止到目前仅此1次 参考机行为: 1、低概率问题,暂无参考机行为。
Firefox OS系统架构框图 一些Firefox相关的术语简介: B2G Boot to Gecko 的简称。 Boot to Gecko Firefox OS 操作系统的工程代号。
Iptables简介 iptables是与最新的 2.6.x 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
与Task相关的属性解析 android:allowTaskReparenting 用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。
< drawable name="white">#FFFFFF< /drawable>< !--白色 --> < drawable name="black">#000000< /drawable>< !--黑色 --> < drawable n...
作为一个完整的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、SQLite、Content Provider和File。
检测某Activity是否在当前Task的栈顶 public static boolean isTopActivy(String cmdName, Context context) { ActivityManager manager = (ActivityManager) context.
Application Fundamentals——应用程序基础知识 Key classes——关键类 Activity Service BroadcastReceiver ContentProvider Intent In...
Android字体简介 Android系统默认支持三种字体,分别为:“sans”,“serif”,“monospace”。 android.
前言 之所以会说到这几个特殊权限,是因为fastboot这个命令好像有点抽风,给人的感觉就是有时能用有时不能用,执行fastboot devices的错误提示: no permissions 为了找到问题的原因,就思考了一下。
/* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0;...
此文章原始是PPT格式已转换为PDF,完整内容也可以下载文档阅读: AndroidARTruntimeOverview
先一睹Dalvik虚拟机在Android系统框架图中位置: 文章目录: 一、虚拟机简述二、Java虚拟机简述三、Dalvik虚拟机简述四、Dalvik虚拟机与Java虚拟机的区别五、Dalvik虚拟机执行原理简述 此文章原始是PPT格式已...
mkdir memoryUsage adb shell dumpsys meminfo > memoryUsage/dumpsys_meminfo.txt adb shell cat /sys/kernel/debug/ion/ion_mm_heap > memoryUsage/ion_mm_heap.
•Android Anatomy•Linux Kernel •Native Libraries •Android Runtime •Native Libraries •Android Runtime •Application Framework •...
完整分析流程和详细内容也可以下载PDF文档: InCallUI_issue_analysis_report 一、问题现象 当手机有来电时,先听到铃声,过了比较长的一段时间(3-4s)屏幕才点亮并显示来电界面。
一、问题现象 在contacts中添加一个新的联系人,为新的联系人选择一个icon,在弹出的documents窗口中选择drive,在drive中选择一个图片,然后出现一段时间的黑屏。
一、问题现象 下载正式版本软件,第一次开机做完SetupWizard之后无法锁屏,HOME键和MENU键无效,重启后恢复正常。 Platform:MT6589 Android版本:4.
详细内容和具体分析流程也可以下载PDF文档: BOOT_COMPLETED issue analysis report 一、问题现象 手机开机后,按POWER键无法关闭屏幕,过了很长一段时间(20s左右)才能恢复正常。
前言: Activity、Service、BroadcastReceiver、Content Provider是Android的四大应用程序组件,构成一个完整的应用程序的这些组件可以在同一个进程,也可以不在同一个进程,而当这些组件不在同一个进程,需要进行数据交互时就需要一种IPC(Inter-Process Communication)进程间通信机制来完成,而Binder就是提供了IPC功能的一个框架。
前言: Magnification Gesture是Android系统辅助设置中提供的一种功能,它能够提供全局任意窗口的放大浏览功能,以帮助视力不是特别好的用户也能无障碍的使用,提升用户体验。
前言: Android对Activity的组织管理会引入一些名词概念术语,像Stack、Task等,本文会做简单介绍。Activity的启动、切换以及组织管理会受不同的配置和属性的影响,本文会简单介绍一些相对重要和典型的概念,比如BackStack、Affinity。
前言: Activity是android的四大组件之一,它主要负责管理android应用程序的用户界面。 本文主要从framework的角度去分析activity的启动过程。
文章目录: Coredump简介及使用... 1 目录... 2 一、什么是Coredump. 3 二、Coredump产生的原因... 3 三、如何控制产生Coredump.
目录章节: 1、Framework运行环境 2、zygote的启动 3、SystemServer进程的启动4、启动第一个Activity 概述图: 由于将PPT格式转换为博客内容相当花费时间,请对详细介绍内容感兴趣的同学直接下载文档: An...
很久没有写过新的博客了,原因有很多,冠冕堂皇的理由就是工作忙,生活忙,各种累,直白一点其实就是变懒了,所以没有写。 在沉寂了这么长一段时间过后,终于又要重新出发了,对于自己当前的状态,觉得首先要有所沉淀,然后就是要放空自己,唯有放空自己方能继续进步。
1、adb shelldumpsys gfxinfo Caches: Current memoryusage / total memory usage (bytes): TextureCache 2182188 /25165824...
相关命令: adb shell dumpsys meminfo > dumpsys_meminfo.txt adb shell cat /sys/kernel/debug/ion/ion_mm_heap > ion_mm_heap.
在Android中修改键盘布局或者按键映射时,除了在inputdevice中修改上报的SCANCODE之外,还需要修改相应的kl文件。 具体原理: 当一个inputdevice的driver将按键的SCANCODE上报给EventHub之后,EventHub还会用SCANCODE去获取具体的Keycode,这一步就是根据相应的inputdevice的kl文件中的配置得到的,所以如果仅仅上报SCANCODE,不修改kl文件,则会导致SCANCODE是正确的,但是找不到相应的mapkey,从而上报的最终keycode是UNKNOWN。