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应用程序请求SurfaceFlinger服务渲染Surface的过程分析
  2. Android程序开发初级教程
  3. 从源码看Android常用的数据结构 ( SDK23版本 ) ( 三 , Queue篇)
  4. 《Android 手机程序设计实用教程》PDF版电子书下载
  5. Android 应用程序快速启动的秘诀

随机推荐

  1. 国内目前最全面的介绍——Android中的Bro
  2. Hook android系统调用研究(一)
  3. android 建数据库 SQLite 存储sd 卡或者
  4. Android应用程序进程启动过程的源代码分
  5. Android网络连接判断与处理
  6. 安卓布局之线性布局(Linearlayout)
  7. Android EditText取消自动焦点获取
  8. 【Android】Android Layout Binder——根
  9. android 绘图
  10. PreferenceActivity、PreferenceFragment