从零开始学习Android开发-Android概览
? ? ? ? 沒有開發過Android、IOS等移動端的開發,記錄從零開始學習Android開發歷程。學過、用過那么多的語言、開發模式卻很少留下記錄,一方面是由于曾經的工作環境影響,網絡受控;一方面是自己長久以來對文字的尊重,總以為非深思熟慮不能成文,非別具匠心不可以發表;還有就是自己的懶惰,懶得動筆。
人的狀態總還是多少受環境影響的,時得清閑,又對Android有幾分興趣,雖然Android已經發展多年,現在學習Android可能太晚,但我不求先行,只求窺其一斑;不求文章準確精美,只求雁過留聲。記錄下學習Android的過程,若是能給路人的帶來點啟發,那就是無意間點積德善舉,若是錯誤百出,那也不要怨言,因為每片博文均一氣寫成,邏輯、文字錯誤均沒檢查,甚至寫完后再沒有看過,我本就把博文當做隨筆,留個紀念而已。
我這人學東西一般是不求甚解,無論什么語言,什么框架均喜歡先學習整個結構如何,事件如何處理、數據如何存儲、界面如何展示、各頁面如何調用等。正如每次買到一本新書,總喜歡把先把目錄和前言好好看看,有個大概的映像再去分解閱讀。我這樣的人往往難得深入,一般是了解結構、方法,遇到問題再由點解決問題,就好像是一座樓房只建了框架,哪層賣出去了才建哪層的圍墻,從外看來,不是棟美觀高上大樓房,但也不會影響居住,總是難得討人喜歡罷了。
Android這些年來積累的學習資源可為豐富至極,但我一般還是喜歡看官網的資料,一來準確,二來權威。所幸Android的官網資料豐富,不久有講解,還有實例(Android Studio中可以直接導入example),大部分還有中文說明,真是方便。開發工具當然選的是Android Studio,Google已經宣稱不再支持Eclipse的Android插件了。Android開發的官網是:https://developer.android.com/guide/index.html。學習的方式也按我以往的基本步驟:官網基礎知識,典型開發模式和開發框架,典型實例、調試、測試、打包及更新,自定義Demo。
在官網目錄中有Training和Api Guides兩個目錄,我大略看了一下,可能在學習過程中以Api Guides為主,部分例子可參考Training和Samples。
如官網所說:Android 提供了一個內容豐富的應用框架,支持您在 Java 語言環境中為移動設備開發創新應用和游戲。Android不僅僅應用于我們熟知的Pad、Phone,還應用于智能終端、各類傳感器等多種移動終端。
Android應用提供多個入口點:Android 應用都是將各種可單獨調用的不同組件加以組合開發而成。例如,組件可以是為用戶界面提供一個屏幕的單個“Activity”,也可以是在后臺獨立執行工作的“服務”。這一點真的很吸引人,在一般的應用中只有唯一的入口,如VC、VB等應用只有一個入口main函數。在Android中都是組件化的,每個組件可以相互獨立,又可以相互調用組合完成一個完整的事務,我感覺現在逐漸升溫的微服務以及云計算里的Dock采用了相似的思路,將功能獨立化,不僅使得節約了開發成本,也提高系統健壯性,可測性,好處多多。嗯,我不禁迫切想知道組件之間是如何獨立運行又相互調用的。
Android操作系統是一種多用戶的Linux系統,Android應用采用Java語言編寫,最終應用將數據、代碼和資源一起編譯到一個.apk的存檔文件。一個應用以不同的Linux用戶,具有唯一的Linux用戶ID,只能訪問本用戶資源,如果希望多個應用訪問共同資源可以采用以下方法:
1.為不同應用設置同一Linux 用戶id
2.通過調用其他組件訪問相關資源
Android有四類組件:
1.Activity
主要用于用戶界面展示
2.Service
用于在后臺長時間運行,沒有界面,跟Windows等后臺服務類似。
3.ContentProvider
? 主要用于數據等存取,如:文件系統、SQLite 數據庫、網絡上或您的應用可以訪問的任何其他永久性存儲位置。
4.BroadcaseReceive
用于響應系統等各類消息。
如何啟動組件?
四種組件類型中的三種 — Activity、服務和廣播接收器 — 通過名為 Intent 的異步消息進行啟動。組件間相互調用,主要依賴于Intent。各組件調用等方法不同,但都通過Intent傳遞數據。
1.Activity啟動方法
- 直接調用采用startActivity(),
- 需要獲取返回值采用startActivityForResult()
2.Service啟動方法
- 直接啟動采用startService(),
- 需要綁定該服務采用bindService(),即啟動者銷毀,綁定的服務同時銷毀。
3.BroadCast啟動方法
通過sendBroadcast(),sendOrderedBroadcast() 或 sendStickyBroadcast() 等方法來發起廣播
4.ContentResolver調用方法
采用query()調用。
Android項目文件目錄
1.mainfests
項目文件清單:聲明項目中的各個組件,組件的訪問權限等。
2.java
項目的源碼目錄:包括源碼、測試代碼
3.res
項目資源文件:包括頁面布局、本地化設置、全局的字符串定義、圖標等。
總結
以上是生活随笔為你收集整理的从零开始学习Android开发-Android概览的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt 设置当前窗口出现在左右窗口的最前面
- 下一篇: wpf 如何设置弹出窗口必须关闭才能打开