IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android:安卓APP启动过程简介 -> 正文阅读

[移动开发]Android:安卓APP启动过程简介

你打开一个安卓系统

它的界面是Launcher 进程,它不断的检测用户的触摸落在哪个APP上面,如果你的触摸落在空白它不做处理,你要滑动他就给你滑动

?当用户触摸这个app的时候,

?

?他会进行下面的流程

?Laucher 检测用户触摸到APP以后,整个软件,整个工程最应该被加载的文件是

AndroidManifest.xml

首先他会判断你的SDK版本,你的目标机器是否能承载的了安卓APP,有的时候承载不了,安装都安装不上,有的时候能装上不能运行

?再来就是获取你要的权限

点击Add...

?选择Uses Permission

?

在这里给他加一个网络访问权限?

name 下找

?

?网络访问权限

?

?然后你发现这面多了一句话

他会为你这个APP开放网络访问的端口,也就是你启动之前就帮你做好了?

?比如一个APP有好几个界面,先启动哪个呢?大家都是activity

?这个时候有一组

?<intent-filter>
? ? ? ? ? ? ? ? <action android:name="android.intent.action.MAIN" />

? ? ? ? ? ? ? ? <category android:name="android.intent.category.LAUNCHER" />
? ? ? ? ? ? </intent-filter>

这样的标签,放在这里就代表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

他看到

<intent-filter>
? ? ? ? ? ? ? ? <action android:name="android.intent.action.MAIN" />

? ? ? ? ? ? ? ? <category android:name="android.intent.category.LAUNCHER" />
? ? ? ? ? ? </intent-filter>

?于是它的onCreate 会被调用

?然后会去做一些控件.xml

以及跟这个页面的绑定作用

如果我现在创建另外一个页面

?我创建一个Andriod? Activity

?创建一个Blank? Activity

?命名Other Activity?

?你会看见多出一个java

?包括res? ?的? ? ?layout? ?多了一个activity_other.xml

????????????????

包括在这面多了一个other??

?如果我把

?<intent-filter>
? ? ? ? ? ? ? ? <action android:name="android.intent.action.MAIN" />

? ? ? ? ? ? ? ? <category android:name="android.intent.category.LAUNCHER" />
? ? ? ? ? ? </intent-filter>

删除掉放在下面other 这面

你会看到等会先启动的other 这个页面

?

那么other 这面有什么东西呢?

?我们 把hello world 改成"其他页面"

?运行一下

? ? 总结:你按下安卓APP的时候,

它第一个运行的是? ? AndroidManifest.xml,他会给你分配权限,同时看一下这些页面哪一个作为手动启动的页面,

当你手动启动页面被加载以后,他会找到?onCreate这个路口,然后他会关联空白页面跟哪个布局页面进行关联,????????super.onCreate(savedInstanceState);
?? ??????????????????????????? ?setContentView(R.layout.activity_other);

会去显示你布局页面关联里面的一些数据

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:09:04  更:2021-12-03 13:09:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:07:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码