LXG Blog

Rome was not built in a day.

Android 面试

Android Knowledge System

AOSP-Google 总体架构 系统启动 图形显示系统 输入输出系统 包管理器 startActivity AMS WMS WMS 属性系统 电话系统 网络管理服务 位置信息服务 lmkd Binder Socket Handler

Android Restrictions non-SDK interfaces

android 11 针对非SDK接口的限制

针对非SDK接口的限制-Google 反射限制 Class.java 代码基于android 11 public final class Class<T> implements java.io.Serializable, GenericDeclaration, ...

Android Multimedia

Android 多媒体

音频-AOSP 音频架构 相机架构 图形架构 媒体架构

Android Lock Task Mode

锁定任务模式

lock-task-mode-Google KioskMode-Android-Github DeviceOwner adb shell dpm set-device-owner net.derohimat.kioskmodesample/.AdminReceiver public final class Dpm extends BaseCommand { private...

Android Performance之流畅性

流畅性主要指的是卡顿、掉帧,Smooth vs Jank

androidperformance.com Android性能优化之渲染篇-胡凯 性能评估-AOSP 卡顿 大多数手机的屏幕刷新频率是60hz,如果在1000/60=16.67ms内没有办法把这一帧的任务执行完毕,就会发生丢帧的现象。丢帧越多,用户感受到的卡顿情况就越严重 卡顿分类: 与负载能力相关的卡顿 与抖动相关的卡顿 CPU and GPU 渲染操作通...

Android AppOpsService

Application Operations Service

Android原生权限管理AppOps-简书 App Ops 简介 在 Android 系统中存在一个叫做 “appops” 的系统服务,该服务定义了一系列的“应用操作”(application operation, op)。其中部分“应用操作”与“权限”对应(如 OP_CAMERA 与“相机权限”),其余则对应单独的功能(如 OP_READ_CLIPBOARD 与读取剪贴板,但并不存...

Android Location

位置信息服务

构建位置感知应用-Google Android Q 集成百度定位-简书 GNSS GNSS的全称是全球导航卫星系统(Global Navigation Satellite System),它是泛指所有的卫星导航系统,包括全球的、区域的和增强的, 如美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统)、欧...

Android 11 DropBoxManager

DropBoxManagerService

DropBoxManager-Goolgle DropBoxManager启动篇-Gityuan 简介 Enqueues chunks of data (from various sources – application crashes, kernel log records, etc.). The queue is size bounded and will drop old da...

Android系统启动

System Boot Process

Android启动流程-简书 Android系统启动-Init篇-Gityuan 框架图 BootLoader 从Power键上电到U-boot流程 当uboot(fastboot)被装载后便开始运行,它一般会先检测用户是否按下某些特别按键,这些特别按键是uboot在编译时预先被约定好的,用于进入调试模式。 如果用户没有按这些特别的按键,则uboot会从NAND Flash...

Android 11 Property System

属性系统

Android属性系统-简书 架构图 Android系统一启动就会从若干属性脚本文件中加载属性内容 Android系统中的所有属性(key/value)会存入同一块共享内存中 系统中的各个进程会将这块共享内存映射到自己的内存空间,这样就可以直接读取属性内容了 系统中只有一个实体可以设置、修改属性值,它就是属性系统(init进程) 不同进程只可以通过sockeet...