본문 바로가기

IT/Dev

PhoneGap 으로 안드로이드 App 개발하기 - 환경구축(PhoneGap 설치)

PhoneGap 으로 안드로이드 App 개발하기 - 환경구축

 내가 만들려고 했던 프레임워크가 이미 있었다.  ㅋㅋ  Android,IPhone,BlackBerry 등등이 가능한. Web 만 Embedded 가능하다면 그 무엇이든 될것같다. 삼성 bada 폰도 가능...할 거임.

어째거나 PhoneGap 을 이용해서 App를 개발하려는데 보니까 설치문서가 고수를 위한 것들인지 그냥 설렁설렁 되어있길레 나같은 초보자를 위한 환경 구축  문서를 정리해보고자 한다.


먼저 주요 관련사이트 목록이다.

1) PhoneGap Homepage  이다. 여기서는 PhoneGap에 대한 소개를 볼 수 있고, 가장 중요한 PhoneGap을 다운 받을 수 있다.
http://phonegap.com/


2) 개발을 위한 설치방법 부터 Tutorial 들을 볼 수 있는 사이트
http://phonegap.pbworks.com/

여기에서 안드로이드를 위한 설치 및 개발을 위한 부분을 대충 설명해 놓은 것을 좀더 친절히 작성해볼까한다.

아래는 http://phonegap.pbworks.com/Getting-started-with-Android-PhoneGap-in-Eclipse,http://phonegap.pbworks.com/Getting-Started-with-PhoneGap-%28Android%29  글을 참고해서 작성했다.
=================


Steps


- 일반 적인 Android 개발환경 준비 

 먼저 Android 로 개발을 위한것이므로 Eclipse 와  Android SDK 설치를 위한 준비는 마쳤다고 보고..  모르면 http://developer.android.com/intl/zh-CN/sdk/index.html 참고

 

- Apache ANT를 설치한다.  Ant 를 이용해서 PhoneGap  Wrapper 에 해당하는 부분을 빌드하기 위한 용도 

     6) Download Apache ANT and add it to your PATH http://ant.apache.org/index.html

 

-Ruby (Windows Only)  이것도 PhoneGap 빌드를 위한 용도 

     http://www.ruby-lang.org/en/downloads/  에 접속해서 Windows용을 내려받으면 된다. 현재 시점의 최종 안정버전은 ( http://rubyforge.org/frs/download.php/47082/ruby186-27_rc2.exe ) 이다.

     ruby 를 설치할때는 설치 항목 옵션중에 Ruby ,SciTE ,Enable RubyGems 를 선택한다. 설치경로는 기본 추천하는 C:Ruby 에 설치했다.

 


    여기서 중요한거 하나 nokogiri(노고지리?) 를 추가로 설치 해주어야 한다.  


 방법은 아래와 같이 Ruby bin 으로 이동해서  'gem install nokogiri' 를 해주면 끝. 가이드에는 덜렁 필요하다고만 되어있음. 쩝.

============   실행                             ================

>cd C:Rubybin

C:Rubybin>gem install nokogiri
Successfully installed nokogiri-1.4.1-x86-mswin32
1 gem installed
Installing ri documentation for nokogiri-1.4.1-x86-mswin32...

No definition for parse_memory

No definition for parse_file

No definition for parse_with

No definition for get_options

No definition for set_options
Installing RDoc documentation for nokogiri-1.4.1-x86-mswin32...

No definition for parse_memory

No definition for parse_file

No definition for parse_with

No definition for get_options

No definition for set_options

C:Rubybin>

===========================================================


-Git 설치, 이것은 소스를 내려 받고 업데이트를 위한 소스 버전 관리 도구 이다.  

     여기서는 mysisgit 을 내려 받아 설치하는 것으로 한다. 

    mysysgit (http://code.google.com/p/msysgit/). 에 접속해서 Downloads 메뉴로 이동하면 다운 받을 수 있다. 현재 시점에 내려받은 파일은  (msysGit-netinstall-1.7.0.2-preview20100309.exe ) 이다.  다운 받는 시점의  최신의 msysGit 을 받으면 된다.

    설치경로는 C:msysgit 에 했다.


-PhoneGap 소스 내려 받기

   앞서 mysysgit 를 설치했다면  C:myssgit 디렉토리에 있는 msys.bat 를 실행시킨다. 실행되면 MINGW32 shell 이 나타난다. 그럼 여기서 PhoneGap 을 설치할 디렉토리로 이동설치 한다.

    예를 들어 K:tools 밑에 PhoneGap 을 설치할 계획이라면 해당 디렉토리로 이동해서 git 명령으로 내려받는다. 명령을 보면 다음과 같다.

============   실행                             ================

$ cd ktools

git clone git://github.com/phonegap/phonegap.git

===========================================================
이렇게 하고 나면 PhoneGap 디렉토리가 생기면서 서브디렉토리에 OS 별 서브디렉토리가 생겨 난다. 

그리고 나서 이하 서브 모듈을 초기화 하고 소스들을 내려 받는다. Android 뿐 아니라, iPhone, Blackberry 등 까지도 내려 받게 된다.

============   실행                             ================

$ git submodule init

....

$ git submodule update

...

===========================================================



그리고 나면 android/framework 으로 이동한다. 절대 경로로 보면 (/k/tools/phonegap/android/framework) 이다.

============   실행                             ================

$ cd android/framework

===========================================================
그리고  ant 를 실행시켜 jar 를 생성한다.

그런데 이때 먼저 android sdk 경로를 맞추어 주어야한다. 그렇지 않으면 다음과 같은 에러가 발생한다.

============   실행                             ================

$ ant jar

Buildfile: k:toolsphonegapandroidframeworkbuild.xml

BUILD FAILED
k:toolsphonegapandroidframeworkbuild.xml:49: taskdef class com.android.ant.
SetupTask cannot be found
 using the classloader AntClassLoader[]

Total time: 0 seconds

===========================================================
그래서 
local.properties 파일을 열어 sdk-location 을 맞추어 준다. 만일 K:toolsandroid-sdk-windows 에 안드로이드 sdk 가 설치되어있다면.

============   파일 예 - local.properties                   ================
sdk-location=k:/tools/android-sdk-windows 
===========================================================
와 같이 한다.
그리고 

만일 중요한거하나  1.5 Android 용으로 하고싶다면 제거 하고 수정해야 하는 부분이 있음 
    
============  1.5 Android 용으로 하고자 하는 경우, 파일 예 - AndroidManifest.xml                  ================
<!-- 아래 부분 제거 되어야 함 -->
<supports-screens
     android:largeScreens="true"
     android:normalScreens="true"
     android:smallScreens="true"
     android:resizeable="true"
     android:anyDensity="true"
     />

...
<!-- 아래는 값변경 -->
<uses-sdk android:minSdkVersion="3" />
===========================================================

그리고 끝으로 

============   jar 생성 실행                          ================

$ ant jar

...

===========================================================
하고  
ruby build.rb <app-name> <package_name> <wwwdir> <path>  실행 해야 한다.

============   실행의 예                           ================

$ cd ..

$ ruby build.rb samplename com.my.sam  /k/temp/www /k/temp/mysam

===========================================================

이렇게 해줄때  www 디렉토리 위치에는 icon.png 파일을 하나 넣어주면 에러가 안난다.  지금의 작업은 본래  web 으로 프로그램이 되어있다는 전제로... wrapper 만 만든다는 개념이다.보니 www 디렉토리를 지정해주면 project 생성시 해당 디렉토리에 있는 내용들을 복사해 넣는다.
그래서 현재 만들어놓은 www가 없다면 임의디렉토리를 생서하고 icon.png 만 넣어주면 된다.

그리고 나면 생성된  project 를 eclipse 를 열어  Andoid Project 생성과정에서 'Create project from existing source' 로 위에서 만든 path를 선택해주면 된다.


아래 phonegap 사이트에서 붙여넣기한 그림을 참고 하면 좋을듯.


 Now time to create your project. In Eclipse, go to File > New project > Android > Android Project

     Now select create project from existing source and navigate to the new folder that was gererated in the last step. Select a build target and press finish.

  

 

12) Now, in Eclipse you should see your project

 

13) Click the Run button in Eclipse, it is the button that looks like "Play". When you run this project, you should the dialog box to Run As.., choose Android Application. You may get the unable to launch dialog, this can happen if you have the Android 1.5 highlighted when you try to run the project. Just select the project folder and click run.

 

 

 

If you have done everything correctly, there should be an Application that loads.  It should be noted that testing with an actual device is preferrable to the Emulator for many reasons, namely the fact that it's easier to test the Accelerometer, Geolocation, Beep and Vibrate Functionality.  However, for testing on the actual browser browser events, and various issues with Webkit on Android the Emulator does just as well.