版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/donghejk/article/details/84000430
一、前言:
读了很一些Androi源码,始终无法把这些知识串起来。今天准起航了,从应用启动开始,一点一点看下去,可能会经历一个漫长的时间,但无论如何都要坚持。
二、都会涉及哪些知识点
目前来说一定会涉及以下知识点:
- Launcher
- Binder、AIDL
- View绘制流程
推荐几个看源码的方式:
Launcher是个app,手机的桌面就是它的Activity,那桌面上的图标就是他的View了,那我们点击它的View就在LauncherActivity中进行处理了,好了接下来咱们一起看LauncherActivity。
/**
LauncherActivity功能
* Displays a list of all activities which can be performed
* for a given intent. Launches when clicked.
*
*/
public abstract class LauncherActivity extends ListActivity {
Intent mIntent;
PackageManager mPackageManager;
IconResizer mIconResizer;
接下来我们找到它的点击事件的处理,看到startActivity后我们还要看它的下一步调用
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = intentForPosition(position);
startActivity(intent);
}
为了更清晰省略一些没必要的调用我贴上UML图