Android面试准备 第三天 第六例 Android应用启动原理
2016-04-04 09:16
239 查看
参考:/content/484706.html
8、 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?
个人理解:首先关于从图标的进入的操作,是个理所当然的行为,但是对于菜鸟的我,对于后台运行的机制,可以明确的就是图标点击后,Android系统层面会去读取该App中AndroidManifest文件,这个文件又叫注册清单,是App所使用到的四大组件一个声明文件,在该文件中为所有使用到的组件声明相关信息,可以起到导航的作用,可以提高程序运行的效率,类似饭馆中提供的菜单;在这个文件中必须提供一个主活动组件,即活动中意图过滤器(intent-filter)的action为Main,可以简单的看做是把这个活动标识为主活动,这样话就类似了我们Java运行机制,会去查找Main函数,然后根据主活动类的定义代码,在内存中创建该对象,回调一系列方法,最后通过不同组件功能的集合形成一个可用的软体。而从外部程序跳转到另一个程序也是Android明确提供该手段的,这个功能实现的前提,我觉的基于Android系统上所有的App的注册清单相互访问权限是完全共享的,而Android提供了隐式Intent可以通过设置它action值,这样根据action值去所有App的注册清单中去匹配对应的活动,后面启动方式和图标进入应该是差不多的。所谓我觉的没有什么差别,仅是入口不一样,这道题就考核对于
APP启动原理的了解。
标准答案:
是因为启动程序(主界面也是一个app),发现了在这个程序中存在一个设置为<category android:name="android.intent.category.LAUNCHER" />的activity,所以这个launcher会把icon提出来,放在主界面上。当用户点击icon的时候,发出一个Intent:Intent
intent = mActivity.getPackageManager().getLaunchIntentForPackage(packageName);mActivity.startActivity(intent); 跳过去可以跳到任意允许的页面,如一个程序可以下载,那么真正下载的页面可能不是首页(也有可能是首页),这时还是构造一个Intent,startActivity.这个intent中的action可能有多种view,download都有可能。系统会根据第三方程序向系统注册的功能,为你的Intent选择可以打开的程序或者页面。所以唯一的一点不同的是从icon的点击启动的intent的action是相对单一的,从程序中跳转或者启动可能样式更多一些。本质是相同的。
二次理解:标准答案的内容太多杂乱,无法提炼。
8、 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?
个人理解:首先关于从图标的进入的操作,是个理所当然的行为,但是对于菜鸟的我,对于后台运行的机制,可以明确的就是图标点击后,Android系统层面会去读取该App中AndroidManifest文件,这个文件又叫注册清单,是App所使用到的四大组件一个声明文件,在该文件中为所有使用到的组件声明相关信息,可以起到导航的作用,可以提高程序运行的效率,类似饭馆中提供的菜单;在这个文件中必须提供一个主活动组件,即活动中意图过滤器(intent-filter)的action为Main,可以简单的看做是把这个活动标识为主活动,这样话就类似了我们Java运行机制,会去查找Main函数,然后根据主活动类的定义代码,在内存中创建该对象,回调一系列方法,最后通过不同组件功能的集合形成一个可用的软体。而从外部程序跳转到另一个程序也是Android明确提供该手段的,这个功能实现的前提,我觉的基于Android系统上所有的App的注册清单相互访问权限是完全共享的,而Android提供了隐式Intent可以通过设置它action值,这样根据action值去所有App的注册清单中去匹配对应的活动,后面启动方式和图标进入应该是差不多的。所谓我觉的没有什么差别,仅是入口不一样,这道题就考核对于
APP启动原理的了解。
标准答案:
是因为启动程序(主界面也是一个app),发现了在这个程序中存在一个设置为<category android:name="android.intent.category.LAUNCHER" />的activity,所以这个launcher会把icon提出来,放在主界面上。当用户点击icon的时候,发出一个Intent:Intent
intent = mActivity.getPackageManager().getLaunchIntentForPackage(packageName);mActivity.startActivity(intent); 跳过去可以跳到任意允许的页面,如一个程序可以下载,那么真正下载的页面可能不是首页(也有可能是首页),这时还是构造一个Intent,startActivity.这个intent中的action可能有多种view,download都有可能。系统会根据第三方程序向系统注册的功能,为你的Intent选择可以打开的程序或者页面。所以唯一的一点不同的是从icon的点击启动的intent的action是相对单一的,从程序中跳转或者启动可能样式更多一些。本质是相同的。
二次理解:标准答案的内容太多杂乱,无法提炼。
相关文章推荐
- 程序员的十个经典算法
- 软考中高项学员:2016年3月14日作业
- 求职宝典 第四章 运算符及其优先级
- LeetCodet题解--13. Roman to Integer
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- 程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现)
- R语言笔记 提醒程序员注意的一些事项
- 针对最近笔试的一些排序算法总结(未完待续)
- 后端面试问题汇总——目录索引
- 编程面试过程中常见的10大算法
- 【面试】输出"蛇形"矩阵
- 面试如何谈自己做过的项目
- 程序员有趣的面试智力题
- [查异常网]-20160403-程序员总结:帮助你早些明白一些道理
- 码农小汪-信号量(Semaphore)
- 【为面试做准备】广州花卉市场总结
- 剑指offer-面试题27:二叉搜索树与双向链
- Java面试题(1)-J2SE基础