剛剛開始學android開發,以前都是在别人調好的應用中修改JNI,現在需要自己一步步走
開發環境:Eclipse+ADT
配置不多講了,引自:http://www.cnblogs.com/allenzheng/archive/2012/11/10/2762379.html
http://www.cnblogs.com/vamei/p/3889208.html
http://blog.csdn.net/jianghuiquan/article/details/8244374
我主要是一步步記錄自己學習android的過程。
一、建立Android一個項目
①打開Eclipse,單擊菜單欄的“File”->把滑鼠光标移動到“New”->在彈出的清單框中,如果直接能看到“Android Applicaion Project”選項項,則直接單擊此選項,否則選擇最下面的“Other...”,在彈出的視窗中,展開“Android”項,選擇“Android Applicaion Project”,然後“Next”;
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SMlNGZjhjMyMzNhFjZ4M2NiJmNlNTMldjNlRDOyQjN18CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
其實還有一個方法就是直接點Eclipse工具欄的如下圖所訓示的圖示:
②在新彈出的視窗中按下圖提示填寫相關資訊,一路“Next”,直到點選“Finish”,這樣第一個Android程式就建立好了,這是你會發現Eclipse左邊多了一個你新建立的Android項目。
二、編譯Android項目
build project 後 按下圖所示選中項目->單擊滑鼠右鍵,在彈出的清單框中選擇“Run As”->單擊“Android Application”,這時會發現模拟器自動啟動,等到模拟器完全啟動好後,就可以看到項目的編譯結果了。
建立新應用後,我們就到了Eclipse的主界面:
左側的Package Explorer中可以浏覽HelloWorld應用下的所有檔案。點選後,檔案内容将在右側的編輯器主界面中打開。
運作第一個應用
我們可以在ADT中,控制應用的安裝和運作
Run -> Run As -> Android Application
由于我們還沒有注冊其它的安卓裝置,此時安卓将自動運作模拟器(emulator)。模拟器從你的電腦中分出計算和存儲資源,生成一個虛拟的安卓裝置。HelloWorld應用将安裝到模拟器中。可以在右下角的Console監視整個過程。
三、Android項目工作區概覽
建立一個Android項目,Eclipse會自動幫我們建立諸多檔案,我們看一下:
其中:
第①部分:表示Java源程式;
第②部分:代表系統資源ID,類似于C語言的*.h檔案,請千萬不要手工修改R.java檔案;
第③部分:Android4.2表示目前SDK是4.2,是目前最新版本;
第④部分:表示資源檔案,其中layout布局你可以認為就是界面;
第⑤部分:每一個Android項目都包含一個清單(Manifest)檔案--AndroidManifest.xml,它存儲在項目層次中的最底層。清單可以定義應用程式及其元件的結構和中繼資料。
Android項目中主要檔案及檔案夾的作用:
(1)src:存放所有的*.java源程式。
(2)gen:為ADT插件自動生成的代碼檔案儲存路徑,其中的R.java檔案将儲存所有的資源ID。
(3)Android 4.2:表示現在使用的Android SDK的版本是4.2。
(4)assets:可以存放項目中一些較大的資源檔案,如圖檔、音樂、字型等。
(5)res:可以存放項目中所有的資源檔案,如圖檔(*.png、*.jpg)、網頁(*.html)、文本等。
(6)resdrawable-hdpi:儲存高分辨率圖檔資源。
(7)resdrawable-ldpi:儲存低分辨率圖檔資源。
(8)resdrawable-mdpi:儲存中等分辨率圖檔資源。
(9)reslayout:存放所有布局檔案,主要是用于排列不同的顯示元件,在Android程式要讀取此配置。
(10)resvalues:存放一些資源檔案資訊,用于讀取文本資源,在檔案夾中有一些約定的檔案名稱。(具體内容待以後詳解)
(11)resaw:自定義的一些原生檔案所在目錄,如音樂、視訊等檔案格式。
(12)resxml:使用者自定義的XML檔案,所有的檔案在程式運作時編譯到應用程式中。
(13)resanim:用于定義動畫對象。
(14)activity_main:配置所有的控件。
(15)R.java:此檔案為自動生成并自動維護的,使用者添加的控件會自動在此檔案中生成一個唯一的ID,以供程式使用。
(16)AndroidManifest.xml:主要配置檔案,用于配置各個元件或一些通路權限等。
總之,看着真的夠複雜,你先有個印象就可以了。至少,你應該知道源檔案是放在src檔案夾;布局檔案在res/layout檔案夾,其他以後了解也ok。
二、Android項目分析
1、布局檔案(reslayoutactivity_main.xml) 輕按兩下“reslayoutactivity_main.xml”打開布局檔案。注意①代表布局檔案圖形界面;②代表布局檔案代碼界面。
Android App應用程式類似于.net的Winform程式,其中①和②相當于标題欄,①為标題欄的圖示,②為标題;③代表标簽,類似于衆多程式的Label。
我們再來看一下代碼:
希望你在探讨本段代碼之前,至少至少要有XML檔案的概念,如果沒有請了解這後再來繼續學習。
本段代碼包含了兩個重要标簽:和,代表線性布局管理器;代表标簽元件。其它的皆為兩個标簽的屬性。
我們着重來看一下:android:text="@string/hello_world",我們的運作結果是“Hello world!”而不是“hello_world”!
Why?
2、strings文本資源檔案(resvaluesstrings.xml)
輕按兩下“resvaluesstrings.xml”打開文本資源檔案。與布局檔案一樣:①代表文本資源圖形界面;②代表文本資源代碼界面。
我們打開文本資源strings.xml檔案之後,當我們看到:
Hello world!
前面的疑慮應該頓消,原來如此啊!hello_world是文本資源檔案中的一個标簽而已,其真正的内容是“Hello world!”。
你可以通過圖形界面或者字元界面添加一個字元串資源,究竟你選擇哪種,随你高興!
3、R.java檔案(gen/com.genwoxue.hello/R.java)
輕按兩下“gen/com.genwoxue.hello/R.java”打開資源ID檔案。
R.java資源檔案儲存所有資源的ID,譬如前面所講的hello_world,在這裡就是一個整數0x7f040001而已。
如果你感覺這個檔案很奇怪也很正常,除非你曾經學習或者寫過C for windows應用程式就早已習以為常了。
這個檔案你最好隻是看看,不要動它!!!
4、AndroidManifest.xml檔案
輕按兩下“AndroidManifest.xml”項目配置檔案。
所有的Activity程式都在AndroidManifest.xml檔案中進行注冊,故該檔案是整個Android項目的核心配置檔案。
在節點中配置的android:icon="@drawable/ic_launcher",表示引用drawable(drawable-hdpi、drawable-ldpi、drawable-mdpi三個檔案夾中導入)資源配置的圖示,引入圖示的名稱為ic_launcher。現在你可以更換應用程式圖示了,你知道了它在哪!
在節點中配置的android:label="@string/app_name",表示此應用程式的标簽名稱從strings.xml檔案中讀取,内容為app_name對應的内容。現在你也可以更換應用程式标題了,你知道了它在哪!
當然,你還可以更改Activity的标題,什麼是Activity?
Activity就是一個活動的窗體,一個項目應用程式可以包含多個Activity。
5、MainActivity.java(src/com.genwoxue.hello/MainActivity.java)
輕按兩下“src/com.genwoxue.hello/MainActivity.java”程式檔案。
本程式是Android整個項目的主程式,Activity是項目的基本組成部分。
MainActivity繼承Activity類,onCreate()方法是啟動Activity地預設調用的方法。
super.onCreate(savedInstanceState):調用父類的onCreate()方法;
setContentView(R.layout.activity_main):調用布局檔案。給MainActivity設定了要顯示的視圖R.layout.activity_main,視圖由R類尋找并加載(感覺很像mvc,Activity相當于Controller而要顯示的layout就相當于具體的頁面)。
可以看到Android.jar裡面包含了很多包,常見包的作用如下:
android.app-----------提供高層的程式模型、提供基本的運作環境
android.content-------包含各種的對裝置上的資料進行通路和釋出的類
android.database------通過内容提供者浏覽和操作資料庫
android.graphics-------底層的圖形庫,包含畫布,顔色過濾,點,矩形,可以将他們直接繪制到螢幕上.
android.location-------定位和相關服務的類
android.media---------提供一些類管理多種音頻、視訊的媒體接口
android.net------------提供幫助網絡通路的類,超過通常的java.net.* 接口
android.os-------------提供了系統服務、消息傳輸、IPC 機制
android.opengl--------提供OpenGL 的工具
android.provider-------提供類通路Android 的内容提供者
android.telephony-----提供與撥打電話相關的API 互動
android.view-----------提供基礎的使用者界面接口架構
android.util------------涉及工具性的方法,例如時間日期的操作
android.webkit---------預設浏覽器操作接口
android.widget---------包含各種UI 元素(大部分是可見的)在應用程式的螢幕中使用