
framework
文章平均质量分 79
HHTC_NICE
主要从事Android系统开发工作
展开
-
Android studio Android源码开发环境搭建
Android studio Android源码开发环境搭建原创 2022-01-03 14:01:19 · 3250 阅读 · 1 评论 -
Android InputManagerService分析(基于Android 8.0)
InputManagerService原创 2021-09-12 09:06:29 · 1107 阅读 · 0 评论 -
Android WallpaperManager 壁纸分析
1 壁纸example// 主屏幕壁纸flagpublic static final int FLAG_SYSTEM = 1 << 0;// 锁屏壁纸flagpublic static final int FLAG_LOCK = 1 << 1;WallpaperManager相关API介绍// 设置动态壁纸public boolean setWallpaperComponent(ComponentName name)// 清除锁屏壁纸public void c原创 2021-07-09 11:11:20 · 4989 阅读 · 3 评论 -
WindowManagerService之addWindow函数分析
addWindow函数分析public int addWindow(Session session, IWindow client, int seq, WindowManager.LayoutParams attrs, int viewVisibility, int displayId, Rect outContentInsets, Rect outStableInsets, Rect outOutsets, InputChannel outInputChannel)step 1, 权限检原创 2021-06-20 17:34:15 · 1309 阅读 · 0 评论 -
Android常见系统问题分析工具
selinux原创 2021-06-20 15:10:52 · 545 阅读 · 0 评论 -
WindowManagerService介绍
WindowManagerService原创 2021-06-15 22:24:21 · 555 阅读 · 0 评论 -
lowmemorykiller
lowmemorykillerAndroid系统中当Activity切换到后台,activity所在进程并不会马上退出,还是会继续存在系统中,便于再次启动提高响应速度(热启动),当内存达到一定极限值,lmkd会根据策略来杀掉一些优先级较低的进程来保障系统正常运行。lowmemorykiller Android8.0之前主要实现在kernel中,8.0以后主要在lmkd中,kernel使用vmpressure机制,达到和kernel解耦的目的, Android10.0在Android8.0的基础上新增了几个原创 2021-05-23 20:13:57 · 590 阅读 · 0 评论 -
Android adj相关简介介绍
Android应用程序主要以activity/service/contentprovider/broadcastrecevier四大组件组成,ActivityManagerService根据四大组件的生命周期函数,以及进程的创建,死亡等来动态调节进程自身的状态,影响进程的CPU占用时间,内存IO等资源分配。进程有两个比较重要的状态值,即adj(定义在ProcessList.java)和procState(定义在ActivityManager.java),控制缓存进程和空进程个数上限依赖于procState,原创 2021-03-18 10:20:41 · 2120 阅读 · 0 评论 -
Android 权限机制简单分析
Android6.0之前,设备上安装的软件只要在AndroidManifest.xml中声明了的权限就可以拥有那些权限(安装时权限), 6.0以及之后增加运行时权限,不但要AndroidManifest.xml中声明,APK运行时通过弹窗提示用户是否给予授权授权和撤销PackageManager提供了grantRuntimePermission/revokeRuntimePermission接口用来授权和撤销授权。这些权限一般是PROTECTION_DANGEROUS类型// PackageManag原创 2021-02-18 18:55:07 · 3236 阅读 · 0 评论 -
Android PowerManagerService简单分析
PowerManagerService是负责管理、协调设备电源管理的系统服务之一,它在Framework层建立起一个策略控制方案,向下决策HAL层以及kernel层来控制设备待机状态,控制显示屏,背光灯,距离传感器,光线传感器等硬件设备的状态。Android的电源管理主要是通过wakelock机制来管理系统的状态,整个android电源管理,可以分为四个层次:应用接口层(PowerManager.java)Framework层(PowerManagerService.java)HAL层(Power原创 2021-02-07 21:41:59 · 3856 阅读 · 0 评论 -
repo的简单使用
下载 repo 工具:mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo导入到环境变量export PATH=~/bin:$PATHexport REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'初始化repo仓库*repo原创 2020-11-14 22:43:10 · 1070 阅读 · 2 评论 -
AtivityManagerService之BroadcastReceiver
三种发送广播普通广播:通过Context.sendBroadcast()发送,可并行处理有序广播:通过Context.sendOrderedBroadcast()发送有序广播粘性广播:通过Context.sendStickyBroadcast()发送ActivityManagerService中的一些重要的成员// 广播队列BroadcastQueue// 保存动态广播的IntentFilter信息BroadcastFilter//记录动态广播的BroadcastFilter列表R原创 2020-08-15 12:48:03 · 215 阅读 · 0 评论 -
ContentService简单分析
ContentService采用的是观察者模式,APP通过ContentResolver向ContentService注册自己感兴趣的Uri消息。当对应的数据发生变化时,ContentResolver调用notifyChange函数向ContentService发送对应Uri数据改变的通知,ContentService查询对应Uri所对应的ContentObserver代理对象集合,通过IContentObserver代理对象回调ContentObserver的notifyChange函数1 Conten原创 2020-06-18 23:39:58 · 2204 阅读 · 0 评论 -
ActivityManagerService之ContentProvider原理篇2数据传输流程
ContentProvider通过Binder进程间通信机制来突破应用程序边界的权限控制(IBulkCursor和IContentProvider),同时以共享内存作为数据载体(CursorWindow)ContentProviderProxy所对应的进程通过IBulkCursor和CursorWindow来操作数据集合ContentProvider数据传输流程的时序图如下:类的简单说明BulkCursorToCursorAdaptor将BulkCursor代理对象转成Cursor的适配器类B原创 2020-06-14 20:19:27 · 350 阅读 · 0 评论 -
ActivityManagerService之ContentProvider原理篇
AMS原创 2020-06-06 23:53:48 · 552 阅读 · 0 评论 -
Androidd zygote启动分析
1 Zygote简介1 Zygote是由init进程通过解析init.zygote32.rc或init.zygote64.rc文件 fork生成的,zygote所对应的可执行程序app_processZygote.rc文件如下// 将进程名app_process64改为zygote, 添加启动system-server参数service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --start-system-ser原创 2020-05-17 20:26:50 · 276 阅读 · 0 评论 -
PackageManagerService简要分析
PackageManagerService主要职责1 给应用程序分配Linux UID 和 GID2 管理系统权限3 扫描APK安装信息(解析AndroidManifest.xml)4 提供查询四大组件等服务5 APP安装与卸载1 给应用程序分配Linux UIDAndroid 系统中 UID/GID 介绍:UID 为用户 ID 的缩写,GID 为用户组 ID 的缩写,这两个概念均...原创 2020-04-25 19:17:52 · 726 阅读 · 0 评论