天天看點

phoneGap之Android環境搭建

PhoneGap說明

PhoneGap,一早就聽說有這麼一個神奇的應用,它可以把WEB項目打包成各種移動平台的應用程式。這裡我就研究一下,把之前開發的WebRTC項目打包成Android平台的apk檔案試一下。正好公司現在比較缺少Android應用開發人員,看來web應用還是很有前景的。不過在網上看過不少評論說PhoneGap打包的程式運作比較慢,使用者體驗差,和native應用沒的一比,這裡也算是是做個小實驗,自己看看到底怎麼樣。

PhoneGap與cordova

後面會講到cordova,主要用這個生成項目。為了不至混淆,這裡解釋一下。

PhoneGap是一個用基于HTML,CSS和JavaScript的,建立移動跨平台移動應用程式的快速開發平台。它使開發者能夠利用iPhone,Android,Palm,Symbian,WP7,Bada和Blackberry智能手機的核心功能——包括地理定位,加速器,聯系人,聲音和振動等,此外PhoneGap擁有豐富的插件,可以調用。

Phonegap是一款開源的開發架構,旨在讓開發者使用HTML、Javascript、CSS等Web APIs開發跨平台的移動應用程式。原本由Nitobi公司開發,現在由Adobe擁有。它需要特定平台提供的附加軟體,例如iPhone的iPhone SDK,Android的Android SDK等,也可以和DW5.5及以上版本配套開發。使用PhoneGap隻比為每個平台分别建立應用程式好一點點,因為雖然基本代碼是一樣的,但是你仍然需要為每個平台分别編譯應用程式。

Cordova提供了一組裝置相關的API,通過這組API,移動應用能夠以JavaScript通路原生的裝置功能,如攝像頭、麥克風等。Cordova還提供了一組統一的JavaScript類庫,以及為這些類庫所用的裝置相關的原生背景代碼。Cordova支援如下移動作業系統:iOS, Android,ubunto phone os, Blackberry, Windows Phone, Palm WebOS, Bada 和 Symbian。

Cordova是貢獻給Apache後的開源項目,是從PhoneGap中抽出的核心代碼,是驅動PhoneGap的核心引擎。你可以把他想象成類似于Webkit和Google Chrome的關系。

安裝JAVA和ADT

  1. 首先要安裝java運作環境jdk,這個可以自行到官網下載下傳。百度也有下載下傳連接配接:( http://www.baidu.com/s?tn=baidu&ie=utf-8&f=8&wd=jdk ),這個主意要将java安裝路徑的bin目錄加入系統或使用者的環境變量path中,安裝完可以在cmd指令行視窗輸入java -version,看是否有反應。
  2. 然後下載下傳ADT(Android Development Tools),這個到官網下載下傳:(http://developer.android.com/sdk/index.html ),這個網站打開慢,下載下傳還是比較快的。下載下傳後解壓ADT,這個裡面主要包含兩個檔案夾,一個是裝好插件的eclipse,用于開發Android應用,另外一個是android開發sdk目錄。需要将sdk/platform-tools這個路徑加入系統環境變量path中,為了以後調試用到adb。
  3. 下載下傳安裝ant,這個是在用phonegap的cordova工具生成android項目時,需要的編輯工具。下載下傳位址:(http://ant.apache.org/bindownload.cgi ),安裝完之後要注意,一定要在cmd指令行視窗輸入 ant 指令,看是否報錯。我的這個就報錯:在jre目錄找不到tools.jar。解決方法很簡單,自己看了一下jre目錄是沒有,在jdk目錄下lib目錄有tools.jar,于是拷貝一個過去就解決了。

安裝NodeJS插件

這個之前介紹過如何安裝,這裡就不說明了,參考:(http://www.haomou.net/2014/07/29/2014_nodejs_1/ )

接着安裝pnonegap和cordova,如下:

1
     
     
      2
     
     
      3
           
npm install 
      -
      g phonegap
     
     
      ...
     
     
      npm install 
      -
      g cordova
           

安裝完成之後,我們就可以使用phonegap生成一個android項目檔案。執行如下指令:

1
     
     
      2
     
     
      3
     
     
      4
     
     
      5
           
cordova 
      create
       myapp com
      .
      org
      .
      myapp 
      "HelloWorld"
        
     
     
      cd myapp  
     
     
      cordova 
      platform
       
      add
       android 
       //添加android運作平台
     
     
      cordova build android  
       //編譯apk
     
     
      cordova emulate android 
       //調用adb調試應用
           

上面的倒數第二步,cordova platform add android這個可能會報錯。

1
           
[
      error
      ]
       
      Please
       
      install Android target 17 (the Android 4.2 SDK). Make sure you have the latest Android tools installed as well.
           

這個主要是沒有安裝和目前cordova對應要求的android平台sdk,這個可以通過2種方法解決,

  1. 打開ADT,打開Android SDK manager,安裝對應平台的SDK。(參考下一小節)
  2. 打開如下目錄,可能其中的版本号不一,
1
           
C
      :
      \Users
      \USER
      _NAME
      \.
      cordova
      \lib
      \android
      \cordova
      \3
      .
      1.0
      \framework
      \project
      .
      properties
           

修改

1
           
target
      =
      android-17
           

可以把這個修改成你現在已安裝的平Andriod台,或者想要指定的Android平台。

這個問題解決後,上面的示例項目即可生成,然後使用ADT Eclipse導入該項目即可,同意通過運作,檢視在AVD中的運作效果。

Android開發平台搭建技巧

SDK無法更新可以使用翻牆或網上下載下傳相關資源,推介使用國内的鏡像,可參考:

 SDK資源-鏡像    http://www.androiddevtools.cn/

技巧一:Android SDK Manager打開非常慢,總是失敗。解決方法:

通路站長工具網站(http://tool.chinaz.com/ ),選擇 其他工具/超級PING ,把域名dl-ssl.google.com粘貼進去,然後勾選海外的,點選查詢,會列出一些可以ping通的IP位址。

使用cmd指令行ping 對應的ip位址,修改系統的host檔案,具體位置在(C:\Windows\System32\drivers\etc),在最後一行增加域名解析記錄:

1
           
74.125
      .
      206.93
       
      dl
      -
      ssl
      .
      google
      .
      com
           

然後重新打開Android SDK Manager,試一下。如果不行,就換一個ip,重新修改host,總有可以的。我用的這個是英國的ip,速度還不錯。

技巧二:manage AVD裡面建立Android虛拟機的時候,報錯:

1
           
No
       system images installed 
      for
       
      this
       target
           

解決方法:在Android SDK Manager中下載下傳對應平台的ARM EABI v7a System image。

技巧三:打開eclipse時,卡在Android sdk content loader 0%,解決辦法:

方法1:遇到Eclipse右下角一直顯示“Android sdk content loader 0%”的情況時,直接關掉Eclipse,有ADB程序在運作時通過程序管理器結束程序,然後重新開機Eclipse。通過這種方法多數情況下問題會得到解決。

方法2:關閉Eclipse,删掉C:\Users\使用者名.android檔案夾下的所有内容,再重新開機Eclipse。

轉載:http://www.haomou.net/2014/08/06/2014_phonegap_android/