【AndroidDevelop 02】我们写的apk,Android是如何运行的?

79 阅读1分钟

如标题,其实归根结底就是说,系统是如何加载、运行App的。

从接触Android开发以来,我一直有这样的困惑:如java的程序,打包成一个一个.class字节码文件,交由JVM去解释并由CPU去执行字节码指令,如果有输出的话,最终输出到显示器上。

那么Android呢?我们在Android Studio上写好的Activity、Xml等等文件,打包成apk后安装在Android手机上,当我们启动一个app的时候,这其中究竟发生了什么?同时,apk文件又是怎么样的组织构成。

这些疑问困惑着我,导致我在入门学习Android的时候,一直没有一个很通透的感觉。就比如写一个Activity,根据规则写oncreate函数、获取控件、给控件加入点击事件等等,这些感觉就是最上层的规则,那么我写好这些东西之后,交给Android系统,他到底是如何显示到手机上给我的,这其中究竟发生了什么?

深夜时分,想了一下,纠结这个问题感觉有点操之过急了,以现在对整个Android系统的理解,在没有读过源码、没有读过进阶书的情况下,在脑海中不可能构建出来。

就比如,一个在学习驾照的人,转动一下方向盘,就想着去搞清楚转动方向盘这个行为中,车的底层到底发生了什么,实在是有点异想天开了。

所以,目前的目标是先屏蔽掉对底层的探索,在入门学习阶段,先夯实应用层开发的基础,再想办法去进阶理解更底层的原理。