[Day07] Android 四大元件介紹 I

Teng Wang
4 min readOct 7, 2018

如果你已經初步的學習完了Java的內容:[Day06] 寫Android也要學Java!

那接下來可以開始了解Android的元件了,從現在開始可以算是這一系列文章的第二部分。

這篇先從四大元件中的兩個元件開始介紹:

Activity、Service、BroadcastReceiver、ContentProvider。

其實經過了這些年的語言演變,這四個元件有了不同的改變及宿命…

趁著這次的寫稿整理,筆者看蠻多網路上的文章都有介紹Activity,但都跟現在這些元件的理解有些落差了。

筆者想了想,覺得其實最好的方式是看官方文件,甚至是直接去看Source Code,因為這些元件是軟體,他們也會隨者開發者的開發,而有了一些的改變,經年累月後,即便當下這些文章寫的內容是正確的,也會慢慢的變得不那麼正確,文章是死的,軟體是活的。

不過言歸正傳,一開始的時候開發者可能還沒有這麼多的理解,因此靠不同開發者的闡述,也許也是必經的過程。

Activity:官方解釋網址

基本上Activity是整個Android 的核心元件,幾乎沒有App的開發不會接觸到這個元件的,他是整個App與使用者互動的基礎畫面介面元件。
但筆者認為最值得了解的部分,是他的發展沿革以及他跟其他核心元件例如Context的關係。

Activity 從API 1就有了, 期間經歷過百家爭鳴的4.x ActionBar時期,5.x之後有了Toolbar至此開始越來越自由,到現在的AppCompatActivity,這裡面的每個改變對當時來說,都是很驚人的變化,到了現在可以說是時代的眼淚,未來也許會有更多的改變也說不定。 (以前的Drawlayout到現在的NavigationLayout也是一個例子)

目前Activity 預設初始化的AppCompatActivity,他的每個繼承的class,AppCompatActivity -> FragmentActivity -> SupportActivity -> Activity,都值得一探。

  • Activity

> 最初的Activity,八千行的程式碼,所有的寶藏都在這裡面了。

  • SupportActivity

> 這個Activity改動的幅度好像有點深,筆者怕講錯,就不說自己的見解了了。

  • FragmentActivity

> 4.x的時候,Fragment開始很兇,後來Activity的開發方向覺得Activity應該內建啊,他就出現了。

  • AppCompatActivity

> Android OS在畫面上的操作越來越開放,例如希望全畫面沈浸式感受,就需要去控制StatusBar or Home Back鍵,同時ActionBarActivity也有許多設計上的極限,就出現了這個。

p.s. 逝去的ActionBarActivity,我們懷念他。

Service:官方解釋網址

一般來說Android提到Service,都是Background Service,筆者對他的理解,簡而言之是一個沒有畫面的Activity,但可以在背景執行,不過隨著Android OS的升級,對權限的要求越來越嚴格,現在已經越來越不適宜用來開發了,筆者認為應該會慢慢的被JobScheduler與Foreground Service取代。

(以前很多Android service的Sample code現在都不能用了!)

可能會有人問,啊我公司產品的功能還是要求要在背景偷偷執行,這種要求怎麼辦?老闆他們不管就是要我想辦法。

這是一門學問,叫Service保活,但筆者不太建議花時間研究就是…

突然發現寫了好長的篇幅,還有兩個元件明日再敘。

--

--