顯示具有 android 標籤的文章。 顯示所有文章
顯示具有 android 標籤的文章。 顯示所有文章

2011年9月21日 星期三

如何構建 Android (APK)

如何構建 Android應用程序的命令使用SDK工具APK使用CruiseControl



關於手動建立apk的方法你可以建立資源目錄,你可以將其命名為任何你想要的

你可以找到ant腳本\platforms\android-1.5\templates\android-rules.xml

第1步:生成資源的Java代碼打包資源
aapt  package -f -M ${manifest.file} -F ${packaged.resource.file} -I ${path.to.android-jar.library} -S ${android-resource-directory} [-m -J ${folder.to.output.the.R.java}]


第2步編譯 Java源代碼+ R.java
使用javac

第三步:轉換的Dalvik字節碼
使用dx.bat
dx.bat  –dex  –output=${output.dex.file}  ${compiled.classes.directory}  ${jar files..}
第4步:創建無符號的APK
使用apkbuilder


apkbuilder  ${output.apk.file} -u -z  ${packagedresource.file} -f  ${dex.file}


or


apkbuilder  ${output.apk.file} -u -z  ${packagedresource.file} -f  ${dex.file}  -rf  ${source.dir}  -rj  ${libraries.dir}


-rf = resources required for compiled source files?
-rj = resources required for jar files

6生成密鑰
使用keytool

第7步:登錄的APK
使用jarsigner

jarsigner  -keystore ${keystore} -storepass  ${keystore.password} -keypass ${keypass} -signedjar ${signed.apkfile} ${unsigned.apkfile} ${keyalias}
8:發布
使用adb


adb -d install -r ${signed.apk}


檢查您APK文件
aapt list -v latest.apk



注意:如果安裝您的應用程序使用如果你看到此錯誤代碼FAILED_INSTALL_DEXOPT那麼很有可能,不然就是你沒有classes.dex你沒有 APK包裝資源

2011年9月11日 星期日

在 eclipse 中建立 Android 新專案

Step 1. 在 eclipse 中建立 Android 新專案

Step 1.1  首先先開啟一個 Java Perspective

    Main Menu -> Windows -> Open Perspective -> Other
    選擇 Java 按 OK


Step 1.2 在Java Perspective 中新增 Android 專案
   
     Main Menu -> File -> New -> Android Project


設定
      Project name 輸入 HelloAndroid
    Contents  輸入 Create new project in workspace
    Build Target  輸入 Android 2.3.3
    Properties.Application name  輸入 HelloAndroid
    Package name  輸入 bugsamples.HelloAndroid
    Create Activity 選取 輸入 HelloAndroidActivity
設定完成後按下 Finish 按鈕便可完成一個Hello World的 Android sample。
   


 Step 1.3 編譯並執行 HelloAndroid
    
        Main Menu -> Run -> Run configurations 
       



      選取 Android Application   會產生 New_configuration



    設定 Name 為 AdnroidAppConig   
    Project為 HelloAndroid
    接著按 target 頁面建立虛擬機器,並按下 Manager


    


    新增虛擬機器
     Name 輸入 AVD_2_3_3
     Target 選擇 Android 2.3.3-API Level 10
     SD Card 可以模擬 只要輸入要模擬的大小
     Skin 可以隨你要模擬的項目選取
      輸入完按Create AVD 建立這個模擬器


       




      按下 Run 漂亮的Android 畫面就出現了..



                                                           
接著就可以開始開發 自己的Android APP 了..

android 開發 eclipse 環境設定

Step 1. 安裝設定 android eclipse 環境

    Step 1.1 設定工作目錄


    Step 1.2 設定android 的套件

    執行 Eclipse 後,Main Menu -> Help -> Install New Software … 開啟畫面
    在彈出視窗的 Add 按鍵


      Location 輸入 https://dl-ssl.google.com/android/eclipse/
      Name 輸入 AndroidDeveloperPlugin-Tools


 
接著畫面會出現一些能勾選的'項目,全部都鉤起來,然後按Next進入安裝。
 
  Step 1.3 重新啟動
    安裝好之後他會問你要不要重新啟動,就選 Restart 動新啟動


  Step 1.4 設定 android sdk 路徑 
    Main Menu -> Windows -> Preference -> Android
    選取”SDK Location”  這邊要設定 Android SDK的路徑


 將SDK Location 設定為 /opt/android-sdk-linux_86/

  Step 1.5 安裝套件
    Main Menu -> Window -> Android SDK and AVD Manager -> Avaliable Packages
    你可以選擇你要的 package 選取下載。

    選好後再按 Install Selected 即可,接下來就可以去泡杯咖啡..上上網等待安裝完成。

接下來就可開始建立新的專案了..請看在 eclipse 中建立 Android 新專案

ubuntu 11.04 64位元 建立 Android App 開發環境

Step 1  切換至root帳號 是為了方便接下來 檔案存取時會有權限的問題 !
 $ sudo su   


Step 2 下載

 Step 2.1 下載JDK for x86_64位元的版本,並更改他的權限


  $ wget http://download.oracle.com/otn-pub/java/jdk/6u25-b06/jdk-6u25-linux-x64.bin 
  $ chmod 755 jdk-6u25-linux-x64.bin 

Step 2.2 下載android sdk for linux版本

  $ wget http://dl.google.com/android/android-sdk_r12-linux_x86.tgz

Step 2.3下載 eclipse  for linux gtk x86_64 版本

$ wget http://ftp.cs.pu.edu.tw/pub/eclipse/technology/epp/downloads/release/indigo/R/eclipse-jee-indigo-linux-gtk-x86_64.tar.gz

Step 2  安裝

  Step 2.1 安裝JDK for x86_64 執行過程中會有JAVA版權問題 直接按Enter就可以!!

 $ ./jdk-6u25-linux-x64.bin
 
  Step 2.2 解壓縮 android sdk 並將其權限改成root : root
$ tar xvf android-sdk_r12-linux_86.tgz
$ chown -R root:root  android-sdk-linux_86
        因為是由root啟動eclipse 並且設定此目錄為sdk路徑 所以必須把權限改成 root

 Step 2.3 解壓縮 eclipse
         $ tar -zxvf eclipse-jee-indigo-linux-gtk-x86_64.tar.gz
         $ mv eclipse eclipse-x86_64

Step 3 接著要安裝一些設定

 Step 3.1 先安裝ia32-libs讓64位元電腦可執行32-bits執行檔
$ sudo apt-get install ia32-libs
  可以從apt-get 內直接取得ia32-libs 但要確定你的電腦有連上網路

 Step 3.1.建立 jre 軟體連結 eclipse 的資料夾
  
                   $ cd /opt/eclipse-x86_64
         $ ln -s /opt/jdk1.6.0_25/jre ./jre
 Step 3.2. 建立開啟eclipse的執行檔 由於開啟程式需要外加一些環境變數
        為了方便每次開機都不用設定環境變數~這邊把它寫成一個eclipse.sh
$ vim eclipse.sh
             #!/bin/sh
             export PATH=/opt/jdk1.6.0_25/bin:/opt/android-sdk-linux_86/tools:${PATH}
             GDK_NATIVE_WINDOWS=1 /opt/eclipse-x86_64/eclipse

  $ sh eclipse.sh 


 eclipse 就開起來了...接下來就可以開始 使用它~~ 請見android 開發 eclipse 環境設定

 在此為大家寫一個懶人包 insx64.sh 如果你對上面的步驟已經很了解~或你怎麼試都失敗
那你就下載這個懶人包 直接執行
 $ sh insx64.sh

自動跑完設定時 在執行 eclipse.sh 你就可以看到美美的 eclipse 畫面了..

2011年9月6日 星期二

android 核心模組


在這篇文章中將會具體針對Android核心模組的相關概念進行詳細介紹。 

Androidg
是一個移動設備的系統平台,其軟體層次結構包括了一個作業系統(OS),中間層(MiddleWare)和應用程式(Application)。 

根據Android的軟體框架,其Android核心模組結構自下而上分為以下幾個層次: 

第一、作業系統層(OS 

第二、各種函式庫(Libraries)和Android 運行環境(RunTime 

第三、應用程式框架(Application Framework 

第四、應用程式(Application 

以下分別介紹Andoid各個層次的軟體的重點及其相關技術: 

Android
核心模塊之作業系統層(OS 

Android
使用Linux2.6作為作業系統,Linux2.6是一種標準的技術,Linux也是一個開放的作業系統。 Android對作業系統的使用包括核心和驅動程式兩部分,AndroidLinux核心為標準的Linux2.6內核,Android更多的是需要一些與移動設備相關的驅動程式。主要的驅動如下所示: 

顯示驅動(Display Driver):常用基於Linux的圖像緩衝(Frame Buffer)驅動。 

Flash
內存驅動(Flash Memory Driver 

照相機驅動(Camera Driver):常用基於Linuxv4lVideo for Linux)驅動。 

音頻驅動(Audio Driver):常用基於ALSAAdvanced Linux Sound Architecture,高級Linux聲音)驅動。 

WiFi
驅動(Camera Driver):基於IEEE 802.11標準的驅動程式 

鍵盤驅動(KeyBoard Driver 

藍牙驅動(Bluetooth Driver 

Binder IPC
驅動: Andoid一個特殊的驅動程式,具有單獨的設備節點,提供程式之間通訊的功能。 

Power Management
(能源管理) 

Android
核心模組之各種函式庫(Libraries)和Android 運行環境(RunTime 

本層次對應一般嵌入式系統,相當於中間件層次。 Android的本層次分成兩個部分一個是各種庫,另一個是Android 運行環境。本層的內容 
大多是使用C++實現的。 

在其中,各種庫包括: 

C
程式庫:C語言的標準程式庫,這也是系統中一個最為底層的程式庫,C程式庫是通過Linux的系統調用來實現。 多媒體框架(MediaFrameword):這部分內容是Android多媒體的核心部分,基於PacketVideo(即PV)的OpenCORE,從功能上本程式庫一共分為兩大部分,一個部分是聲音、影像的回放(PlayBack),另一部分是則是聲音影像的紀錄(Recorder)。 
SGL
2D圖像引擎。 

SSL
:即Secure Socket Layer位於TCP/IP協議與各種應用層協議之間,為數據通訊提供安全支持。 

OpenGL ES 1.0
:本部分提供了對3D的支持。 

界面管理工具(Surface Management):本部分提供了對管理顯示子系統等功能。 

SQLite
:一個通用的嵌入式數據庫 

WebKit
:網路瀏覽器的核心 

FreeType
是一個用C語言實現的字型光柵化引擎製作的的一個函式庫。它可以用來將字元柵格化並對映成點陣圖以及提供其他字體相關業務的支援。

Android
的各種程式庫一般是以系統中間件的形式提供的,它們均有的一個顯著特點就是與移動設備的平台的應用密切相關。 

Android
運行環境主要指的虛擬機技術——Dalvik Dalvik虛擬機和一般JAVA虛擬機(Java VM)不同,它執行的不是JAVA標準的字節碼(bytecode )而是Dalvik可執行格式(.dex)中執行文件。在執行的過程中,每一個應用程式即一個進程(Linux的一個Process)。二者最大的區別在於Java VM是以基於棧的虛擬機(Stack-based),而Dalvik是基於寄存器的虛擬機(Register-based)。顯然,後者最大的好處在於可以根據硬件實現更大的優化,這更適合移動設備的特點。 

Android
核心模組之應用程式框架(Application Framework 

Android
的應用程式框架為應用程式層的開發者提供APIs,它實際上是一個應用程式的框架。由於上層的應用程式是以JAVA構建的,因此本層次提供的首先包含了UI程式中所需要的各種控件: 
例如: Views (視圖組件)包括lists(列表), grids(柵格), text boxes(文本框), buttons(按鈕)等。甚至一個嵌入式的Web瀏覽器。 

一個Andoid的應用程式可以利用應用程式框架中的以下幾個部分: 

Activity
(活動) 

Broadcast Intent Receiver
(廣播意圖接收者) 

Service
(服務) 

Content Provider
(內容提供者) 

Android
核心模塊之應用程式(Application 

Android
的應用程式主要是用戶界面(User Interface)方面的,通常以JAVA程式編寫,其中還可以包含各種資源文件(放置在res目錄中)JAVA程式及相關資源經過編譯後,將生成一個APKAndroid本身提供了主螢幕(Home),聯絡人(Contact),電話(Phone),瀏覽器(Browers)等眾多的核心應用。同時應用程式的開發者還可以使用應用程式框架層的API實現自己的程式。這也是Android開放原始碼的巨大潛力的表現。