Android 菜鳥認知總結——Android初印象之系統架構和app 元件
1.對Android安裝包的認識,Android的安裝包是apk檔案,裡面包含了你程式碼和資源,它包含了Android應用的所有內容。
2。對Android系統的認識: 什麼是Android系統,由哪些部分構成的。我們需要對系統架構有一定的瞭解,方便以後拓展學習每一部分。以我個人為例子,我們經常所謂的應用(使用者可見的)是Application層,這是最上面一層,我們開發人員主要的任務就是開發出來一個app。那我們開發的應用是如何被管理的呢,這裡就需要認識一下app Framework (應用框架) 。首先了解幾個概念:
(1) JNI
JNI 是什麼 ,這裡只做簡單的指引,Android是Java編寫的,那Java是如何呼叫本地語言的呢(c 或者c++語言),對就是通過JNI JNI是 Java和 c之間的紐帶或者說是介面。
以下兩個連結是對JNI一個比較好的詮釋,有興趣的同學可以看一下
http://blog.csdn.net/yuanzeyao/article/details/42418977
http://blog.csdn.net/eastmoon502136/article/details/50759209
(2)Android ndk
ndk 和 sdk 傻傻分不清楚
簡單來說,sdk 是用Java開發的,ndk是用c開發的。NDK即Native Development Kit,眾所周知,Android程式執行在Dalvik虛擬機器中,NDK允許使用者使用類似C / C++之類的原生程式碼語言執行部分程式。
這裡是對 SDK 和 NDK 一個不錯的詮釋的文章
http://blog.csdn.net/LoongEmbedded/article/details/39718577
http://blog.csdn.net/openme_openwrt/article/details/8042035
迴歸一下 那什麼是 app framework 初級階段我們大量的學習就是在這個層次上的學習:view(用於顯示檢視),content provide內容提供器,資源管理器,通知管理器,活動管理器等等。 這裡涉及到有些知識點是: 這個層級如何使用 JNI 有興趣的同學可以去了解一下,很多原始碼有用到。
接下來的層級是standard libraries 和 Android runtime 統稱為系統執行庫。這是什麼東西呢?Android包含了很多 C編寫的庫,這些庫提供了對一些多媒體檔案,2d 3d等等的支援。
接下來是Dalivik 和 ART,它提供了Android執行環境虛擬機器。
3.上面是對Android系統的架構有了簡單的認識,接下來是對 app元件的認識,就是我們常說的Android4大元件,巴拉巴拉。
這裡對這幾個元件進行簡單的介紹 。 1。activity提供螢幕2. Service 用於後臺實現耗時操作3.content provide 共享資料 4.broadcast 經常用於提醒,只能處理極少工作量。
4.四大元件靠 intent互相連線,啟動。intent是他們之間資訊互動的紐帶
5.mainfest,用於宣告所有元件,宣告所有軟硬體許可權,用於確定使用API,用於確認應用要求
6.資原始檔:所用到的佈局,字型,圖片,文字等等。