位置: 编程技术 - 正文

ActivityManagerService (二)

编辑:rootadmin

推荐整理分享ActivityManagerService (二),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

文章出处: (一)

继续总结:

ActivityManagerService.setSystemProcess();

当初android 查看内存使用情况提到了这个函数。

1)注册AMS

在SystemServer中会看到ServiceManager中会注册很多service,可是轮到AMS的时候直接调用的main,到这里才看到了注册。注意addService时候的第三个参数是true,一般默认是false。

2)注册procstats、meminfo、gfxinfo、dbinfo、cpuinfo、permission

3)getApplicationInfo

首先getPackageManager得到是在SystemServer中初始化的PM,这里的ApplicationInfo应该是在AMS.main的时候实例化LoadedApk时候new出来的?不太确定。

4)installSystemApplicationInfo

跟之前AMS.main中提到的getSystemContext一样,就是将ApplicationInfo绑定到mSystemContext

5)newProcessRecordLockedProcessRecord记录了当前ApplicationInfo的uid号、userId、processName、以及进程优先级等,并且在pkgList保存了所有在当前进程中的package信息。具体的ProcessRecord后面继续说明。6)app.persistent = true;

一直保持这个应用运行,应用是不会被随便kill的。

ActivityManagerService (二)

7)app.pid = MY_PID;

应用的pid应该是system_server的pid。

8)app.makeActive(mSystemThread.getApplicationThread(), mSelf.mProcessStats);

先来看一下第一个参数ApplicationThread:

在ActivityThread中定义了一个常量mAppThread,也就是说每实例化一个ActivityThread,就会跟这有个ApplicationThread。这里的ApplicationThread也是AMS中的关键:四大组件之间的连接这里基本都涉及到了。对于AMS中的四大组件的详细串联过程,后期在《ActivityManagerService 详解》中会继续补充。

回到之前的makeActive函数中,显然了这里的 _thread不是为null。之前ProcessRecord构造函数中并没有初始化thread,所以,这里thread是null的。注意这里的变量baseProcessTracker,ProcessRecord很多地方会用到这个tracker:刚开始的时候肯定是null,所以初始化就在这里:这里的mProcessStats是在AMS.main中构造函数里面初始化过。这里会构造PackageState和ProcessState,并分别添加到mPackages和mProcesses数组中,并将ProcessState添加到PackageState的mProcesses数组中,从这里可以看到,一个Package可以运行在几个process里面,通过一个process也可以运行几个package。下面是上述几个类的结构图:最后将当前ProcessRecord加入到mProcessNames和mPidsSelfLocked数据结构当中。updateLruProcessLocked用于调整系统优先级,updateOomAdjLocked用于low memory killer,基本上ProcessRecord是没看懂,后期继续研究补充。

android寻找最适合资源过程 Whenyourequestaresourceforwhichyouprovidealternatives,Androidselectswhichalternativeresourcetouseatruntime,dependingonthecurrentdeviceconfiguration.TodemonstratehowAndroidselectsanalternativeresource,

ActivityManagerService (三) 文章出处:

第一章,listview的简易用法(Android) 这篇文章主要是练习了安卓listview的arrayadapter和baseadapter的简单填充。1.arrayadapter填充布局:RelativeLayoutxmlns:android=

标签: ActivityManagerService (二)

本文链接地址:https://www.jiuchutong.com/biancheng/385959.html 转载请保留说明!

上一篇:HorizontalListView

下一篇:ActivityManagerService (三)

  • 缴纳购销合同印花税怎么算
  • 中国进口货物完税价格表
  • 进口关税怎么做分录
  • 超过认证期的发票能用吗
  • 出口关税的计算基数
  • 公司自有房产出租营业执照范围
  • 差额征税怎么填写申报表
  • 小规模开普票一个季度不能超过多少钱是免税的
  • 冲减营业税金及附加的分录
  • 税款所属期什么意思
  • 二手房交易税费最新规定
  • 减免增值税申报表
  • 房屋租赁合同印花税谁交
  • 劳务派遣怎么做起来
  • 短期借款,应付票据,应付账款和应交税费属于
  • 其他应收款账户期初借方余额为35400
  • 全年累积盈利交所得税吗?
  • 安徽附加税优惠政策
  • 房产税入哪个科目
  • 到期一次还本付息债券
  • 个税缴纳累计是每年一算吗
  • 法人名下两家公司,客户买货可以用另外一个公司开票吗
  • 库存商品怎么结转损益
  • 办公室电话费
  • 公积金发放怎么自动转入银行卡
  • 公司资金周转困难怎么办
  • 工资做账表格怎么做
  • 股份公司的架构
  • 本年利润和未分配利润怎么结转
  • mac如何打印预览
  • 升级w10系统
  • CI(Codeigniter)的Setting增强配置类实例
  • 防止盗链的php代码
  • 房地产企业土地出让金抵减销项税额
  • XF86Setup命令 设置XFee86
  • 出口增值税申报了
  • 利息收入包括
  • mysql中regexp_substr函数的使用
  • 非本公司员工能上班吗
  • 没进项票
  • Vue 拖拽排序
  • 公章变更需要到哪个部门
  • 增值税是指哪些税种
  • 利润分配转作股本的股利属于什么科目
  • 综合评价怎么改
  • 每天统计数据的表格
  • 车辆维修费如何赔偿
  • 房租已付未收到发票
  • 长期待摊费用进项税分录
  • 企业购买房产缴纳房产税
  • 土地出让金进项税怎么算
  • 还银行贷款如何计算利息
  • 先开发票钱后进怎样做帐?
  • 土地拍卖相关法律法规
  • 金融资产发生的负债包括
  • 财务报表分析的目的
  • 网上充值平台不能提现怎么办
  • 企业投资所得如何征税
  • 日记账的建账工作
  • mysql8.0 win7
  • windows xp计算器
  • win10操作中心设置
  • 会声会影win7怎么兼容
  • win8和win10怎么共享文件
  • win8电脑路由器网络受限怎么办
  • exact form
  • node.js jquery
  • java框架怎么用
  • 批处理常用命令
  • JavaScript不支持ie
  • jquery删除节点的元素
  • unity uishader
  • python 循环太慢
  • python爬虫有道翻译
  • 总结网络io模型的特点
  • 股权转让怎么计算个人所得税
  • 浅谈新时代劳动教育答案
  • 青椒课堂怎么激活登录
  • 国税湖南电子税务局官网
  • 滨州市望海花园北侧规划
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设