Android知识点汇总

1.Activity生命周期:

正常流程:onCreate()->onStart()->onResume()->onpause()->onStop()->onDestory();

再次点击回到Activity:onRestart()->onStart()->onResume()

android面试(2)-Activity篇

2.service生命周期:

(1)通过startService()启动:

 startService()->onCreate()->onStartCommon()->onDestory();

tips:startService()调用多次,onCreate只会执行一次,onStartCommon调用多次;

       调用stopService(),onDestory()执行,销毁服务;

       通过intent传值时,必须判null

(2)通过bindService()启动:

bindService()->onCreate()->onBind()->unBind()->onDestory()

android面试(3)-Service篇

3.Activity启动过程:

Launcher调用startActivitySafely()->PMS对AndroidManifest.xml文件进行解析,获取应用程序的相关信息(service,broadcast等)和要启动的Activity的配置信息(action,category等)->调用startActivity()->内部调用startActivityForResult()直接返回-1,表示不需要返回结果;->调用Instrumentation类的execStartActivity()获取AMS的代理对象,通过代理对象->调用checkStartActivityResult()方法,如果没有在配置清单中配置这个组件,这个方法会抛出异常;->调用application的scheduleLaunchActivity()获取一个ActivityClientRecord对象,其中保存这LoaderApk对象->调用handleLaunchActivity启动Activity组件;

4.Broadcast注册方式与区别:

(1)静态注册:

特点:不受页面的生命周期影响,即退出了页面,也可以接收到广播,会占用cpu资源,一般用于想开机自启动等等场景;

(2)动态注册:

特点:会受页面的生命周期影响,即退出页面,不会接收到广播,其优先级较高,一般用于通知UI更新;

5.HttpClient和HttpUrlConnection的区别:

HttpClient的api很多,但是不易扩展,所以在6.0时已经废弃;

HttpUrlConnection比较轻量级,易扩展;

6.Java虚拟机与Dalvik虚拟机区别:

Java虚拟机:

特点:基于栈,使用指令来载入和操作栈上数据,所需指令更多,并且运行的是Java字节码

Dalvik虚拟机:

特点:基于寄存器,运行.dex字节码格式,常量池被修改为只使用32位所有,

            一个应用,一个虚拟机实例,一个进程,每个dalvik应用程序都被赋予了一个独立的进程号

7.进程保活&#x

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值