準備開發環境
安裝ADT插件
下載用於在Eclipse中開發android應用的ADT(Android Development Tools)插件。
Help → Install Software → Add → Achieve → 選擇ADT的zip文件,輸入Name,確定,勾選安裝項(如果安裝不上, 就把該zip文件丟到eclipse/dropins下)。爲了防止安裝時自動更新,所以勾掉Contact all update sites during install tofind required software。→ 重啓Eclipse。
安裝完之後在工具欄就會出現Android機器人的圖標。在Preference也會有對應的項。
安裝Android SDK
AndroidSDK包含了開發Android應用所依賴的jar文件,運行環境及相關工具。有點類似於JDK。
從官方網站下載的SDK不帶有各種版本的android平臺(platforms文件夾是空的),可以通過SDK Manage.exe來下載android的版本。
完成之後再platforms中有對應的android文件。
爲ADT插件指定使用的SDK環境:
Window → Preference → Android → 選擇SDK Location →選擇解壓的SDK文件 → Apply,就會出現Android版本的列表 → OK
創建android手機模擬器
選擇屏幕分辨率:
HVGA:320*480
QVGA:240*320
WQVGA400:240*400
WQVAG432:240*432
WVGA800: 480*800(default)
WVGA854: 480*854
幾個常用eclipse視圖窗口
視圖File Explorer。
該視圖有3個文件:
data: 存放原件產生的數據
mnt: 存放外部的數據
asec
sdcard: 外部設備
system: 存放android系統文件
視圖Emulator Control 模擬器控制器
模擬電話呼出
打開手機模擬器之後,輸入Telephony Actions : 5554 點擊Call就能模擬呼叫手機模擬器了。
第一個Android應用
新建項目
File → new → Project →Android → Android Project →
輸入Project name: HelloWord
選擇對應android平臺
輸入Application name(應用名稱): 第一個應用
輸入Package name(Android中使用 Package name作爲應用的唯一標識。):com.gshen.android.app
創建Create Activity(Activity代表窗口,該窗口可以接受用戶的輸入事件):Main
選擇Minimum SDK版本,表示該應用程序可以在選擇版本以上的版本運行
項目安裝部署到模擬器上
第一種:項目右鍵→ Run As → Android Application(推薦, 內部也是通過adb.exe實現)
第二種:編譯之後,會在根目錄/bin下生成一個HelloWorld.apk 的文件,然後通過android-sdk-windows\tools下的adb.exe來完成項目部署
cd E:/android-sdk-windows/tools
adbinstallE:/workspace/Android_HelloWrod/bin/HelloWord.apk
卸載程序
第一種:setting → 管理應用程序 → 就可以操作
第二種:通過adb指令來完成
adbuninstall <應用的包名> eg. adbuninstall com.gshen.android.app
項目的目錄結構
src/ 存放源文件
gen/ 存放由開發工具自動生成的文件(由開發工具維護),有一個R.java:作用是登記各種資源的id,資源id是由編譯器在放入res(資源)時生成的
public final class R {
public static final class attr {
}
/* 這個類專門登記圖形資源,可以通過這個ic_launcher資源id找到對應圖片*/
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
res/ 存放資源文件:比如圖片,文字,佈局等等
drawable-*/ 爲了適應不同分辨率的屏幕,圖片文件提供了drawable-hdpi(高), drawable-mdpi(中), drawable-ldpi(低)三個文件夾 ,開發時我們可以爲同一張圖片設置不同的分辨率,分別放在這三個文件夾下。
layout/ 存放界面佈局和的文件
values/ 存放應用中用到的數據,也用於實現國際化,減少相同文字內存空間的使用比如在string.xml中添加:
<string name="hello_world">你好,世界</string>
在R.java文件的string內部類下就會生成對應的資源id:
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
public static final int hello_world=0x7f040002;
}
這樣在項目中就可以通過hello_world找到對應的字符串了。
amin/ 存放定義動畫的XML文件
xml/ 存放應用中配置的數據, 在Activity中使用getResources().getXML()讀取該目錄下XML資源文件。
raw/ 該目錄用於存放應用使用到的原始文件,如音效文件等。編譯軟件時,這些數據不會被編譯,他們被直接加入到程序安裝包中,爲了在程序中使用這些資源,可以通過調用getResources().openRawResources(ID),參數ID形式:R.raw.i_definition
assets/ 存放資源文件,這個文件夾下的資源文件不會在R.java生成資源id,如果要訪問這個路徑下的資源文件,通過:file:///android_asset/icon.jgp
AndroidMainifest.xml 項目清單文件(imp)
這個文件列出了應用程序所提供的功能,以後開發好的各種組件(Activity、ContentProvider、BroadcastReceiver、Service)需要在該文件中配置,如果應用使用到了系統內置的應用(如電話服務、互聯網服務、短信服務、GPS服務等),還需要在該文件中生命使用權限。
<activity android:label="@string/app_name"
android:name=".Android_HelloWorldActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
這個activity是應用程序的入口,指定應用程序的圖標出現在啓動列表中。
清單文件是在應用程序安裝的時候讀取,註冊。
default.properties 項目環境信息,不需要操作
應用程序安裝過程
.java → .class →通過dx工具再轉成一個.dex → 將.dex文件和資源文件打包一個壓縮文件,這也是一個簽名過程,使用一個證書祕鑰(證書位置:Android→Build→Default debug keystore目錄下)對文件打包簽名,完成之後就是一個.apk文件。
(如果我們是調用Run As Android Application,則會默認調用adb指令安裝到模擬器)
應用程序啓動過程
用戶點擊圖標之後,創建一個進程 → 創建主線程 → 在主線程中實例化Activity →操作系統把應用有關的信息(Context)存放進Activity中,然後調用onCreate()方法,再調用main.xml佈局方式。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
佈局及單位
佈局方式(容器,用於擺放控件)有幾種:
1、 LineLayout(線性佈局)
2、 RelativeLayout(相對佈局)
3、 TableLayout(表格佈局)
4、 FrameLayout(幀佈局)
Android中顯示的單位
1、 px(pixels)像素
一般HVGA代表320*480像素,則個用的比較多
2、 dip或dp(device independent pixels)設備獨立像素
這個和設備的硬件有關,一般爲了支持WVGA、HVGA、QVGA推薦使用這個,不依賴像素
3、 sp(scaled pixels – best for text size)比例像素
主要處理字體的大小,可以根據系統的字體自適應
除了上面三個顯示單位,還有幾個不太常用的:
in(inches)英寸
mm(millimeters)毫米
pt(points)點,1/72英寸
爲了適應不同分辨率,不同的像素密度,推薦使用dip,文字使用sp。
[gshen1]爲什麼這麼實現?