当前位置: 首页 > wzjs >正文

小学校园网站建设要求装饰装修公司排名前十强

小学校园网站建设要求,装饰装修公司排名前十强,如何做明星的个人网站,甘肃建设网站一、Launcher概述与应用图标显示原理1. Launcher的双重角色系统入口:响应点击事件,启动其他应用(通过Intent触发AMS)。桌面管理器:显示已安装应用的图标(从PackageManagerService获取应用信息)。…

一、Launcher概述与应用图标显示原理

1. Launcher的双重角色
  • 系统入口:响应点击事件,启动其他应用(通过Intent触发AMS)。

  • 桌面管理器:显示已安装应用的图标(从PackageManagerService获取应用信息)。

2. 应用图标数据加载流程

关键步骤

  1. 数据加载(子线程):

    • loadWorkspace():从数据库加载桌面布局(单元格位置、小部件等)。

    • loadAllApps():通过PackageManagerService获取已安装应用的ApplicationInfo(包名、图标、启动Intent)。

  2. 视图绑定(主线程):

    • bindAllApplications():将应用列表数据传递给AllAppsContainerView

    • setApps():更新RecyclerViewAdapter,触发图标渲染。

3. 关键类作用
类名职责面试考点
LauncherModel异步加载应用/桌面数据工作线程与主线程协作机制
LoaderTask执行数据加载的Runnable任务避免主线程阻塞
IconCache缓存应用图标(避免重复解析)性能优化关键点
AllAppsRecyclerView显示应用列表的滚动视图复用机制提升性能

二、Launcher启动流程原理

1. 系统启动阶段的Launcher加载

步骤解析

  1. 触发时机SystemServer启动完成后调用AMS.systemReady()

  2. Home Intent生成:创建包含CATEGORY_HOME的Intent(目标为Launcher)。

  3. 启动Launcher:若未运行则通过ActivityStarter启动Launcher主Activity。

2. 点击图标启动新应用

关键流程

  1. 跨进程通信:Launcher通过Binder调用AMS.startActivity

  2. 进程创建:AMS通过Socket通知Zygote fork新进程(非Binder因避免死锁)。

  3. 应用初始化

    • ActivityThread.main():初始化主线程Looper、Application。

    • AMS.attachApplication():建立Binder链接,通知启动Activity。

  4. Activity生命周期:依次调用onCreate()onStart()onResume(),触发视图绘制。


三、问题总结

请描述从点击桌面图标到应用显示的全过程
回答:

“该过程分为 Launcher响应 和 应用启动 两个阶段:
1. Launcher端

  • 点击图标触发startActivity(),生成包含FLAG_ACTIVITY_NEW_TASK的Intent。

  • 通过Binder向AMS发送请求,AMS记录ActivityRecord并检查目标进程是否存在。

2. 系统调度端

  • 进程不存在:AMS通过Socket通知Zygote fork新进程 → 加载ActivityThread.main() → 初始化Application和主线程Looper。

  • 进程存在:直接复用。

  • AMS通过ApplicationThread代理调度目标Activity的生命周期(onCreate()onResume())。

3. 应用端

  • ActivityThread处理LAUNCH_ACTIVITY消息 → 反射创建Activity实例。

  • 执行setContentView()onResume() → 触发ViewRootImpl执行Measure/Layout/Draw三阶段绘制。

  • 通过SurfaceFlinger渲染界面到屏幕,完成显示。”


文章转载自:

http://cNneTn3s.ksgjy.cn
http://0ednSoeM.ksgjy.cn
http://1z8u0HAY.ksgjy.cn
http://JsHeg2Gx.ksgjy.cn
http://upZXTafs.ksgjy.cn
http://AYPAFeO9.ksgjy.cn
http://HmHh1GKs.ksgjy.cn
http://bdxVP8yP.ksgjy.cn
http://bKDfgbA3.ksgjy.cn
http://f68SYRsJ.ksgjy.cn
http://ds9h1Ji9.ksgjy.cn
http://I1mbGn3J.ksgjy.cn
http://NrNwyt5W.ksgjy.cn
http://GcSkY190.ksgjy.cn
http://b4gc58yZ.ksgjy.cn
http://4Ch2Q1xV.ksgjy.cn
http://V6CQdguI.ksgjy.cn
http://znDYWvnk.ksgjy.cn
http://Vkv0Vt8Y.ksgjy.cn
http://TgJ94gHk.ksgjy.cn
http://GqwNHNEG.ksgjy.cn
http://n5OeqxEz.ksgjy.cn
http://SaQg2TsG.ksgjy.cn
http://Etoz6mHT.ksgjy.cn
http://C8oFA0iU.ksgjy.cn
http://HezzAxKq.ksgjy.cn
http://eUMbg8CN.ksgjy.cn
http://ieyLVr8O.ksgjy.cn
http://suJIm7uJ.ksgjy.cn
http://FJWD7O5w.ksgjy.cn
http://www.dtcms.com/wzjs/776150.html

相关文章:

  • 阳澄湖大闸蟹网站建设wordpress 极客主题
  • 网站设计原则的历史hs网站推广
  • 商城网站建设论坛网站目录链接怎么做
  • 新校区建设网站手机开发者模式怎么调成高性能
  • 用ps设计网站做多大的阿里巴巴关键词推广
  • 自己怎么做网站树莓派用wordpress
  • 做国外网站建设wordpress 九宫格
  • 企业网站建设市场报价沈阳建筑工程信息网
  • 家装设计软件自学seo是什么意思广东
  • 环保行业网站怎么做怎么快速优化网站
  • 做网站需要续费吗喷码机营销型网站
  • 找兼职做网站的哪里找wordpress手机访问
  • 山西省网站安徽网站建设哪家有
  • 贵州网站推广网页制作价格私活
  • 夏天做啥网站能致富wordpress 自动同步工具
  • 网站优化内容店铺推广渠道
  • 搜索关键词可以过得网站wordpress 发布
  • 做论坛网站能赚钱吗成都模板网站建设服务
  • 淄博高效网站建设找哪家江阴建设局网站
  • 多语言建设外贸网站设计吧 网站
  • 旅游网站域名应该如何设计瓜子二手车直卖网
  • 图书网站怎么做百度登录账号首页
  • 西安网站开发外包wordpress产品详情相册
  • 做数据收集网站济南网络推广网络营销软件
  • cname解析对网站影响短租网站那家做的好
  • 外贸推广网站磁力吧
  • 做外贸网站咨询邢台123生活信息网
  • 用响应式做旧书网站电商网站销售数据分析
  • 有了网站的域名下一步怎么做重庆市城市建设档案馆官方网站
  • 支付网站怎么做上海弄网站的