android app从生成到显示的过程

android = Linux Kernel + c/c++ Runtime Framework + Dalvik Virtual Machine + Java Runtime Framework

-生成apk的流程
                        (源码)                                        (dx工具)                        打包在apk中的
    java编译器----------->java字节码(.class)------------>Dex字节码------------------->classes.dex文件中

-手机安装apk的过程
                    (java Runtime Framework中的)          Socket IPC通知c/c++ Runtime Framework 中的
                     PackageManagerService解析                   install守护进程优化apk的classes.dex
    apk文件-------------------------------->      +   ---------------------------------------------->classes.odex文件

-apk的运行过程
                                       (向Java Runtime Framework中的            (通过socket IPC向c/c++ Runtime Framework 里的
                                            ActivityManagerService发送请求 )            zygote守护进程)
    从Launcher点击图标----------------------------------------->  +   ------------------>应用程序进程(包含一个Dalvik,并通过
                                                                                                                                                     Dalvik加载classes.odex文件 )     

-应用程序界面的绘制和渲染过程
                                   (Java Runtime Framework中的                                    By Binder IPC
  SDK提供的UI类  --->   WindowManagerService)      +------------------>c/c++Runtime Framework中的
                                    申请分配Graphic Buffers                                 SurfaceFlinger申请分配Graphic Buffer,这时     
                                                                                                                    SufaceFlinger通过HAL层次Gralloc模块向Kernel中的                           
                                                                                                                      显卡或GPU驱动申请分配真正的Graphic Buffers
                ------------>绘制UI
(硬件绘制,即,通过c/c++ Runtime Framework 中的OpenGL E绘制)     这时候SDK的UI类的与绘制相关的函数调用通过Dalvik虚拟机都转化成了C/C++ Runtime Framework里面的OpenGL操作。)
   应用程序UI绘制完成之后,结果就保存上述的图形缓冲区中。
    
- 图形缓冲区----->手机屏幕的过程
      
                                                                           OpenGL或HWCompsor渲染到
                           Binder IPC                                           手机屏幕上的图形缓冲区                           SurfaceFlinger提交给
图形缓冲区------------------------>SurfaceFlinger---------------------------------------->主图形缓冲区-------------------->Kernel的图形显卡   
        ------------>在屏幕上显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值