編輯:關於Android編程
1.Android項目的目錄架構
src : java原代碼存放目錄
gen : 自動生成目錄
gen 目錄中存放所有由Android開發工具自動生成的文件。目錄中最重要的就是R.java文件。 這個文件由Android開發工具自動產生的。Android開發工具會自動根據你放入res目錄的xml界面文件、圖標與常量,同步更新修改R.java文件。正因為R.java文件是由開發工具自動生成的,所以我們應避免手工修改R.java。R.java在應用中起到了字典的作用,它包含了界面、圖標、常量等各種資源的id,通過R.java,應用可以很方便地找到對應資源。另外編繹器也會檢查R.java列表中的資源是否被使用到,沒有被使用到的資源不會編繹進軟件中,這樣可以減少應用在手機占用的空間。
res : 資源(Resource)目錄
在這個目錄中我們可以存放應用使用到的各種資源,如xml界面文件,圖片或數據。
res/drawable 專門存放png、jpg等圖標文件。在代碼中使用getResources().getDrawable(resourceId)獲取該目錄下的資源。drawable文件下有三個文件:drawable-hdpi、drawable-ldpi、drawable-mdpi分別代表高中低三種尺寸的屏幕大小。Android系統自動根據實際手機屏幕大小調用者三個文件的其中一個。
res/layout 專門存放xml界面文件,xml界面文件和HTML文件一樣,主要用於顯示用戶操作界面。
res/values 專門存放應用使用到的各種類型數據。不同類型的數據存放在不同的文件中,如下:
· strings.xml 定義字符串和數值,在Activity中使用getResources().getString(resourceId) 或getResources().getText(resourceId)取得資源。它的作用和struts中的國際化資源文件一樣。
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="itcast">傳智播客</string>
</resources>
· arrays.xml 定義數組。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="colors">
<item>red</item>
<item>yellow</item>
<item>green</item>
<item>blue</item>
</string-array>
</resources>
· colors.xml 定義顏色和顏色字串數值,你可以在Activity中使用getResources().getDrawable(resourceId) 以及getResources().getColor(resourceId)取得這些資源。例子如下:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<color name="contents_text">#ff000000</color>
</resources>
· dimens.xml 定義尺寸數據,在Activity中使用getResources().getDimension(resourceId) 取得這些資源
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<dimen name="key_height">50dip</dimen>
</resources>
· styles.xml 定義樣式。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="itcastText" parent="@style/Text">
<item name="android:textSize">18px</item>
<item name="android:textColor">#008</item>
</style>
</resources>
res/anim/ 編譯成幀動畫的XML文件。
res/xml/ 在Activity中使用getResources().getXML()讀取該目錄下的XML資源文件。
res/raw/ 該目錄下的文件將直接被復制到設備上。編譯軟件時,這些數據不會被編譯,它們被直接加入到程序安裝包裡。 為了在程序中使用這些資源,你可以調用getResources().openRawResource(ID) , 參數ID形式:R.raw.somefilename。
assets :資源目錄
Android除了提供/res目錄存放資源外,在assets目錄下也可以存放資源文件,而且/assets目錄下的資源文件不會在R.java自動生成ID,所以讀取其下的文件 必須指定文件路徑,如:file/android_assets/xxx.3gp.
AndroidManifest.xml : 功能清單文件
這個文件列出了應用程序所提供的功能,在這個文件中,你可以指定應用程序使用到的服務,還需要在改文件中聲明權限(如電話服務、互聯網服務、短信服務、GPS服務等等)。另外當你新添加一個Activity的時候,也需要在這個文件中進行相應配置,只有配置好後,才能調用此Activity。還有你開發好的各種組件(Activity、ContentProvider、BroadcastReceiver、Service即四大組件)也需要在改文件中進行配置。
default.properties:項目環境信息,一般是不需要修改此文件,比如告訴開發工具(即Eclipse)開發的Android應用程序的版本號:Project target.target=android-8。
2. 清單文件中部分代碼的含義
包名用於圍標;
<android:icon=”@drawable/icon”>這個的含義分別是:icon翻譯過來是圖標的意思,@代表R文件;所以這個表達式代表的含義是該應用的圖標ID是R文件下的drawable下的icon;
<android:name=”.MainActivity”>,MainActivity如果是當前包下的類,則“.”可以省略,但是建議別省略,否則容易出錯;如果是子包下的類,則一定不能省略。例如:<android:name=”.sub.MainActivity”>
Activity一定要放在所在包或其子包中,不能放在其他包中。
清單文件是在軟件安裝的時候被讀取的,而不是在程序運行的時候。可以把清單文件看成是一個注冊表,實際上不是啊!
3. <inter-filter>是意圖過濾器,作用是:對數據進行過濾,如果匹配怎干一些事,否則什麼都不干;意圖代表一個想法,是用來匹配你要做的事情。
意圖過濾器標簽中包含兩個參數標簽。分別是<activity>、<categroy>分別是動作名稱和類別名稱。這兩個參數的作用是:把應用安裝和顯示在手機的啟動列表中,不加這兩個參數也行,但是你編寫的應用不會顯示在手機的啟動列表中。即中兩個參數是應用的啟動入口,所以這兩個參數只能出現在一個activity中,不能出現在多個,因為一個應用程序只有有一個入口。
4. 應用的安裝過程分析
.javaà.classà.dex(通過Android SDK下的dx工具)à打包(簽名,開發工具自行進行)à.apk
.dex和.apk文件在工作空間的相應項目(即應用)下的bin文件下,所有.java類都編譯進一個.dex文件中;
簽名在Eclipse下的windowàproferrncesàAndroidàBuild中,Default debug keystore
內部執行的程序時:adb install c:\xxx.apk.
5. 應用的啟動過程分析
(1)過程分析。
創建線程à創建主線程à在主線程中實例化Activityà操作系統會把應用有關的信息(context)存在Activity中à調用onCreate()方法(此方法由android系統調用而非程序員調用)
(2)采用sdk安裝目錄tools下的adb命令進行軟件的安裝和卸載:
安裝:adb install c:\hello.apk
卸載:adb uninstall <應用的包名> 例子:adb uninstall cn.cadn.phone;
6. Android顯示單位
px (pixels)像素
一般HVGA代表320x480像素,這個用的比較多。
dip或dp (device independent pixels)設備獨立像素
這個和設備硬件有關,一般為了支持WVGA、HVGA和QVGA 推薦使用這個,不依賴像素。
sp (scaled pixels — best for text size)比例像素
主要處理字體的大小,可以根據系統的字體自適應。
除了上面三個顯示單位,下面還有幾個不太常用:
in (inches)英寸
mm (millimeters)毫米
pt (points)點,1/72英寸
為了適應不同分辨率,不同的像素密度,推薦使用dip ,文字使用sp。
7. 布局介紹
有四種:LinearLayout(線性布局)、RelativeLayout(相對布局)、TableLayout(表格布局)、FrameLayout(幀布局)。
布局還分為為水平布局(horizontal)和垂直布局(vertical)。
頂級元素一定要指明命名空間,非頂級的可以不指明,但是一旦用作頂級元素時則一定要指明命名空間。例如:
<LinearLayout xmlns:android=”www.2cto.com
http://schemas.android.com/apk/res/android”>
前言1.由於粘貼了較大的代碼,造成內容比較長,可能會花費您較長的時間。2.項目裡面沒有做權限判斷,所以如果發現有頁面發生崩潰可能是權限沒有打開,請打開權限後再進行嘗試。3
AlertDialog生成的對話框可分為4個區域:圖標區,標題區,內容區,按鈕區結構如圖:AlertDialog對話框的使用:1,創建AlertDialog.Builde
一個ListView通常有兩個職責。(1)將數據填充到布局。(2)處理用戶的選擇點擊等操作。第一點很好理解,ListView就是實現這個功能的。第二點也不難做到,在後面的
如何打開手機USB連接刷機精靈,有時我們插入電腦,刷機精靈老是顯示叫我打開USB接口,連接。可不知道在哪裡設置。想刷機都刷機不了。現在小編來告訴怎麼打開US