首先,我自己总结的应用程序的结构
首先是UIApplicationMain,这个代表了这个应用程序,一个程序是只有一个的。
感觉跟我以前做过的Qt比较像,都有一个main函数作为整个应用程序的入口,Android就没有一个函数作为整个程序的入口。至于为什么会这样,我理解为这是C语言的残留。
iOS在main函数中建立一个UIApplicationMain,并返回UIApplicationMain函数的返回值。
那么UIApplicationMain里面有什么呢?我看到有一个参数的参数是AppDelegate,这是一个托管类,我理解为通过这个参数,我们把整个应用程序托管给了系统。
应用程序的启动,显示,挂起,以及退出,都由系统来判断并执行相应的托管函数。
托管类管理整个应用程序的生命周期,我们可以在相应的函数中定义应用程序去做什么。
托管类的头文件里面有一个属性,是UIWindow,一个应用程序也只有一个UIWindow。然后iOS里面的一个界面就是一个场景。
到这儿,我就不是太理解iOS为什么要这么做,一个UIAppcationMain对应一个AppDelegate,一个AppDelegate对应一个UIWindow,然后一个UIWindow对应多个场景。
层级很复杂
但是Android就只有一个Application,而且存在感很低,因为系统会自动创建这个类,除非你想用它来做些什么,比如实现应用程序级的全局变量等等,我们才会去继承它,所以一般就只有一个层级,就是activity,一个activity对应一个界面,一个应用程序会有多个activity。
在功能上一个activity对应一个场景,但是activity也包含了一定UIWindow和托管的功能。就我自己感觉,这样扁平化的层级设计,是更加合理的。
不过话又说回来,iOS和Android都只有两部分的生命周期,一个是application本身的,一个是每个界面的生命周期。
大概就这么多,慢慢看吧
话说英语真的太重要了,当最好的资料全是英文的时候,英文太差真是无比的影响效率啊。