建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2 2013/2 V3 2014/9 V4 Android智慧型手機程式設計 建立Android新專案 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2 2013/2 V3 2014/9 V4
建立新專案步驟 使用Eclipse 步驟1:啟動Eclipse 步驟2:File New Project Android Project 步驟3:設定專案參數(主要4個) Project name Application name Package name Create activity 步驟4:編輯程式 步驟5:執行程式
建立新專案參數意義 Project name:專案名稱,只在Eclipse中使用 Application name:應用程式名稱,未來安裝到手機上時的顯示名稱 Package name:APK(Android Package)安裝套件名稱(使用網域名稱的命名方式,只要符合應用程式意涵就可以) Google play不接受com.android.xx或com.sample.xx Create Activity:動作類別名稱,未來OS以這個名稱判別程式處於活動、暫停或關閉狀態
建立新專案 本範例設定如下: Project name:Hello Android Application name:Hello Android App Package name:com.android.hello Create Activity:HelloAndroid
建立新專案步驟 步驟1:啟動Eclipse 1 Eclipse.exe 2 Eclipse ADT啟動畫面
建立新專案步驟 步驟1:啟動Eclipse 3 指定工作空間 放置原始碼位置 請指定您自己需要的目錄來存放新專案
建立新專案步驟 步驟2:建立新專案 1
建立新專案步驟 步驟2:建立新專案 2 選擇Android Android Application Project 3 版面會因ADT不同而不同
建立新專案步驟 步驟3:設定專案參數 3 填寫Application、project & package name 4 選擇platform 5
建立新專案步驟 步驟4:設定專案參數 新的ADT畫面可能不同!!
建立新專案步驟 步驟5:設定專案icon 新的ADT畫面可能不同!!
建立新專案步驟 步驟6:設定專案Activity
建立新專案步驟 步驟7:設定Activity參數
建立新專案步驟 完成畫面
有時選用SDK 4.X,畫面會一片灰 解決方法 重新挑選適當的SDK
Android程式目錄架構 Package explorer 多數時間都與其打交道 Java原始檔案 Android.jar指出Android SDK存放的目錄 可以存放一些資源檔案的目錄 但不會在R中出現 程式介面主檔案main.xml 內容檔案strings.xml AndroidMainfest.xml定義應用程式整體內容與資源 定義Android SDK版本的檔案default.properties
Android程式目錄架構 Eclipse內的workspace目錄 實際檔案目錄
先不更改任何程式下 執行看看本專案的結果
步驟5:執行專案程式 如果有設定好AVD,會自動啟動模擬器 會將APK( com.android.hello )安裝到模擬器(data/app/目錄)上面 模擬器上顯示Application name( Hello Android App )的名稱
步驟5:執行專案程式 如果沒有設定,請設定專案對應的AVD 1
步驟5:執行專案程式 設定專案對應的AVD 2
步驟5:執行專案程式 設定專案對應的AVD 3 4
步驟5:執行專案程式 設定專案對應的AVD 5 確定模擬器 6
步驟5:執行專案 啟動模擬器 I 啟動模擬器執行需時較久,請耐心等候
步驟5:執行專案 啟動模擬器 II
步驟5:執行專案 啟動模擬器 III 這個畫面長怎樣,要看你選的SDK版本
步驟5:執行專案 模擬器結果
模擬器上程式畫面 模擬器不用關閉,等待下次執行
如何看模擬器上面的data/app目錄(I) 執行程式會將APK套件( com.android.hello )安裝到模擬器(data/app/目錄)上面 透過adb.exe
如何看模擬器上面的data/app目錄(II) 模擬器要開啟執行 adb shell 1
如何看模擬器上面的data/app目錄(III) cd data/app 2
如何看模擬器上面的data/app目錄(IV) ls 3
先來講講兩個檔案 main.xml與strings.xml 為何沒寫程式會出現hello world? 關連到strings.xml內的 hello標記內容 UI主介面
main.xml與strings.xml hello標記內容 主要顯示內容
整個原始專案內容 看到這個有什麼感覺? 找找看Java程式在那? 專案內兩大檔案類型 .java .xml
先跳出來看一下物件導向程式設計與JAVA
Activity原始程式結構內容 連結到main.xml Package name(代表這支程式, 未來要找到它就靠這個) 預設的兩個class 繼承自Activity Activity名稱 覆載 啟動Activity的事件 儲存Activity狀態 執行原class中的方法 畫面上顯示之內容 連結到main.xml
R.java 定義所有的res資源,自動產生,不要隨便去更改 assests內的不會出現在R中
另一個很重要的檔案 AndroidManifest.xml Package name 目標SDK 預設啟動的Activity 預告:所有Activity都要在這註冊
AndroidManiFest.xml 還可以做: 專案icon設定 匯出APK 設定Activity顯示方式(例如螢幕旋轉) 設定專案的權限(例如是否可以使用sdcard) 版本控管 … 這些東西將陸續在後面章節提到
先畫個圖 Java程式 R.java Java程式 Res資源 除了assests 變動 自動註冊 透過package name 互相串連 drawable Java程式 layout 使用方法: R.id.名稱 R.layout.名稱 R.string.名稱 getResources().getString(R.string.receiving) @string/名稱(直接設定) values …
開始來修改程式
修改程式 1 開啟java原始檔
原始程式碼內容 Package name 預設的兩個class Activity名稱 啟動Activity的事件 儲存Activity狀態 畫面上顯示之內容
修改strings.xml 改成:這是我的第一個Android程式
修改strings.xml 再重新執行一次程式
重新執行程式
修改main.xml 新加入的程式 連結到strings.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_height="wrap_content" android:text="@string/hello" /> android:text="@string/content" </LinearLayout> 新加入的程式 連結到strings.xml
修改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> 新加入的內容
新程式執行結果
從模擬器取出APK 安裝到實際手機上
從模擬器取出APK adb pull /data/app/com.android.hello.apk . 方法1:adb pull指令 (Android SDK tools) adb pull /data/app/com.android.hello.apk .
com.android.hello.apk
從模擬器取出APK 方法2:透過AndroidMainfest.xml
從模擬器取出APK 方法2:透過AndroidMainfest.xml Use the Export Wizard to export and sign an APK
從模擬器取出APK 方法2:透過AndroidMainfest.xml
從模擬器取出APK 方法2:透過AndroidMainfest.xml 至少填到這裡
從模擬器取出APK 方法2:透過AndroidMainfest.xml
從模擬器取出APK 方法2:透過AndroidMainfest.xml
從模擬器取出APK 方法2:透過AndroidMainfest.xml
APK套件 類似於Windows系統的setup.exe安裝檔案
安裝APK套件 可以透過廠商提供的Sync軟體,例如HTC Sync 透過SDK tool的adb install 透過網路下載點 透過Gmail 透過App Store
安裝APK套件到手機 HTC Sync Sync同步軟體
安裝APK套件到手機
安裝APK套件到手機
安裝APK套件到手機
Android手機畫面
手機上安裝完成畫面
手機上程式集畫面
安裝APK adb install adb install com.android.hello.apk .
ddms管理軟體 Android SDK tools ddms.bat
這裡一樣可以看模擬器上面的檔案
專案轉移
專案轉移 專案在Eclipse的workspace目錄中
專案轉移 workspace目錄中每個目錄名稱就是一個專案 這些都是專案 直接複製這個目錄就可以轉移
專案轉移 透過Eclipse的import匯入專案
專案轉移 透過Eclipse的import匯入專案 選擇專案目錄所在位置就可以
New class或XML
New class 1 2
New class 3 4
New class 5 6 7
New class 8
New class
New XML 1 2
New XML
New XML
New 檔案 其實不用那麼麻煩… 我們常常用的都是Copy Paste
幾個小技巧
Project Clean 重新compile Project
Refresh 重新建立專案內檔案連結
Android Tools Fix Project Properties 修復專案內某些參數 連結與設定
Properties 所有專案相關設定
預設執行的SDK Level
加入外部jar檔案
使用的Java compiler
還有嗎? 當然有 ….碰到再說!
補充 解決Application與Activity Label屬性衝突問題
方法一 多設定intent-filter內的android:label屬性 移除application內的android:label屬性 intent-filter的label屬性將取代application,同時與activity的不同
方法二 移除activity內的android:label屬性 重新用程式定義activity標題 加入layout/my_title.xml onCreate中加入程式碼