你打开一个安卓系统
它的界面是Launcher 进程,它不断的检测用户的触摸落在哪个APP上面,如果你的触摸落在空白它不做处理,你要滑动他就给你滑动
当用户触摸这个app的时候,
他会进行下面的流程
Laucher 检测用户触摸到APP以后,整个软件,整个工程最应该被加载的文件是
AndroidManifest.xml
首先他会判断你的SDK版本,你的目标机器是否能承载的了安卓APP,有的时候承载不了,安装都安装不上,有的时候能装上不能运行
再来就是获取你要的权限
点击Add...
选择Uses Permission
在这里给他加一个网络访问权限
name 下找
网络访问权限
然后你发现这面多了一句话
他会为你这个APP开放网络访问的端口,也就是你启动之前就帮你做好了
比如一个APP有好几个界面,先启动哪个呢?大家都是activity
这个时候有一组
这样的标签,放在这里就代表main activity
MainActivity 继承于 Activity(页面)
我们自己做的类继承于MainActivity,那他还是一个页面
onCreate 代表页面被创建
也就是说通过Mainfest确认
这个程序会被加载
作为一个路口onCreate会被操作系统自动的拿来执行
也就是说,这个onCreate,有点像我们以前学的Java中的main函数
那么,super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
这干什么的呢?
他会调用父亲的Activity,去组建,去构建一个空白的页面出来
(没有Hello world就是一个空白的页面)
空白的页面对用户来说就是空白,对操作系统来说,他却要做很多很多的初始化
setContentView就是把R.layout.activity_main 和布局文件关联起来
这下面存放了,页面,控件,按钮,比如文本框都在这面创建一个id
那么如何让这个.java
跟这个.xml关联起来?
那肯定需要这个id啦
R.java里面肯定是有一个Layout,0x7f030000
通过id 的方式让.java文件和.xml文件产生一个关联
比如我们现在要做一个代码的修改
第15行的hello world 改成“冰糖李子”
给他改进去
你改进去以后,他是一个单独的布局
那为什么我们操作系统APP运行起来能看到这句话呢?
那是因为我的.java代码会调用setContentView,把你做的独立的布局跟空白的页面关联,
运行一下
于是,我们就在程序运行的时候看到了“冰糖李子”
当我触摸的时候,运行Launcher
点击APP的时候,第一个被加载的是Mainfest
他看到
于是它的onCreate 会被调用
然后会去做一些控件.xml
以及跟这个页面的绑定作用
如果我现在创建另外一个页面
我创建一个Andriod Activity
创建一个Blank Activity
命名Other Activity
你会看见多出一个java
包括res 的 layout 多了一个activity_other.xml
包括在这面多了一个other
如果我把
删除掉放在下面other 这面
你会看到等会先启动的other 这个页面
那么other 这面有什么东西呢?
我们 把hello world 改成"其他页面"
运行一下
总结:你按下安卓APP的时候,
它第一个运行的是 AndroidManifest.xml,他会给你分配权限,同时看一下这些页面哪一个作为手动启动的页面,
当你手动启动页面被加载以后,他会找到 onCreate这个路口,然后他会关联空白页面跟哪个布局页面进行关联, super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
会去显示你布局页面关联里面的一些数据



