一直在做Android开发相关的工作,感觉做了很久对整个知识体系没有一个很系统的认知,很多东西虽然知道怎样做 ,但是对其核心原理一知半解。所以开通博客,对自己的Android知识体系进行一个全面的梳理,帮助自己更好的理解Android系统。本篇博客主要是梳理一些主要的知识点,帮助自己及时回顾知识,对于知识点的详细内容不做深入阐述。首先从Android四大组件必须掌握的基础知识进行梳理。
一,Activity相关:
Activity生命周期流程图,这个标准的流程图网上可以搜到,一定要全面掌握,知道每个生命周期节点的具体含义以及不同的生命周期节点之间在何种情况下发生相互转换
Activity四种启动模式: standard,singletask,singletop,singleinstance,了解每一种启动模式的工作方式
启动Activity的显式Intent与隐式Intent: 显式Intent: 在启动的intent中明确指出要启动的组件名称,例子:startActivity(new Intent(MainActivity.this , SecondActivity.class));
隐式intent: 首先需要在Androidmanifest文件中,为activity添加 intent filter 和响应的action,startActivity(new Intent("action")) ;
Activity和 Task 之间的关系
引发activity销毁和重建的一切特殊情况:横竖屏切换,设置语言改变,
Activity的状态保存:
Activity中的onWindowFocusChanged()方法:当activity的当前window获得或者失去焦点的时候,就会调用此方法,这个是activity真正visible的时间点
Activity中的内存泄露问题,这篇博客讲的非常好: http://www.cnblogs.com/wanqieddy/p/4482738.html
activity一些主流的theme要了解
Fragment相关的知识点:
Fragment的生命周期: 可以和activity的生命周期对比着来看
Fragment与Activity之间的通信,
Fragment回退栈,
关于这一部分可以参考一些大牛的博客:http://blog.csdn.net/lmj623565791/article/details/37970961
二, Service相关:
Service的生命周期: Service的启动方式分为 BindService 和StartService,在两种不同的方式下生命周期是不同的。注意下如果先startService,再bindservice之后的生命周期情况
本地Service和远程Service:搞清楚两种service的区别,这篇博客讲的非常详细:http://blog.csdn.net/wl455624651/article/details/41868915
Service与activity的通信: 本地service通过绑定后返回的binder来通信,远程(remote)service需要通过AIDL来实现跨进程通信,还可以通过broadcast来实现通信
如何写一个杀不死的Service
Bind service情况下,onServiceDisconnected()被调用的时机,在连接正常的情况下,这个方法不会被调用,只有在异常关闭(比如被kill)的情况下 才会调用
Intent Service
三.BroadCastReceiver
BroadCast分为 两种类型:有序广播和无序广播
另外还分为普通广播和粘性广播:两者的区别是,粘性广播的发送的intent一直在应用程序中保存着,甚至broadcast已经停止,在停止后注册的broadcastreceiver可以通过registerReceiver()方法的返回值得到intent
四. Android显示原理
这篇博客写的非常详细可以仔细看一下:http://djt.qq.com/article/view/987
五:
如何实现view的滑动效果,有三种方式:1. 使用view 的scrollto scrollby方法。2. 使用动画 3. 改变布局参数
未完待续。。。。