Android On Linux 簡易安裝開發教學 Installing Google Android SDK 2.0.1 On Ubuntu 9.10 Desktop
目 錄 一 ANDROID 開發系統需求... 1 1. 作業系統... 1 2. 開發工具... 1 二 安裝 ANDROID 開發工具... 1 1. 安裝 JDK... 1 2. 使用 APT-GET 安裝... 2 3. 使用套件管理程式安裝... 9 三 ANDROID 程式撰寫... 16 A. 新增專案... 16 B. 程式撰寫 ( 計算機範例 )... 17 C. 程式 :UI 設計 (XML)... 19 D. 程式 :JAVA 文件... 21 E. 建立 APK... 23 四 MINI2440 實作... 27 五 問題及解決 :... 33 七 參考網站 :... 35 2
一 Android 開發系統需求 1. 作業系統作業系統方面 Android 開發所需的應用軟體, 可以在目前常見的作業系統上做開 發 Windows XP and Vista 以上版本 Mac OS X 以上版本 Linux ( 可在各種版本套件上所執行, 本文件所採用的是 ubuntu9.10 版本 ) 2. 開發工具我們所需要使用的開發工具皆為免費開放的軟體, 所以開發 Android 的軟體是簡單且容易取得的 JDK5 或 JDK6 JDK 是使用 Java 開發工具所需要用的軟體, 所以只安裝 JRE 是不夠的 JDK 工具可在 http://java.sun.com 網站取得 Eclipse IDE Eclipse 是一個供多種開發語言所使用的開發平台, 我們這裡需要的是 Eclipse IDE for Java EE Developers 或是 Eclipse IDE for Java Developers, 因為只有這兩個開發環境才具有 Eclipse JDT 擴充套件 Eclipse ADT Eclipse 的 Android 開發工具擴充套件 ( 外掛程式 ) (Android Development Tools plugin), 直接由 Eclipse 上安裝 Android SDK Android SDK 就是 Android 程式開發套件, 還包含了 Android 模擬器 二 安裝 Android 開發工具 1. 安裝 JDK SUN JAVA 套件如列表 1: Debian 和 Ubuntu 提供以下 Sun J2SE 5.0 和 Sun Java SE 6 套件 : Sun J2SE 5.0 套件 名稱 Sun Java SE 6 套件 名稱 描述 sun-java5-jdk sun-java6-jdk Sun JDK 開發工具, 開發 Java 程式必備 sun-java5-jre sun-java6-jre Sun Java Runtime, 僅供執行 Java 程式, 不包 含 compiler 等開發工具 sun-java5-fonts sun-java6-fonts Sun JRE 提供了一系列的 Lucida TrueType 字 1
體, 這個套件使到這些字體能夠被 defoma 使用 sun-java5-plugin sun-java6-plugin 供網頁瀏覽器用的 Sun Java Applet 插件 sun-java5-doc sun-java6-doc JDK API 文檔 (javadoc) sun-java5-source sun-java6-source Java API 的源代碼 (src.zip) sun-java5-demo sun-java6-demo Java 演示與程式例子 sun-java5-bin ia32-sun-java5-bin sun-java6-bin ia32-sun-java6-bin jre 和 plugin 套件所依賴的, 所以不需單獨安裝在 Intel 64-bit ( 包括 amd64 和 ia64) 平台上執行 32-bit Sun Java 所需要的檔案 表 1 注意 Debian 4.0 (etch) 官方並未支援 Sun Java 6, 您若要使用, 請確定已使用 backport.org 軟件庫 2. 使用 apt-get 安裝 Step1: 更新 apt-get update apt-get upgrade Step2: 安裝 JDK6 apt-get install sun-java6-jdk java -version javac -version Step3: apt-get install eclipse 會安裝 Eclipse IDE 及 Java Development Tools (JDT) and the Plugin Development Environment (PDE). Step4: Install Android SDK - Download and install Android SDK at http://developer.android.com ; 並複製到 /opt 目錄下, 並解 壓縮 ; 即產生 ==>/opt/android-sdk-linux_86 目錄. cd /opt tar zxvf android-sdk_r04-linux_86.tar 2
- 編輯 /root/.bashrc 即 ==> gedit /root/.bashrc& 加入下面敘述到最後一列 : export PATH=${PATH}:/opt/android-sdk-linux_86/tools export GDK_NATIVE_WINDOWS=true Step5: 安裝 Eclipse plugin 開啟 eclipse Help==>Install New Software==>Add Available Software Add available software site ADT1: http://download.eclipse.org/releases/galileo ADT2: http://dl.google.com/eclipse/plugin/3.5 ADT3: http://dl-ssl.google.com/android/eclipse/ 選 ADT3 安裝 ADT 圖 0.1 進行 ADT 安裝 3
圖 0.2 圖 0.2 圖 0.4 4
圖 0.5 圖 0.5 開始裝 ADT 圖 0.6 圖 0.7 按 YES 從新起動 eclipse Step7: 到 Window==>Preferences, 在 Android 的頁面中按下 Browse, 選擇 /opt/android-sdk-linux_86,android SDK 解壓縮的資料夾 5
圖 0.8 Step8: Install Android Package 到 eclipse Window ==> Android SDK and AVD Manager 安裝 Available Packages( 將列表網址打勾進行安裝 ) 圖 0.9 圖 0.10 6
圖 0.11 圖 0.12 圖 0.13 圖 0.14 安裝成功 7
圖 0.15 套件出現 8
3. 使用套件管理程式安裝 a. 安裝 JAVA SDK 首先我們需要下載 JDK 套件, 因為本文所使用的是 Ubuntu 所以我們可以從 工具列選取, 系統 管理 Synaptic 套件管理程式 ( 圖 1) 將套件管理程式打 開後, 我們在搜尋工具列打上 java 便會列出許多 java 相關軟體 我們選擇 sun-java6-sdk 將這個套件安裝 ( 圖 1), 這樣便可以簡單的安裝起 JDK 套件 圖 1 b. 安裝 Eclipse 圖 2 圖 3 9
c. 安裝 Android 開發工具擴充套件 (ADT) 將 Eclipsed 打開接著在工具列選擇 Help Install New Software ( 圖 4), 接著按 下 Add 的按鈕, 在 name 的欄位輸入我們所要的名稱,Location 的欄位中輸入 : (http://dl-ssl.google.com/android/eclipse/site.xml)( 圖 5), 這個網址是我們所要 下載套件的位址 接下來在套件方塊中打勾按下 next( 圖 6), 接著在最後頁面選 取 Iaccept the terms of the license agreements 的選項, 之後按下 Finish 鈕 ( 圖 7), 便 會開始安裝 ( 圖 8) 圖 4 圖 5 10
圖 6 圖 7 11
圖 8 d. 安裝 Android SDK 我們到 Android 網站下載 SDK(http://developer.android.com/sdk/index.html), 我們 要在 ubuntu 上面執行故我們選擇 Linux(i386) 的版本 ( 圖 9) 下載完成解壓縮後打 開 Eclipse, 在工具列上選擇 Window Preferences ( 圖 10), 在 Android 的頁面 中按下 Browse, 選擇我們剛剛解壓縮的資料夾 ( 圖 11) 接著再從 Eclipse 的工具 列上選擇 Window Android SDK and AVD Manager ( 圖 12), 在出現的視窗上 選擇 Available Packages 頁面, 將 Sites,Packages and Archives 頁面中方塊打勾 ( 圖 13) 按下 Install Selected, 接著在出現的頁面中選 Accept All 後按下 Install Accepted ( 圖 14) 安裝完成後, 我們選擇 Virtual Devices 頁面選擇 New... 來新增模擬器, 輸入模擬器名稱 選擇模擬器 選擇模擬器解析度後按下 Create ACD( 圖 15), 這樣 SDK 就設定完成了, 接下來就可以設計我們所需要的程式了 圖 9 12
圖 10 圖 11 13
圖 12 圖 13 14
圖 3 圖 4 15
三 Android 程式撰寫 a. 新增專案首先我們新增一個專案, 建立專案的方式很簡單, 從工具列選擇 File New Project ( 圖 16), 我們選擇 Android Project( 圖 17), 接著在 Project name 的欄位輸入我們要的專案名稱, 在 Build Target 視窗中選擇模擬器,Properties 中輸入資料後按下 Finish 鈕就新增完成了 ( 圖 18) 圖 5 圖 6 16
圖 7 b. 程式撰寫 ( 計算機範例 ) 新增完專案後, 我們可以從旁邊的 Package 視窗中選擇我們所要編輯的文件 ( 圖 19), 這裡我們先設計 UI, 這裡我們來設計一個計算機, 所以我們從 Package 視 窗中 res layout main.xml 我們依照資料夾打開 main.xml 文件, 這個文件是 讓我們編輯程式的 UI 部分, 點兩次滑鼠左鍵打開後會看到黑色的螢幕, 這就是 我們所要設計的螢幕部分, 我們可以從右方 Views 的視窗中將元件拉入黑色的螢 幕中 ( 圖 20), 或是切換到 xml 的頁面做編輯 ( 圖 21) 編輯完 UI 後, 我們再 到 src com.example01 example01.java, 打開 java 文件 ( 圖 21) 接著編輯 我們主要的程式,java 的部份 因為只有 UI 程式是不會運作的, 我們還需要編 輯 java 才能讓我們的計算機運作起來 17
圖 19 圖 8 18
c. 程式 :UI 設計 (xml) 圖 91 <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <EditText android:id="@+id/text1" android:layout_width="70px" android:layout_height="50px" android:layout_x="20px" android:layout_y="50px" android:textsize="18sp" /> <EditText android:id="@+id/text2" android:layout_width="70px" android:layout_height="50px" android:textsize="18sp" android:layout_x="150px" 19
android:layout_y="50px" /> <TextView android:id="@+id/textview1" android:layout_width="50px" android:layout_height="50px" android:textsize="45sp" android:layout_x="105px" android:layout_y="45px" /> <TextView android:id="@+id/textview3" android:layout_width="40px" android:layout_height="50px" android:text="=" android:textsize="45sp" android:layout_x="20px" android:layout_y="150px" /> <TextView android:id="@+id/textview2" android:layout_width="150px" android:layout_height="50px" android:textsize="45sp" android:layout_x="80px" android:layout_y="150px" /> <Button android:id="@+id/button1" android:layout_width="50px" android:layout_height="50px" android:text="+" android:textsize="25sp" android:layout_x="10px" android:layout_y="220px" /> <Button android:id="@+id/button2" 20
android:layout_width="50px" android:layout_height="50px" android:text="-" android:textsize="25sp" android:layout_x="65px" android:layout_y="220px" /> <Button android:id="@+id/button3" android:layout_width="50px" android:layout_height="50px" android:text="x" android:textsize="25sp" android:layout_x="120px" android:layout_y="220px" /> <Button android:id="@+id/button4" android:layout_width="50px" android:layout_height="50px" android:text="/" android:textsize="25sp" android:layout_x="175px" android:layout_y="220px" /> </AbsoluteLayout> d. 程式 :Java 文件 package com.example01; import android.app.activity; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.edittext; import android.widget.textview; public class example01 extends Activity { /** Called when the activity is first created. */ 21
public EditText text1; public EditText text2; public TextView textview1; public TextView textview2; public TextView textview3; public Button button1; public Button button2; public Button button3; public Button button4; public String num; @Override public void oncreate(bundle savedinstancestate){ super.oncreate(savedinstancestate); setcontentview(r.layout.main); text1 =(EditText)findViewById(R.id.Text1); text2 =(EditText)findViewById(R.id.Text2); textview1 = (TextView)findViewById(R.id.TextView1); textview2 = (TextView)findViewById(R.id.TextView2); textview3 = (TextView)findViewById(R.id.TextView3); button1 = (Button)findViewById(R.id.Button1); button2 = (Button)findViewById(R.id.Button2); button3 = (Button)findViewById(R.id.Button3); button4 = (Button)findViewById(R.id.Button4); button1.setonclicklistener(add); button2.setonclicklistener(sub); button3.setonclicklistener(mul); button4.setonclicklistener(div); } public OnClickListener add = new OnClickListener(){ public void onclick(view v){ textview1.settext("+"); num = Integer.toString(Integer.parseInt(text1.getText().toString()) + 22
Integer.parseInt(text2.getText().toString())); textview2.settext(num); } }; public OnClickListener sub = new OnClickListener(){ public void onclick(view v){ textview1.settext(" "); num = Integer.toString(Integer.parseInt(text1.getText().toString()) - Integer.parseInt(text2.getText().toString())); textview2.settext(num); } }; public OnClickListener mul = new OnClickListener(){ public void onclick(view v){ textview1.settext("x"); num = Integer.toString(Integer.parseInt(text1.getText().toString()) * Integer.parseInt(text2.getText().toString())); textview2.settext(num); } }; public OnClickListener div = new OnClickListener(){ public void onclick(view v){ textview1.settext("/"); num = Integer.toString(Integer.parseInt(text1.getText().toString()) / Integer.parseInt(text2.getText().toString())); textview2.settext(num); } }; } e. 建立 APK APK(Android Package) 這是一種 Android 的安裝包, 將我們所撰寫的程式包成 23
APK 檔後放到 Android 手機內, 就可以執行安裝, 便可將我們的撰寫的程式安裝至手機中 製作 APK 檔的方式很簡單, 我們撰寫好程式後, 在側邊的 Package 視窗中選擇, AndroidManifest.xml( 圖 22), 然後在新開啟的視窗中選擇 Use the Export Wizard to export and sign an APK, 這個選項是簽署金鑰, 就是將你的程式簽上開發者的資訊, 然後下面的 Export an unsigned APK and sign it manually, 這個選項就是不簽署直接包成 APK( 圖 23) 這裡我們選擇簽署, 選擇後會出現一個視窗, 按下 Browse 選擇我們的專案, 完成按下一步 ( 圖 24), 接下來我們選擇新增簽署 Create new keystore 的選項, 在 Location 的地方打上金鑰儲存的位址, 下面設上密碼, 選擇下一步 ( 圖 25), 接下來的介面就是填入你個人的資訊 ( 圖 26), 按下下一步就會出現最後的頁面, 在 Destination APK file 的欄位選擇自己 APK 要儲存的位置後按下 Finish( 圖 27) 圖 102 24
圖 11 圖 12 25
圖 13 圖 14 26
圖 15 四 Mini2440 實作 我們將 APK 包裝完成後, 到我們的目錄底下就可以看到一個 APK 檔案 ( 圖 28), 接著我們將檔案複製到 SD card 中, 然後將 SD card 插在 2440 上開機 ( 圖 29), 開機後, 我們選擇 APK 安裝器 這個工具 ( 圖 30), 然後我們選擇 安裝 Installer 這個選項 ( 圖 31), 接著我們選到我們製作好的程式 ( 圖 32), 接著會問你 Do you want to install this application? 這就是在問你是不是要安裝這個應用程式, 當然選擇安裝 Install ( 圖 33), 接著顯示 Application installed 這就是安裝完成了, 我們按下 Done ( 圖 34), 再到程式列表上去看就會看見我們所安裝的程式了 ( 圖 35), 接著運作看看 ( 圖 36) 27
圖 16 圖 29 28
圖 30 圖 31 29
圖 32 圖 33 30
圖 34 圖 35 31
圖 36 32
五 問題及解決 : 1.Android SDK on Ubuntu 9.10 Android SDK 的介面有需要按 Enter 鍵某些按鈕才能動作的問題, 應該是 跟 GTK 的某些功能有衝突 ADT 在 Eclipse 上的安裝, 我是用 Eclipse-Platform 套件, 後來發現還要安裝 Eclipse-pde 套件, 然後 Software Site 要加上 http://download.eclipse.org/releases/galileo 才能夠正確的安裝 有圖才有真相 : 33
2. 依照 Android SDK 官方網頁的說明在 Ubuntu 9.10 下是裝不起來的, 因為執 行時 Android SDK and AVD Manager 程式介面的按鈕都沒作用, 但是在 Windows 7 底下卻沒有問題, 找了很久終於在這裡找到答案, 只要先 : export GDK_NATIVE_WINDOWS=true 然後再執行 :./android 所有按鈕就有作用, 也可以下載 Packages 34
七 參考網站 : 1. 使用 apt-get 安裝 Sun Java http://wiki.debian.org.hk/w/install_sun_java_with_apt 2. Install the ADT Plugin for Eclipse http://developer.android.com/sdk/eclipse-adt.html 3. Install the sdk for Eclipse http://developer.android.com/sdk/installing.html 35