Android核心基礎一

Android簡介&體系結構


Android是Google公司對外發布的一個免費開源基於Linux2.6的操作系統,Android是一個層疊式的操作系統。

Android組成:


1.applications (應用層)


這裏可能會出一個面試題:寫出Android的核心應用程序。

home, phone, contacts, browser


2.application framework(應用框架層)


3.library + Androidruntime (庫+Android運行時環境)


library是由c/c++編寫的免費開源的庫。

Androidruntime::core library + DalVik vm(Android每個應用程序都有自己單獨的dalvik vm )


4.Linux kernel (Linux內核底層)


Binder Driver(IPC):原來linux系統沒有,是由google工程師後來加入的。IPC:進程間通訊。


helloword&Android工程的目錄結構

src文件夾

    

該文件夾是放項目的源代碼的。新建一個簡單的HelloWorld項目,系統爲我們生成了一個HelloWorld.java文

件。他導入了兩個類android.app.Activity和android.os.Bundle,HelloWorld類繼承自Activity且重 寫了onCreate

方法。

onPause():處理當離開你的活動時要做的事情。最重要的是,用戶做的所有改變應該在這裏提交(通常

ContentProvider保存數據)。


android.os.Bundle類:從字符串值映射各種可打包的(Parcelable)類型(Bundle單詞就是捆綁的意思,

所有這個類很好理解和記憶)。如該類提供了公有方法public boolean containKey(String key),如果給定的key包

含在Bundle的映射中返回true,否則返回false。該類實現了Parceable和Cloneable接口,所以它具有這兩者的特

性。


gen文件夾


該文件夾下面有個R.java文件,R.java是在建立項目時自動生成的,這個文件是隻讀模式的,不能更改。

R.java文件中定義了一個類——R,R類 中包含很多靜態類,且靜態類的名字都與res中的一個名字對應,即R類定義

該項目所有資源的索引。看我們的HelloWorld項目是不是如此,如下圖:



通過R.java我們可以很快地查找我們需要的資源,另外編繹器也會檢查R.java列表中的資源是否被使用到,

沒有被使用到的資源不會編繹進軟件中,這樣可以減少應用在手機佔用的空間。


Android 2.1文件夾


該文件夾下包含android.jar文件,這是一個Java 歸檔文件,其中包含構建應用程序所需的所有的Android 

SDK庫(如Views、Controls)和APIs。通過android.jar將自己的應用程序綁定到Android SDK和Android Emulator,

這允許你使用所有Android的庫和包,且使你的應用程序在適當的環境中調試。例如上面的HelloWorld.java源文件中

的:import android.app.Activity; import android.os.Bundle; 這裏兩行代碼就是從android.jar導入包。


assets


包含應用系統需要使用到的諸如mp3、視頻類的文件。


res文件夾


資源目錄,包含你項目中的資源文件並將編譯進應用程序。向此目錄添加資源時,會被R.java自動記錄。新

建一個項目,res目錄下會有三個子目錄:drawabel、layout、values。

drawabel-?dpi:包含一些你的應用程序可以用的圖標文件(*.png、*.jpg)

layout:界面佈局文件(main.xml)與WEB應用中的HTML類同。

values:軟件上所需要顯示的各種文字。可以存放多個*.xml文件,還可以存放不同類型的數據。比如

arrays.xml、colors.xml、dimens.xml、styles.xml


AndroidManifest.xml


配置四大組件Activity Service,BroadcastReceiver,ContentProvier,project.properites。在這個文

件中,你可以指定應用程序使用到的服務(如電話服務、互聯網 服務、短信服務、GPS服務等等)。另外當你新添加一

個Activity的時候,也需要在這個文件中進行相應配置,只有配置好後,才能調用此Activity。

default.properties

記錄項目中所需要的環境信息,比如Android的版本等。


常見佈局


LinearLayout (線性佈局)、AbsoluteLayout(絕對佈局)、RelativeLayout(相對佈局)、TableLayout(表格佈局)、FrameLayout(幀佈局)


佈局中重要的一些屬性:


1 gravity    內容居中


2 layout_gravity  控件居中


3 layout_weight  均等分配


4 margin   


5 layout_blow  位於xx的下面 layout_toRightOf   位於xx的右邊   layout_alignTop 頂部對齊


四種點擊事件


1  匿名內部類


2  內部類


3 讓MainActivity實現OnClickLiseter接口     bt_send.setOnClickListener(new this);


4 佈局指定 andorid:onClick=”send”   public void send(View v){}


今天還有一個簡單的Android短信發送器的案例,我把它寫到案例部分吧,太長了看着不方便。努力,堅持,加

油!!

 








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章