<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                #### **引言**: 原文出處——[寫給Android App開發人員看的Android底層知識](http://www.cnblogs.com/Jax/p/6864103.html) >[info] 注意:本系列文章的源碼部分可能和最新版本API的源碼不一樣,估計作者是以Android2.3的源碼為準則的。所以如果發現和找到的源碼不一樣,莫驚慌,找到對應版本的源碼即可。 早在我還是Android菜鳥的時候,有很多技術我都不太明白,也都找不到答案,比如apk是怎么安裝的,比如資源是怎么加載的。 再比如說,每本書都會講AIDL,但我卻從來沒用過。四大組件也是這個問題,我只用過Activity,其它三個組件,不但沒用過,甚至連它們是做什么的,都不是很清楚。 之所以這樣,是因為我一直從事的是電商類App開發工作,對于這類App,基本就是由列表頁和詳情頁組成的,所以我們每天面對的是Activity,會寫這兩類頁面,把網絡底層封裝的足夠強大就夠了。 絕大多數App開發人員,都是如此。 但直到接觸Android的插件化編程和熱修復技術,才發現只掌握上述這些技術是遠遠不夠的。 市場上有很多介紹Android底層的書籍,網上也有很多文章,但大都是給ROM開發人員看的,動輒貼出幾頁代碼,不適合App開發人員去閱讀學習。 我曾經在微信中問過老羅和老鄧,你們寫的書為什么我們App開發人員看不懂啊,他們就呵呵了,跟我說,他們的書就是寫給ROM開發人員看的。 于是,這幾年來,我一直在尋找這樣一類知識,App開發人員看了能有助于他們更好的編寫App程序,而又不需要知道太多這門技術底層的代碼實現。 這類知識分為兩種。 * 一種是知道概念即可,就比如說Zygote,其實App開發人員是不需要了解Zygote的,知道有這么個東西是“孕育天地”的就夠了,類似的還有SurfaceFlinger、WMS這些概念。 * 還有一種是需要知道內部原理,就比如說Binder。關于Binder的介紹鋪天蓋地,但對于我們App開發人員,需要了解的是它的架構模型,只要有Client和Server,以及SM就足夠了。 四大組件的底層通信機制都是基于Binder的,我們需要知道每個組件中,分別是哪些類扮演了Binder Client,哪些類扮演了Binder Server。知道這些概念,有助于我們App開發人員進行插件化編程。 #### **知識點講解** * Binder * AIDL * AMS * Activity * Service * ContentProvider * 匿名共享內存 * BroadcastReceiver * PMS及App安裝過程 Android底層知識,還應該包括以下內容,但是和插件化關系不大,也不是我擅長的領域,所以我只列出了大綱,沒有繼續寫下去: * View和ViewGroup * Message、Looper和Handler * 權限管理 * Android SDK工具內部原理
                  <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>

                              哎呀哎呀视频在线观看