关闭

Android读源码--application篇

312人阅读 评论(0) 收藏 举报
分类:

感觉android好水好水,然后又突然迷失了方向,感觉最近工作中总是在做一些重复的事情,前些天做了下ListView嵌套,就类似QQ空间评论那种,这周又做了个类美团的双ListView联动菜单,本来该总结一下,可是写出来之后又懒得总结了,东西太多,然后闲着没事,看下源码吧。

原谅我的才疏学浅,估摸自己现在的身份也就是个开发小菜鸡,鸟都算不上 ~~衰~~~  看代码都不知道从何处下手,本来想着接触最多的应该是activity,可是看着发现好多,于是决定先看application吧,毕竟app初始化最先调用的东东,看着看着才发现应该从context入手的,不说了,application记录如下,肯定有不对的地方,但仅仅是自己对application的理解,以目前的水平来说,所能解释和概括的也就这些了。



application类 第一个私有变量

#1.    private ArrayList<ComponentCallbacks> mComponentCallbacks =
            new ArrayList<ComponentCallbacks>();

而点开CommentCallbacks之后就是

void onConfigurationChanged(Configuration newConfig);
void onLowMemory();

两个抽象方法。

void onConfigurationChanged(Configuration newConfig);
接触到的 横竖屏切换时设置 android:configChanges="orientation"时切竖屏调用
或者ndroid:configChanges="orientation|keyboardHidden" 横竖屏执行此函数


附:activity横竖屏切换时生命周期总结
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次


2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次


3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法


void onLowMemory();
官方注释:This is called when the overall system is running low on memory, and
      actively running processes should trim their memory usage.  While
      the exact point at which this will be called is not defined, generally
      it will happen when all background process have been killed.
      That is, before reaching the point of killing processes hosting
     service and foreground UI that we would like to avoid killing.
看名字猜到应该是在低内存时调用函数。看注释也是当低内存时会调用此函数,
并且给出尽量保持前台进程(直面用户),以防止运行内存被释放的建议。
You should implement this method to release any caches or 
other unnecessary resources you may be holding on to.The 
system will perform a garbage collection for you after returning from this method. 

Preferably, you should implement ComponentCallbacks2.
onTrimMemory from ComponentCallbacks2 to incrementally unload your resources 
based on various levels of memory demands. That API is available for API level 14 and higher, 
so you should only use this onLowMemory method as a fallback for older versions, 
which can be treated the same as ComponentCallbacks2.onTrimMemory with the ComponentCallbacks2.TRIM_MEMORY_COMPLETE level.

在低内存时实现接口这个方法去释放不必要的资源,系统会提供给你一个垃圾回收器
在 api leavel 14及以上可以实现 ComponentCallbacks2 并实现
void onTrimMemory(int level);方法去管理内存。


#2.  private ArrayList<ActivityLifecycleCallbacks> mActivityLifecycleCallbacks =
            new ArrayList<ActivityLifecycleCallbacks>();


ActivityLifecycleCallbacks
Activity生命周期回调函数...

public interface ActivityLifecycleCallbacks {
        void onActivityCreated(Activity activity, Bundle savedInstanceState);
        void onActivityStarted(Activity activity);
        void onActivityResumed(Activity activity);
        void onActivityPaused(Activity activity);
        void onActivityStopped(Activity activity);
        void onActivitySaveInstanceState(Activity activity, Bundle outState);
        void onActivityDestroyed(Activity activity);
    }

1
0
查看评论

怎样读一篇论文

本文翻译自 How to Read a Paper , S. Keshav David R. Cheriton School of Computer Sicnece, University of Waterloo, Waterloo, ON, Canada 摘要: 研究人员花费大量的时间阅读...
  • jsdtwry
  • jsdtwry
  • 2015-02-13 14:21
  • 254

Android热修复 — Nuwa Gradle 插件核心源码分析

简介  Nuwa是比较流行的一种Android热补丁方案的开源实现,它的特点是成功率高,实现简单。当然,热补丁的方案目前已经有很多了,AndFix, Dexposed, Tinker等,之所以要分析Nuwa,是因为它代表了一种热修复的思想,通过它可以窥探到很多这方面的知识,包括更进一步的插件化。Nu...
  • xiebudong
  • xiebudong
  • 2017-02-15 13:37
  • 1183

这样读源码,不牛X也难

如果不阅读源代码,真不知道自己能否成长起来,而要是阅读不得法,则很可能被碾压成肉酱……
  • foruok
  • foruok
  • 2016-04-25 07:16
  • 20084

从源码出发深入理解 Android Service

本文是 Android 系统学习系列文章中的第三章节的内容,介绍了 Android Service 相关的基础知识,然后从源码的角度上分析 Service 的一些实现原理。对此系列感兴趣的同学,可以收藏这个链接 Android 系统学习.
  • superjimmy
  • superjimmy
  • 2016-09-22 20:28
  • 700

MyCat - 源代码篇(2)

数据库路由中间件MyCat - 源代码篇(2)2. 前端通信模块Created with Raphaël 2.1.0MySql连接建立以及认证过程clientclientMySqlMySql1.TCP连接请求2.接受TCP连接3.TCP连接建立4.握手包HandshakePacket5.认...
  • zhxdick
  • zhxdick
  • 2016-02-17 17:51
  • 7273

阅读Android源码的一些姿势____有没有必要阅读Android源码

转载地址:http://zhuanlan.zhihu.com/kaede/20564614 著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:Kaede 链接:http://zhuanlan.zhihu.com/kaede/20564614 来源:知乎 ...
  • lijinhua7602
  • lijinhua7602
  • 2016-02-19 12:16
  • 2115

Android 源码分析Application的生命周期及共享数据详解

一、程序概述 *Application类的源码定义介绍: /** * Base class for maintaining global application state. You can provide your own * implementation by creating ...
  • csdn_aiyang
  • csdn_aiyang
  • 2018-01-19 18:23
  • 82

读Android蓝牙通信源码

我说的读android蓝牙通信源码并不是说,读google官方api,那个我也看了一下,里面全是英文倒不说,英文好的,直接无视掉。关键是代码写的我实在难以理解。当然,这也和我的阅读源码的能力有关联的。不过,幸好我在网上找到了一份开源的蓝牙通信的代码是menghnhhuan写的。大家想看他的源码可以直...
  • DucklikeJAVA
  • DucklikeJAVA
  • 2015-11-21 23:32
  • 873

Android-PickerView系列之源码解析篇(二)

前言   WheelView想必大家或多或少都有一定了解, 它是一款3D滚轮控件,效果类似IOS 上面的UIpickerview 。按照国际惯例,先放一张效果图:   以上是Android-PickerView 的demo演示图,它有时间选择和选项选择,并支持一二三级联动,支持自定义样式。 ...
  • qq_22393017
  • qq_22393017
  • 2017-03-02 12:40
  • 7057

Android View 事件分发机制 源码解析(ViewGroup篇)

本期三篇文章目录(可点击跳转)一. Android TouchEvent事件传递机制初识 二. android点击事件传递源码讲解(ViewGroup) 三.android点击事件传递源码讲解(View) 1. 前言android点击 事件一直以来都是很多安卓程序员的心病,之前通过demo模拟...
  • dfskhgalshgkajghljgh
  • dfskhgalshgkajghljgh
  • 2016-12-06 20:11
  • 1144
    个人资料
    • 访问:76574次
    • 积分:1338
    • 等级:
    • 排名:千里之外
    • 原创:58篇
    • 转载:11篇
    • 译文:1篇
    • 评论:32条
    最新评论