Download - 建立 Android 新專案
![Page 1: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/1.jpg)
建立 Android 新專案
建國科技大學 資管系饒瑞佶
2012/4 V12012/8 V22013/2 V3
Android 智慧型手機程式設計
![Page 2: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/2.jpg)
建立新專案步驟使用 Eclipse
• 步驟 1 :啟動 Eclipse• 步驟 2 : File New Project Android
Project• 步驟 3 :設定專案參數 ( 主要 4 個 )– Project name– Application name– Package name– Create activity
• 步驟 4 :編輯程式• 步驟 5 :執行程式
![Page 3: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/3.jpg)
建立新專案本範例設定如下:• Project name : Hello Android
• Application name : Hello Android App
• Package name : com.android.hello
• Create Activity : HelloAndroid
![Page 4: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/4.jpg)
建立新專案步驟步驟 1 :啟動 Eclipse
Eclipse.exe Eclipse啟動畫面
1
2
![Page 5: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/5.jpg)
建立新專案步驟步驟 1 :啟動 Eclipse
指定工作空間3
放置原始碼位置請指定您自己需要的目錄來存放新專案
![Page 6: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/6.jpg)
建立新專案步驟步驟 2 :建立新專案
1
![Page 7: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/7.jpg)
建立新專案步驟步驟 2 :建立新專案
2
選擇 Android Android Application Project
3
版面會因 ADT 不同而不同
![Page 8: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/8.jpg)
建立新專案步驟步驟 3 :設定專案參數
3 填寫 Application 、 project & package name
4選擇 platform
5
![Page 9: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/9.jpg)
建立新專案步驟步驟 4 :設定專案參數
新的 ADT 畫面可能不同!!
![Page 10: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/10.jpg)
建立新專案步驟步驟 5 :設定專案 icon
新的 ADT 畫面可能不同!!
![Page 11: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/11.jpg)
建立新專案步驟步驟 6 :設定專案 Activity
![Page 12: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/12.jpg)
建立新專案步驟步驟 7 :設定 Activity 參數
![Page 13: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/13.jpg)
建立新專案步驟完成畫面
![Page 14: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/14.jpg)
建立新專案參數意義• Project name :專案名稱, Eclipse 中使用• Application name :應用程式名稱,未來安裝到手機上時的顯示名稱
• Package name : APK ( Android Package )安裝套件名稱(使用網域名稱的命名方式,只要符合應用程式意涵就可以)– Google play 不接受 com.android.xx 或
com.sample.xx
• Create Activity :動作類別名稱,未來 OS 以這個名稱判別程式處於活動、暫停或關閉狀態
![Page 15: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/15.jpg)
Android 程式目錄架構• Eclipse 內的 workspace 目錄• 實際檔案目錄
![Page 16: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/16.jpg)
整個原始專案內容
看到這個有什麼感覺?
找找看 Java 程式在那?
專案內兩大檔案類型.java.xml
![Page 17: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/17.jpg)
Android 專案目錄架構• Package explorer
Java 原始檔案
R.java 版面與資源設定檔(自動產生,不要輕易更改)
程式介面主檔案 main.xml內容檔案 strings.xml
AndroidMainfest.xml 定義應用程式整體內容與資源定義 Android SDK 版本的檔案 default.properties
Android.jar 指出 Android SDK 存放的目錄
多數時間都與其打交道
可以存放一些資源檔案的目錄但不會在 R 中出現
![Page 18: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/18.jpg)
先不更改任何程式下執行看看本專案的結果
![Page 19: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/19.jpg)
步驟 5 :執行專案程式• 如果有設定好 AVD ,會自動啟動模擬器• 會將 APK ( com.android.hello )安裝到模擬器( data/app/ 目錄)上面
• 模擬器上顯示 Application name ( Hello Android App )的名稱
![Page 20: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/20.jpg)
步驟 5 :執行專案程式
1
如果沒有設定,請設定專案對應的 AVD
![Page 21: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/21.jpg)
步驟 5 :執行專案程式
2
設定專案對應的 AVD
![Page 22: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/22.jpg)
步驟 5 :執行專案程式
3
4
設定專案對應的 AVD
![Page 23: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/23.jpg)
步驟 5 :執行專案程式
5 確定模擬器
6
設定專案對應的 AVD
![Page 24: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/24.jpg)
步驟 5 :執行專案啟動模擬器 I
啟動模擬器執行需時較久,請耐心等候
![Page 25: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/25.jpg)
步驟 5 :執行專案啟動模擬器 II
![Page 26: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/26.jpg)
步驟 5 :執行專案啟動模擬器 III
這個畫面長怎樣,要看你選的 SDK 版本
![Page 27: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/27.jpg)
步驟 5 :執行專案模擬器結果
![Page 28: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/28.jpg)
模擬器上程式畫面
模擬器不用關閉,等待下次執行
![Page 29: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/29.jpg)
如何看模擬器上面的 data/app 目錄(I)
• 執行程式會將 APK 套件( com.android.hello )安裝到模擬器( data/app/ 目錄)上面
• 透過 android-sdk-windows\tools\adb.exe
![Page 30: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/30.jpg)
如何看模擬器上面的 data/app 目錄(II)
• 模擬器要開啟執行
adb shell1
![Page 31: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/31.jpg)
如何看模擬器上面的 data/app 目錄(III)
cd data/app2
![Page 32: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/32.jpg)
如何看模擬器上面的 data/app 目錄(IV)
ls3
![Page 33: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/33.jpg)
Android 專案目錄架構• Package explorer
Java 原始檔案
R.java 版面與資源設定檔(自動產生,不要輕易更改)
程式介面主檔案 main.xml內容檔案 strings.xml
AndroidMainfest.xml 定義應用程式整體內容與資源定義 Android SDK 版本的檔案 default.properties
Android.jar 指出 Android SDK 存放的目錄
多數時間都與其打交道
可以存放一些資源檔案的目錄但不會在 R 中出現
![Page 34: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/34.jpg)
先來講講兩個檔案main.xml 與 strings.xml
• 為何沒寫程式會出現 hello world ?
UI 主介面關連到 strings.xml 內的hello 標記內容
![Page 35: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/35.jpg)
main.xml 與 strings.xml
主要顯示內容
hello 標記內容
![Page 36: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/36.jpg)
修改 strings.xml
改成:這是我的第一個 Android 程式
![Page 37: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/37.jpg)
修改 strings.xml
再重新執行一次程式
![Page 38: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/38.jpg)
重新執行程式
![Page 39: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/39.jpg)
修改 main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/content" /> </LinearLayout>
新加入的程式
連結到 strings.xml
![Page 40: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/40.jpg)
修改 strings.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World, 這是我的第一個 Android程式 !</string>
<string name="content">這一段是屬於內容的部分 \n 請大家指教 </string>
<string name="app_name">Hello Android App</string>
</resources>
新加入的內容
![Page 41: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/41.jpg)
新程式執行結果
![Page 42: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/42.jpg)
R.java
定義所有的 res資源,自動產生,不要隨便去更改assests內的不會出現在 R 中
![Page 43: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/43.jpg)
另一個很重要的檔案AndroidManifest.xml
Package name
目標 SDK
預設啟動的 Activity
預告:所有 Activity 都要在這註冊
![Page 44: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/44.jpg)
AndroidManiFest.xml
• 還可以做:–專案 icon 設定–匯出 APK
–設定 Activity 顯示方式 ( 例如螢幕旋轉 )
–設定專案啟動時的 Activity
–設定專案的權限 ( 例如是否可以使用 sdcard)
–版本控管–…
這些東西將陸續在後面章節提到
![Page 45: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/45.jpg)
先畫個圖
R.java
Java 程式
Java 程式
Res資源除了 assests
layout
drawable
…
變動自動註冊
透過 package name互相串連
使用方法:• R.id. 名稱• R.layout. 名稱• R.string. 名稱• getResources().getString(
R.string.receiving)
• @string/名稱 (直接設定 )
values
![Page 46: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/46.jpg)
產出 APK
![Page 47: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/47.jpg)
從模擬器取出 APK• 方法 1 : adb pull 指令 (Android SDK tools)
adb pull /data/app/com.android.hello.apk .
![Page 48: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/48.jpg)
com.android.hello.apk
![Page 49: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/49.jpg)
產出 APK• 方法 2 :透過 AndroidMainfest.xml
![Page 50: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/50.jpg)
產出 APK方法 2 :透過 AndroidMainfest.xml
• Use the Export Wizard to export and sign an APK
![Page 51: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/51.jpg)
產出 APK方法 2 :透過 AndroidMainfest.xml
![Page 52: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/52.jpg)
產出 APK方法 2 :透過 AndroidMainfest.xml
至少填到這裡
![Page 53: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/53.jpg)
產出 APK方法 2 :透過 AndroidMainfest.xml
實際存檔 apk 名稱
![Page 54: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/54.jpg)
產出 APK方法 2 :透過 AndroidMainfest.xml
![Page 55: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/55.jpg)
產出 APK方法 2 :透過 AndroidMainfest.xml
![Page 56: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/56.jpg)
APK 套件
類似於 Windows 系統的 setup.exe 安裝檔案
![Page 57: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/57.jpg)
安裝 APKadb install
adb install com.android.hello.apk .
![Page 58: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/58.jpg)
專案轉移
![Page 59: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/59.jpg)
• 專案在 Eclipse 的 workspace 目錄中
專案轉移
![Page 60: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/60.jpg)
• workspace 目錄中每個目錄名稱就是一個專案
專案轉移
這些都是專案
• 直接複製這個目錄就可以轉移
![Page 61: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/61.jpg)
• 透過 Eclipse 的 import 匯入專案專案轉移
![Page 62: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/62.jpg)
• 透過 Eclipse 的 import 匯入專案專案轉移
選擇專案目錄所在位置就可以
![Page 63: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/63.jpg)
開始來修改程式
![Page 64: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/64.jpg)
整個原始程式內容Package name(代表這支程式,未來要找到它就靠這個 )
預設的兩個 class
Activity 名稱
啟動 Activity 的事件 儲存 Activity 狀態
畫面上顯示之內容
連結到 main.xml
覆載
繼承自 Activity
執行原 class 中的方法
![Page 65: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/65.jpg)
先跳出來看一下物件導向程式設計與 JAVA
![Page 66: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/66.jpg)
修改程式
1 開啟 java 原始檔
![Page 67: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/67.jpg)
原始程式碼內容Package name
預設的兩個 class
Activity 名稱
啟動 Activity 的事件 儲存 Activity 狀態
畫面上顯示之內容
![Page 68: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/68.jpg)
補充
解決 Application 與 Activity Label屬性衝突問題
![Page 69: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/69.jpg)
方法一• 多設定 intent-filter 內的 android:label屬性• 移除 application 內的 android:label屬性• intent-filter 的 label屬性將取代 application ,同時與 activity 的不同
![Page 70: 建立 Android 新專案](https://reader035.vdocuments.pub/reader035/viewer/2022081418/56813c49550346895da5c618/html5/thumbnails/70.jpg)
方法二• 移除 activity 內的 android:label屬性• 重新用程式定義 activity 標題–加入 layout/my_title.xml
– onCreate 中加入程式碼