安卓Activity创建界面过程-API源码解析

本文深入探讨了Android中Activity如何创建界面的过程,通过API源码分析,揭示了从Activity的attach方法开始,如何经过PolicyManager的静态方法调用来构建界面。尽管源码路径复杂,但对理解Android系统的运行机制具有重要意义。
摘要由CSDN通过智能技术生成

我们知道Android 软件每一个界面 都是Activity构成的   那么Activity  是怎么创建一个界面的呢   ?

接下来是看源码时间   过程复杂   耐心观看

setContentView(R.layout.activity_main);
这个大家再熟不过了     onCreate中调用这个就可以创建对应布局文件的界面 

接下来看API源码  :

activity中:

public void setContentView(int layoutResID) {
        getWindow().setContentView(layoutResID);
        initWindowDecorActionBar();
    }
getWindow()得到的是一个Window对象

public Window getWindow() {
        return mWindow;
    }

Window是一个抽象类  不可能创建对象   

那么我们找一下它的实现类       (Activity六千行代码   这是真难找啊  )。

在attach方法中:    

 //  attach 方法是Activity通过反射实例化之后调用的第一个方法 ,之后生命周期的方法才会被调用  



可以看到调用了PolicyManager的静态方法 

看一下这个PolicyManager   

咦  SDK看不了   代码中也调用不了   什么鬼 

看一下它所在的包名 :  

  • com.android.internal.policy.PolicyManager


!!!这根本就不在 android.jar  里

这怎么才能找到这个包里的源码呢   
用我上一篇博客说的:http://grepcode.com/  这个源码浏览网站     
找到这个PolicyManager  类里的:
public static Window  makeNewWindow(Context context) {
        return sPolicy.makeNewWindow(context);
    }
再看一下  sPolicy 是什么  



<
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值