제목 그대로 Flash Builder 4에서 안드로이드 어플리케이션 개발하기입니다...

검색해보면 관련해서 포스팅이 있지만 제 나름 테스트해보면서 성공한 내용을 정리해봤습니다..



우선 어도비의 AIR 2.5 Pre-Release SDK와 Runtime이 필요합니다..

위 의 2가지를 받으려면 Adobe Prerelease Community에 가입을 해야되는데.. 가입양식이 많고 시간이 좀 걸리더군요... (자잘하게 많이 물어봅니다... 한 5~6페이지 정도 입력해야 되는데 대부분 체크박스 선택하는거라 어렵진 않습니다.)
https://prerelease.adobe.com/project/home.html?cap=E30C51D41E3B4960BC4F1EBD76BEE24D


로그인하고 위 링크의 Resources 텝에서 SDK와 Runtime을 다운받으면 되는데 여기서 주의하실 점은 안드로이드 OS의 버전입니다.
SDK 또는 Runtime의 최신버전은 모두 Froyo용입니다..
넥서스원이나 디자이어, 드로이드X 등 2.2 프로요가 탑재된 스마트폰용으로 만드실거면 최신버전을 받으셔도 무방합니다..


하지만 그 외의 (현재 대부분의) 안드로이드폰용으로 개발하실거라면 Eclair용으로 받아야하는데 6월 4일 버전만 있습니다..
6월 11일의 릴리즈노트를 보니 6월 4일 버전을 마지막으로 Eclair지원은 하지 않는다고 하네요..
(참고로,, Eclair Emulator용 Runtime은 찾을 수가 없네요.. 안드로이드폰이 없으면 테스트가 사실상 불가능해요.. ;;;)


혹시나해서 Froyo용 Runtime을 제 옵큐에 설치해봤는데, 설치는 되지만 air 어플리케이션을 실행시키면 오류가 발생하면서 닫히네요... ^^;;;

여기서 다운로드한 SDK는 압축을 푼 후 Flash Builder4가 설치된 폴더의 4.0sdk 폴더에 덮어씌우세요..
저는 sdks/4.0.0 폴더를 sdks/4.0.0-AIR25로 복사하고 복사한 폴더에 위 SDK의 내용을 덮어씌웠습니다.


프로젝트 생성에 대한 내용은 아래 모지씨님의 블로그에 설명이 잘 되어 있네요..
http://cafe.naver.com/hhjae84/186
그리고, mxml로 프로젝트를 생성하면 실행이 안되는줄 알고 있었는데 아래의 샘플을 받아서 테스트해보니 실행이되네요..
http://coenraets.org/blog/2010/05/sample-application-using-flex-and-air-for-android/
어제 하루종일 테스트할때는 실행이 안되더니,,, 안되는게 아니라 못하는거였습니다;;;;

샘플코드를 살펴보다가 한가지 차이점을 발견했습니다..
flash builder 4에서 MXML Application을 생성하면 xml의 root node가 <s:WindowedApplication>인데요... 이 태그를 <s:Application>으로 수정해주면 됩니다.. ^^
 

 

1. 프로젝트 생성
Application type은 Desktop으로, Flex SDK Version은 위에서 생성한 Flex 4.0-AIR25를 선택후 Finish를 누르세요..
(SDK가 보이지 않는 경우 "Configure Flex SDKs..."를 눌러서 위의 SDK를 추가하세요.)


2. WindowedApplication => Application

프로젝트 생성과 동시에 생성된 기본 어플리케이션 파일입니다.. 위에 언급한대로 WindowedApplication을 Application으로 수정해주세요..
그리고, 본문에 보더로 감싼 버튼을 하나 넣었습니다..

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx"
        width="100%" height="100%">
 <fx:Declarations>
  <!-- Place non-visual elements (e.g., services, value objects) here -->
 </fx:Declarations>
 <s:BorderContainer width="100%" height="100%"
        borderColor="#000000" borderStyle="solid">
  <s:Button label="테스트" />
 </s:BorderContainer>
</s:Application>



3. Descriptor파일 수정 (XXXXX-app.xml)

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/2.5">
 <id>AndroidApp</id>
 <filename>AndroidApp</filename>
 <name>AndroidApp</name>
 <versionNumber>1</versionNumber>
 <versionLabel>v1</versionLabel>
 <initialWindow>
  <content>AndroidApp.swf</content>
  <visible>true</visible>
 </initialWindow>
    <supportedProfiles>mobileDevice</supportedProfiles>
</application>



Descriptor파일을 위와 같이 수정합니다.. 중요한 부분은 versionNumber, visible, supportedProfiles 부분입니다..


4. 미리보기
Ctrl-F11을 누르면 어플리케이션을 실행시켜볼 수 있습니다..


5. apk 컴파일 및 장치에 install

adt -package -target apk -storetype -pkcs12 -keystore key.p12 AndroidApp.apk AndroidApp-app.xml AndroidApp.swf
password:
adb install AndroidApp.apk



apk파일을 생성하고 연결된 장치에 install합니다..
adt와 adb의 경로를 path 변수에 저장하면 위와 같이 명령어를 그냥 사용할 수 있습니다..



위의 모든 단계가 성공했다면 Flash Builder 4에서 안드로이드 개발을 위한 모든 준비가 끝난거죠..
이제 코드를 작성하는 일만 남았습니다... ^^;;;


PS, 이미지가 포함된 원본은 제 블로그에서 확인하세요~ http://sureun.net/blog/3

PS2. 배포시 가장 문제가 되는게 Adobe AIR인데요,, 현재 대부분의 안드로이드폰은 마켓에서 AIR Runtime을 설치할 수 없습니다..
Adobe에서도 Eclair용 Runtime을 6월 이후에 개발하지 않는 걸보면, 프로요용으로 밖에 배포할 수 없는 상황이죠..
현실적으로 대부분의 디바이스들이 프로요 이상으로 올라가야지만 활성화 될 수 있을 것 같습니다... (어도비가 너무 앞서 간 걸까요? ㅎㅎ)