<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                PKMS的main函數代碼如下: **PackageManagerService.java** ~~~ public static final IPackageManager main(Contextcontext, boolean factoryTest, boolean onlyCore) { //調用PKMS的構造函數,factoryTest和onlyCore的值均為false PackageManagerService m = new PackageManagerService(context, factoryTest, onlyCore); //向ServiceManager注冊PKMS ServiceManager.addService("package", m); return m; } ~~~ main函數很簡單,只有短短幾行代碼,執行時間卻較長,主要原因是PKMS在其構造函數中做了很多“重體力活”,這也是Android啟動速度慢的主要原因之一。在分析該函數前,先簡單介紹一下PKMS構造函數的功能。 PKMS構造函數的主要功能是,掃描Android系統中幾個目標文件夾中的APK,從而建立合適的數據結構以管理諸如Package信息、四大組件信息、權限信息等各種信息。抽象地看,PKMS像一個加工廠,它解析實際的物理文件(APK文件)以生成符合自己要求的產品。例如,PKMS將解析APK包中的AndroidManifest.xml,并根據其中聲明的Activity標簽來創建與此對應的對象并加以保管。 PKMS的工作流程相對簡單,復雜的是其中用于保存各種信息的數據結構和它們之間的關系,以及影響最終結果的策略控制(例如前面代碼中的onlyCore變量,用于判斷是否只掃描系統目錄)。曾經閱讀過PKMS的讀者可能會發現,代碼中大量不同的數據結構以及它們之間的關系會令人大為頭疼。所以,本章除了分析PKMS的工作流程外,也將關注重要的數據結構及它們的作用。 PKMS構造函數的工作流程大體可分三個階段: - 掃描目標文件夾之前的準備工作。 - 掃描目標文件夾。 - 掃描之后的工作。 該函數涉及到的知識點較多,代碼段也較長,因此我們將通過分段討論的方法,集中解決相關的重點問題。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看