温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

android init 进程学习

发布时间:2020-04-09 19:53:22 来源:网络 阅读:724 作者:denghai586 栏目:移动开发

前言

    小生是做android系统的,结合自己的工作与看的相关资料,留下如下感悟。愿与诸君分享交流,以求共同进步。不当之处望各位看官在留言中指正。

init进程总体说明

    首先我们带着两个问题来看本节:init进程是个什么玩意儿?它的主要作用是什么?

    android系统中的init进程是从原生linux系统中的init进程中继承过来的。绝大部份功能保持一致,但也有些许差异,它们之前的差异会在下面的内容中详细叙述。如果非要给android系统的init进程一个类似定义的东西的话,我的理解是:   

    init进程是由linux内核启动的第一个用户空间的程序,主要负责系统运行环境初始化与子进程管理等相关工作。

    android系统中的init进程主要负责以下五种任务:

    1、读取分析执行init.rc和init.{hardversion}.rc等相关初始化脚本。(与linux中init进程的主要区别点)

    2、生成设备驱动节点。

    3、处理子进程相关消息。

    4、初始化属性服务。

    5、显示开机logo

各功能详细说明


    待续。。。


工作修改实例

    工作中修改init进程代码主要是为了增加以下功能:

    因为我在做android盒子,所以需要增加一个自适应屏幕分辩率大小与logo大小并让logo居中显示的小功能。

    实现思路如下:

        1、修改后缀名为rle的logo文件格式,在其开头处加上描述该文件高度与宽度的8字节数据。

        2、修改init源码中的logo.c文件,读取rle文件时探测是否为自定义格式。如果不是则按照以前的流程,如果是则读取logo图片的高宽用做后续使用。

        3、读取当前显示fb的大小,并与logo图片的高宽一起计算得出图片绘制的起始位置与结束位置,其他的像素点则用宏定义的颜色进行绘制。

    




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI