Android面试准备 第三天 第六例 Android应用启动原理

参考:http://blog.csdn.net/lmj623565791/article/details/24015867

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是相对单一的,从程序中跳转或者启动可能样式更多一些。本质是相同的。


二次理解:标准答案的内容太多杂乱,无法提炼。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值