Android应用层源码阅读笔记--Application

导言

在这个年头,问到看过android 源码没?必定问的就是你是否看过android linux层的代码,你说没看过,都貌似不好意思说自己学过android的.我就想了,android linux层的代码对于一个没搞过linux,c/ c++的人来说,对于一个从c#,java,python,js 转过来学android的人来说对于他们有啥意义?难道我会用 gcc 编译一段 c语言,然后在内核上打上一个patch实现一个关机闹钟才是真正的会android ?能力有限,就做下应用层的源码笔记.

一个程序的开始---Application

什么?一个程序的开始是activity?好吧,不跟你争论,咱们来看下源代码是怎么处理.

Application 的源码传送门 https://github.com/android/platformframeworksbase/blob/master/core/java/android/app/Application.java

Applcation 这个可以说的上是我们android 应用程序的开始,不管你之前知不知道这个类,它都默默的完成了android程序的初始化工作...接着就开始了我们的activity. 源码还是很好懂的: private ArrayList<ComponentCallbacks> mComponentCallbacks = new ArrayList<ComponentCallbacks>(); private ArrayList<ActivityLifecycleCallbacks> mActivityLifecycleCallbacks = new ArrayList<ActivityLifecycleCallbacks>();

在代码的最后还有两个获得所有回调的方法 collectXXXXXXXX()这个很好懂不作解释

application 用了两个arraylist 进行我们组件和activity生命周期的管理,我们再来看下(在哪里看?上面的传送门不去?)ActivityLifecycleCallbacks ,是不是很熟悉!不就是我们一开始学的activity的玩意了,所有的开始就是从这里定义的了. 接下来就是对组件的注册和移除,这个不用说各位一定能看得明白.

接下来看下内部api!

除了一开始的 attach,你会看得剩下的都是一堆dispatch XXX 开头的方法,这会你查下字典的话,你就发现,就是有"调度,分配"的意思,这些api就是控制我们所有!activity的开始就是处这里开始的了!

没了..

从application开始看源代码的话,不会感觉到那么绝望,建议读应用层的从这里开始,收获一下自信心..下一次,咱们来说说android 应用核心部分:Context是个什么玩意..

更多相关文章

  1. Android(安卓)WebView与JS交互全面详解
  2. Android应用程序启动过程源代码分析
  3. Android(安卓)AsyncTask完全解析,带你从源码的角度彻底理解
  4. Android语音识别方法
  5. Android程序开发初级教程
  6. 从源码看Android常用的数据结构 ( SDK23版本 ) ( 三 , Queue篇)
  7. 【Android(安卓)开发】: Android(安卓)消息处理机制之三: Handle
  8. 通过android代码获取android系统的imei、手机型号、手机品牌、an
  9. Android应用程序启动过程源代码分析

随机推荐

  1. android百度地图定位,点击给定经纬度的某
  2. Android更新下载进度条
  3. 防止android应用程序无响应ANR(Applicati
  4. Android 中使用Lambda表达式
  5. 解决:This project uses AndroidX depende
  6. android gallary demo
  7. Android 关于极光推送时测试和正式的问题
  8. android 打包第三方jar包
  9. Android API开发之OpenGL开发之Android O
  10. Android 复习笔记之图解Fragment