手机开发之三:CoreApp的深入分析

2023-05-16

四.CoreApp的深入分析

目前参考代码里面的CoreApp所完成的工作比较多且杂,主要说来有如下几件事。
    a)系统组件初始化;
    b)开机Logo的显示;
    c)Sim卡检测和Pin码校验;
    d)系统状态信息更新;
    i.电池状态;
    ii.网络信号;
    iii.网络模式;
    e)IAnnunciator的维护与更新;
    f)通话处理,打电话的输入框;
    g)主菜单处理;
    h)手机各种设置功能的处理;
    i)关机键的处理;
  目前CoreApp里面的代码,完成了太多的事,其实完全可以剥离成不同的模块来完成,大致可以分成如下几个部分。
  1、总控模块;(CoreApp)
  总控模块,主要完成手机按下开机键之后的各种初始化工作,同时此模块也是整个手机的控制中心,由它来完成手机的一些全局性工作,主要有如下几项。
  1.系统初始化、Sim卡检测和Pin码校验;
  2.开机Logo或者开机动画的显示;
  3.底层服务程序的启动;(WmsApp、DialApp等);
  4.系统配置信息的统一管理;
  由于写配置信息到NV上面是一件非常慢的工作,每次上层App改变配置之后都去操作NV,很影响速度。所以,可以在内存中开一个配置信息的Buffer,上层App操作的实际上是这个Buffer,然后由Core在空闲的时候再统一写到NV上去。
  5.关机处理;
  [注]
  由于CoreApp是在Idle Applet的界面之下,所以,为了能够实现“一键回菜单”的功用,有可能需要修改ui_task里面的Key处理函数,将所有的Key消息转发给 Core,这样Core就可以得到所有的Key事件了。(现在的ui_task只把Key事件发送给了AEE,而AEE只会将Key事件发送给当前活动 Applet)。
  2、Idle模块;
  主要完成待机界面的画图工作,主要有两部分:
  1.系统信息指示栏;
  2.待机界面(位图、动画、时钟、日历等);
  3.软键
  [注]
  Idle只负责界面工作,不负责具体的系统状态信息的获取工作,这个工作将由其它模块完成。
  3、Polling
  手机状态信息查询模块,主要是完成手机各种状态信息的更新与维护。主要有如下几种:
  a.电池强度;
  b.网络信号强度;
  c.网络模式(C/G);
  d.PLMN网络名;
  e.短消息、通话状态、闹铃;(这个由专门的模块完成,不在Polling之列);
  f.各种外设信息;(USB、耳机插入等);
  g.其它各种杂项信息;
  4、Menu模块
  菜单模块主要分两部分,一部分是主菜单的实现,另一个子菜单的实现。一般来讲,手机上的菜单系统应该是由Menu模块去统一完成,而不是由每一个子程 序去手动完成。菜单模块一般只需要负责到主菜单、二级菜单和三级菜单就Ok了。三级菜单之后的界面,就由每一个App单独去维护了。
  5、其它功能App模块;
  每一个功能模块,由一个专门的App来完成,这样的话,模块的独立性强,便于单独开发。模块间通过App启动和消息传送的方式来发生关系和进行模块间通信。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手机开发之三:CoreApp的深入分析 的相关文章

  • Qt调用js和js交互, QWebengine调用js

    QWebengine 调用js有两种方式 通过QWebChannel调用 写一个类然后继承QObject用于和js进行通信交互 ifndef TINTERACT OBJECT H define TINTERACT OBJECT H incl
  • LinuxMint KDE任务栏消失恢复

    桌面右击 gt 添加面板 gt 添加默认面板 就恢复了
  • 神奇的输入法——小狼毫——个性化设置

    电脑硬盘坏了 xff0c 重新换了硬盘 xff0c 自然就要把软件重新安装一遍 个人喜欢用 五笔输入法 xff0c 之前一直用的 极点五笔 xff0c 但是它一直没有更新 偶然间搜索到了 小狼毫 xff0c 用户评价都不错 xff0c 果断
  • MySQL explain字段总结

    目录 作用表组成id xff08 表的读取顺序 xff09 select type xff08 数据读取操作的操作类型 xff09 字段 type字段 possible key xff08 那些索引可以使用 xff09 key xff08
  • 查找 替换 细节

    查找内容 可以快速搜索每一处指定单词或词组 1 单击 编辑 菜单中的 查找 命令 2 在 查找内容 框内键入要查找的文字 3 选择其他所需选项 若要一次选中指定单词或词组的所有实例 xff0c 请选中 突出显示所有在该范围找到的项目 复选框
  • Anaconda和pip异常

    一 Anaconda异常 1 No module named unicodedata 正常使用时出现这个问题 xff0c 与其想着怎么解决 xff0c 不如直接重装python环境或者试试卸载并重新安装pip 卸载并重新安装pip请参考博客
  • Linux下批量替换tab到空格的转换

    将所有文件中的tab批量替换为空格 find type f exec sed i orig 39 s t g 39 43 其中 34 t 34 后面跟的是空格的数量 xff0c 我这里是4个空格 原链接 xff1a https stacko
  • fegin调用的时候数据格式转换为linkedhashmap

    在spring cloud项目开发中 xff0c 使用fegin进行远程调用 1 接口服务方返回类型为Map String Object 类型 2 接口调用方返回值类型也是Map String Object 3 通过fegin调用之后返回的
  • 在虚拟机上运行vxWorks

    Vxworks是一个嵌入式系统 xff0c 主要运行在arm ppc mips等嵌入式处理器上 xff0c 它同样可以运行在X86处理器上 风河公司开发的tornado开发环境就 包括了pentium版本 xff0c 并且发布了相应的bsp
  • 点乘和叉乘

    向量点乘 xff08 内积 xff09 和叉乘 xff08 外积 向量积 xff09 向量 向量是由n个实数组成的一个n行1列 xff08 nX1 xff09 或一个1行n列 xff08 1Xn xff09 的有序数组 xff1b 点乘 向
  • ​​Linux下ps -ef和ps aux的区别及格式详解​

    Linux下显示系统进程的命令ps xff0c 最常用的有 ps ef 和 ps aux 这两个到底有什么区别呢 xff1f 两者没太大差别 xff0c 讨论这个问题 xff0c 要追溯到Unix系统中的两种风格 xff0c System
  • Windows命令行操作

    打开 win 43 r然后输入cmd回车 命令 cd进入命令 dir显示命令
  • JDK源码之-java.lang.Object

    JDK源码之 java lang Object public final native Class lt gt getClass public native int hashCode public boolean equals Object

随机推荐

  • Docker安装Elasticsearch的遇到的那些坑

    1 根据百度到的一篇文章 https segmentfault com a 1190000004376504 下载其最新镜像 hangxin1940 docker elasticsearch cn v2 1 0 使用 docker run
  • APScheduler Execution of job “***“ skipped: maximum number of running instances reached (1)

    错误原因 有错误提示所说 xff0c 因为超过了最多实例个数 xff0c APScheduler的默认最大实例个数为1 xff0c 导致之后任务调用阻塞 xff0c 无法进行执行 解决办法 提高代码效率 xff0c 缩短代码运行时间 延长定
  • Spring boot + Spring Security + Thymeleaf 认证失败返回错误信息

    Spring boot 43 Spring Security 43 Thymeleaf 认证失败返回错误信息 Spring boot以其众多友谊的特性 xff0c 如零配置 微服务等 xff0c 吸引了很多的粉丝 而其与Spring Sec
  • Java经典面试题(其三)——JVM原理和调优

    Java经典面试题 xff08 其三 xff09 JVM原理和调优 一 什么是JVM JVM是Java Virtual Machine xff08 Java虚拟机 xff09 的缩写 xff0c JVM是一种用于计算设备的规范 xff0c
  • Spring Boot Starter的面试题

    Spring Boot Starter的面试题 1 常见的starter会包几个方面的内容 xff1f 分别是什么 xff1f span class hljs comment 常见的starter会包括下面四个方面的内容 span span
  • 个人经历:谈一谈的程序员求职途径

    个人经历 xff1a 谈一谈的程序员求职途径 互联网招聘网站的确是五花八门 xff0c 种类繁多 xff0c 在投递简历 xff0c 接听面试电话的过程中 xff0c 要擦亮眼睛 xff0c 慎重选择和沟通 我是去年跳槽的 xff0c 下面
  • JVM调优再学习

    JVM调优再学习 堆大小设置 JVM中最大堆大小有三方面限制 xff1a 相关操作系统的数据模型 xff08 32 bit还是64 bit xff09 限制 xff1b 系统的可用虚拟内存限制 xff1b 系统的可用物理内存限制 32位系统
  • Dubbo源码学习基础

    dubbo源码学习基础 Dubbo源码学习基础Java RMI 基本概念在 Dubbo 中使用注解自定义容错策略正确加载MyFilter类Dubbo可扩展机制实战Dubbo的SPI机制自定义一个LoadBalance扩展Dubbo 外部化配
  • ubuntu中Terminal消失

    Terminal不见了 安装Python 3 6 在Ubuntu 16 04 LTS 版本 警告 xff1a 在根据下面文章操作之后 xff0c 电脑终端关上之后再也打不开 xff0c 因为同时修改了很多东西 xff0c 所以排查了好久才找
  • MacVim学习总结

    Emacs和Vim都是程序员专用编辑器 xff0c Emacs被称为神的编辑器 xff0c Vim则是编辑器之神 至于两者到底哪个更好用 xff0c 网络上两大派系至今还争论不休 不过 xff0c 相比之下 xff0c Emacs更加复杂
  • Passbook对应系统配置 Eclipse Tomcat配置JavaWeb项目部署 Sysdeo Eclipse Tomcat Launcher plugin

    在 Eclipse J2EE Juno 43 Tomcat 6 用Tomcat Plugin配置Tomcat 应用时 xff0c 不想Copy一堆 jar文件到应用的lib目录中 xff0c 应该可以用Activate DevLoader在
  • Ubuntu或CentOS下Python源码安装,以及需要的依赖包,pip修复安装

    准备环境 依赖包 span class token function sudo span span class token function apt get span y update span class token operator a
  • Seasar2 框架学习笔记

    基本Seasar2 Web应用工程结构 Seasar2这个框架在日本十分的流行 Seasar2其实就是类似于Spring的一个提供DI功能的开源框架 xff0c 但比Sping轻量级 并且同 其它轻量级容器 不同的是 xff0c 完全不需要
  • Struts Tiles框架,标签库详解<tiles:insert page="facebook.jsp" />

    Tiles框架为创建Web页面提供了一种模板机制 xff0c 它能将网页的布局和内容分离 它允许先创建模板 xff0c 然后在运行时动态地将内容插入到模板中 Tiles 框架建立在JSP的include指令的基础上 xff0c 但它提供了比
  • 解决:弹出“Building workspace has encountered a problem. Error 方法

    开发过程中常遇到这种情况 xff0c 在打开eclipse的时候 xff0c 弹出对话框 xff0c 提示 Building workspace has encountered a problem Errors during build 解
  • flexpaper实现文档的在线预览

    在把文档的格式转换成swf格式以后 xff0c 现在该实现在线的预览 在线预览的方法有两种方式 第一种 xff1a 通过flashpaper实现文档的在线预览 第二种是通过flexpaper实现文档的在线预览 在博客中用到的是第二种方法 在
  • MySql可视化工具MySQL Workbench使用教程

    1 MySQL Workbench MySQL Workbench 为数据库管理员 程序开发者和系统规划师提供可视化的Sql开发 数据库建模 以及数据库管理功能 2 MySQL Workbench 的下载和安装 xff08 1 xff09
  • MAC OS命令行使用详解

    原文地址 xff1a http www renfei org blog mac os x terminal 101 html 最近学习苹果认证的 Mac OS X Support Essentials 教程 xff0c 看到 Command
  • 理论: 图论(14):最大强连通图算法 tarjan

    最大强连通图定义 在有向图G中 xff0c 如果两个顶点间至少存在一条路径 xff0c 称两个顶点强连通 strongly connected 如果有向图G的每两个顶点都强连通 xff0c 称G是一个强连通图 非强连通图有向图的极大强连通子
  • 手机开发之三:CoreApp的深入分析

    四 xff0e CoreApp的深入分析 目前参考代码里面的CoreApp所完成的工作比较多且杂 xff0c 主要说来有如下几件事 a 系统组件初始化 xff1b b 开机Logo的显示 xff1b c Sim卡检测和Pin码校验 xff1