강의 내용은 아래의 블로그 링크를 보면 요약정리되어 있습니다.

영어로 된 요약정리

The Official Google BlogAndroid: momentum, mobile and more at Google I/O

한국어로 된 요약 정리

Google 공식 한국 블로그구글 개발자 대회(Google I/O) 개최 첫날

한국경제신문 광파리님이 정리하신 글 (이 글이 깔끔하게 정리되었으며 일반인들이 보기에 제일 무난한듯 합니다.)

구글이 클라우드 음악, 영화 렌털 서비스 나선다



안드로이드 플랫폼은 2년 반전만해도 한나라의 한 통신사에서 한 기기에서만 출시 되었다, 개발자, 제조사 통신사의 생태계로 아래와 같이 엄청난 성장을 하였습니다.

  • 100 million activated Android devices (실제의 1억대의 안드로이드 장비 사용)
  • 400,000 new Android devices activated every day(40만대의 새로운 안드로이드 기기들이 실제 개통)
  • 200,000 free and paid applications available in Android Market (20만여개의 애플리케이션들이 안드로이드 마켓에 등록) 
  • 4.5 billion applications installed from Android Market(안드로이드 마켓을 통해 45억여개의 안드로이드 애플리케이션들이 설치됨)

(※ 안드로이드의 대중화는 이미 성공했다고 보면 된다 이제 경쟁자인 Apple사와 결투만 남았을뿐.

※ Symbian의 Nokia와 Windows Phone의 MS는 모바일쪽에서 삽질 제대로 하는 느낌이 든다. Nokia와 MS사가 합작을 해도 과연 Apple과 Google연합군을 이길수 있을지가 궁금)


Mobile - one OS everywhere(모바일 - 하나의 운영체제로 어디든지)

2년 6개월동안, 안드로이드의 8번 릴리즈를 하였고, 지금은 전세계의 310개 이상의 안드로이드 장치들이 있습니다.

Android의 다음 버전은 Ice Cream Sandwich 이다.

(안드로이드 버전은 알파벳 첫글자 순으로 이름이 시작됨: Cupcake(1.5)-Donut(1.6)-Eclair(2.0, 2.1)-Froyo(2.2)-Gingerbread(2.3)-Honeycomb(3.0)-Ice Cream Sandwich)

Ice Cream Sandwich는 태블릿과 스마트폰 두개 모두 탑재될 예정이다.

(아직 버전 넘버가 확정되지 않았으나 태블릿과 스마트폰 모두 적용될 것이니 4.0 정도 붙지 않을까란 예측을 해본다.)


Google에서 Music Beta를 런칭하였습니다. 이 서비스는 클라우드를 이용하여 개인 음악 모음집을 올려 PC나 안드로이드 장치를 통해서 스트리밍으로 들을 수 있다.이 뮤직과 재생 목록은 항상 클라우드 서버와 싱크가 된다. 만약 폰에서 재생 목록을 새로 만들면, 다른 태블릿이나 컴퓨터에 바로 사용가능하게 할 수 있다.거기에 오프라인일때에도 음악을 저장할수 있다: 안드로이드 장치에 최근 재생된 음악을 자동적으로 저장하고, 특정 앨범과 재생 목록을 선택하여 연결안했을때애도 들을 수 있다. 다만 미국에서만 오늘부터 런칭 하며 초대로만 가능하다.

Introducing Music Beta by Google

Music Beta lets you upload your personal music collection to listen anywhere, keep everything in sync, and forget the hassle of cables and files.

Music Beta is currently only available in the United States. ㅠㅠ 

※ 아래는 제 휴대폰에 뮤직 베타를 설치한 모습입니다. 아직 클라우드 서버를 통한 싱크는 불가능합니다.

안드로이드 뮤직 베타 앱


안드로이드용 구글 뮤직 베타 앱을 사용해본 결과 iPhone과 iPod touch에 탑재된 음악 어플과 비슷한 느낌이 많이 들더군요. 그렇다만, 기본 탑재된 구글 뮤직 앱보다 훨씬 기능이 좋습니다.

아직 PC용 구글 뮤직 앱은 미국에서만 사용가능이라 테스트는 못해보았습니다. 동영상을 보면 iTune와 비슷한 플레이어 같은 느낌이 듭니다).

그리고 이미 서비스중인 Amazon MP3과 함께 스트리밍 음악 서비스에 불을 지필것 같습니다. 이미 iTunes와 비슷한 서비스를 만들려는 노력을 해서 iTune를 넘어서려는 느낌이 듭니다.

문제는 Amazon MP3도 미국안에서만 사용가능 -_-;;

아래는 구글 뮤직 베타 링크입니다.

Music Betahttp://music.google.com

실제로 미국에서만 구글 뮤직 베타를 사용할 수 있습니다.

We're sorry. Music Beta is currently only available in the United States. (죄송합니다. 뮤직 베타는 현재 미국에서만 가능합니다)



안드로이드 마켓을 통한 영화 렌탈 서비스 추가.

$1.99 부터 시작하는 수천개의 영화를 선택하여 스트리밍으로 볼수 있습니다. 오늘부터 웹에서 안드로이드 마켓을 통해 렌탈할수 있으며, Verizon XOOM에서 업데이트가 오늘 될 예정이다. 몇주후에 Android 2.2이상 부터 사용할 수 있게 할 예정이다.


안드로이드 생태계는 빠르게 변해왔으며 오픈 핸드셋 얼리이언스(Open Handset Alliance)의 여러 제조사, 통신사들이 많이 참여하였다. (Verizon, HTC, 삼성, Sprint, Sony Ericsson, LG, T-Mobile, Vodafone, Motorola, AT&T, etc)


More - extending the platform beyond mobile(더 많이- 모바일을 넘어선 플랫폼의 확장)

개발자들이 모든 종류의 안드로이드 기기들에 사용가능한 하드웨어 악세서리를 만들수 있도록 안드로이드 오픈 액세서리(Android Open Accessory)를 개발하였다. (아래는 안드로이드 오픈 액세서라 개발 킷 설명)

Android Open Accessory Development Kit


Android@Home 이라는 서비스를 선보일 예정이다. 이 것은 집안의 기기와 연동해서 작동할 수 있도록 한다.

또한 Tungsten 프로젝트의 프리뷰를 또한 보여주고 있다. 이 것은 안드로이드 뮤직 베타를 사용하여 Android@home network안에서 음악 재생을 제어할수 있게 해준다.


그리고 Google I/O 참석자 전원에게 Galaxy Tab 10.1 을 무료로 나눠줌.


10
10" Galaxy Tab @ GoogleIO by chrisstreeter 저작자 표시변경 금지


Custom io graphics Samsung tab
Custom io graphics Samsung tab by mac morrison 저작자 표시


Covered in Android
Covered in Android by mac morrison 저작자 표시


Limited edition
Limited edition by mac morrison 저작자 표시


Not for sale
Not for sale by mac morrison 저작자 표시

아래는 Engadget에서 나온 소개 동영상.

Engadget - Samsung Galaxy Tab 10.1 Limited Edition(white) hands-on from Google I/O


여기까지가 키노트였습니다

※새로운 안드로이드 OS가 출시되면서 사람 피곤하게 된건 사실. 점점 기능이 좋아지는 것 같이 느껴도 아직도 안드로이드OS는 사용자 친화적인 아이폰과 경쟁하기엔 좀 조금 모자르단 생각이 들긴 하다. 그러나 안드로이드는 iOS와 다르게 오픈소스로 공개 되어서 개발자들이 소스를 수정하여 개발자가 원하는 OS로 만들기는 딱 좋은 듯.

Google은 이번 개발자 행사를 통해 안드로이드의 세를 공개하였다. 그리고 타블렛 시장에서 iPad의 점유율을 많이 뺏을려는 노력도 보임. 그러나 Apple의 저렴한 부품구입을 가능하게 하는 SCM으로 저렴한 가격대로 무기로 들고 있다. 이를이기려면 삼성, 모토로라, HTC등의 부품수급 노력이 필요하다는 생각도 들었다.

지금부터 부지런히 새로운 기능과 변화된 내용 따라잡아야겠군요. -ㅁ-


Buy me a coffeeBuy me a coffee

관련링크

Google I/O 2011



Google I/O 2011의 첫 발표일인 2011년 5월 10일(미국 서부시간 기준), Google에서는 Android SDK 업데이트 및 홈페이지 업데이트를 하였습니다.


Android SDK Tools를 업데이트함.

SDK Tools, Revision 11

Android SDK 3.0 Honeycomb에서 3.1로 업데이트

Android 3.1 Platform

  • USB APIs 추가
  • MTP/PTP API 
  • 새로운 입력 장치와 모션 이벤트들 지원 (조이스틱, 키보드, 게임패드, 마우스 스크롤, etc)
  • RTP API ('왜 이제야 지원하냐고 -_-;;;')
  • Resizable app widgets (앱 위젯 크기를 다시 지정가능해짐 - '이것도 늦게 지원')
  • Animation framework (애니메이션 프레임워크에 클래스 및 메소드 몇개 추가)
  • UI Framework(강제 렌더링, 카메라 거리 지정, getCalendarView() 메소드 추가, 콜백메소드 추가, 새로운 탭에 검색 결과 표시, 게임패드 등 여러 입력장지의 일반적인 키 등록)
  • Graphics(bitmaps의 관리해주는 여러 메소드 추가, 카메라의 위치와 회전 메소드추가 )
  • Network(Wifi관련 성능 개선, SIP 인증 사용자 이름메소드추가)
  • Download Manager (다운로드 완료된 자료를 관리, 크기별로 다운로드된 자료들을 정렬하여 보여줌 - '아직도 이 기능 없었다는게 깜짝 놀람')
  • IME framework(특수 키 입력  방법 얻는 메소드 추가)
  • Media(새로운 스트리밍 오디오 포맷 ADTS ACC 컨텐츠를 볼수 있도록 지원함)
  • Launch controls on stopped applications(정지된 어플에서 시작 제어)
  • Notification of application first launch and upgrade (어플 처음 시작과 업그레이드의 알림)
  • Core utilities(LRU cache - 'cache 관리하는 방법인 LRU cache 알고리즘을 새로 짰는듯?', File descriptor as int - 'Native App을 만들때 File descriptor을 int로 얻어서 파일 접근할 수 있다?')
  • Webkit(쿠키를 파일 스킴으로 관리, 로그인 요청을 알림, 필요 없는 클래스와 인터페이스를 제거 - 웹브라우저 엔진인 Webkit의 성능 개선.)
  • Browser(HTML5 <vido> tag에 playback 포함, 모든 사이트의 고정된 위치 요소를 지원)
  • New feature constant(하드웨어 개발자들에게 USB로 통신할때의 여러 신호에 대한 값을 추가)
(번역이 귀찮아서, 대충 읽고 머릿속에서 이해하는 선에서 정리했음 - ''은 저의 개인적인 의견을 넣은 것입니다.)

Android USB Driver API 제공

Android Open Accessory Development Kit


이번에 Android SDK 3.1이 발표되면서 많은 부분이 바뀌었다는걸 느꼈습니다. (대격변?)


아직도 안드로이드 OS는 공부하는건 재미있는데, 많은 부분들이 추가되고 변경이 되기때문에 Google 개발자들이 개발한 것을 일반 개발자가 이해하기엔 아직도 버거울 정도입니다. 그리고 아직도 Android 기능은 Apple의 iPhone의 기능과 비교하자면 뭔가 부족한 느낌도 듭니다. 계속 개선해나가면 iPhone보다 좋아지겠죠?


아래는 Google I/O 2011 참석자들에게 공짜로 뿌린 GalaxyTab 10.1인치 한정판 사진들 입니다. 뒷판에 안드로이드마크가 붙여 있는것이 인상적입니다.

아직은 Android 3.0 Honeycomb이 탑재되었다만, 조만간에 Android 3.1로 업그레이드 될 예정이라고 합니다. 그러면 위에 소개된 SDK를 사용 할 수 있을겁니다.

10
10" Galaxy Tab @ GoogleIO by chrisstreeter 저작자 표시변경 금지


Custom io graphics Samsung tab
Custom io graphics Samsung tab by mac morrison 저작자 표시


Covered in Android
Covered in Android by mac morrison 저작자 표시


Limited edition
Limited edition by mac morrison 저작자 표시


Not for sale
Not for sale by mac morrison 저작자 표시


아래는 Engadget에서 나온 소개 동영상.

Engadget - Samsung Galaxy Tab 10.1 Limited Edition(white) hands-on from Google I/O






Buy me a coffeeBuy me a coffee

관련링크
Google IO 2011 Session 


이번에 열릴 Google IO 2011의 안드로이드 세션 목록들입니다.

구글 안드로이드팀의 주요한 관심사, 그리고 현재 모바일 시장의 흐름이 어떻게 되는지 제목을 보고 대략적으로 알수 있습니다.

이 내용들 다 소화해서 이해할지가 궁금하군요. 공부할 내용은 산더미이고, 실력은 늘어나는 것 같지도 않고.



3D Graphics on Android: Lessons learned from Google Body

May 11, 04:15PM – 05:15PM / Room 8

Nico Weber

Google originally built Google Body, a 3D application that renders the human body in incredible detail, for WebGL-capable browsers running on high-end bPCs. To bring the app to Android at a high resolution and frame rate, Nico Weber and Won Chun had a close encounter with Android's graphics stack. In this session Nico will present their findings as best practices for high-end 3D graphics using OpenGL ES 2.0 on Android. The covered topics range from getting accelerated pixels on the screen to fast resource loading, performance guidelines, texture compression, mipmapping, recommended vertex attribute formats, and shader handling. The talk also touches on related topics such as SDK vs NDK, picking, and resource loading.


Accelerated Android Rendering

May 11, 10:45AM – 11:45AM / Room 9

Romain Guy, Chet Haase

Android 3.0 introduced a new hardware accelerated 2D rendering pipeline. In this talk, you will be introduced to the overall graphics architecture of the Android platform and get acquainted with the various rendering APIs at your disposal. You will learn how to choose the one that best fits your application. This talk will also deliver tips and tricks on how to use the new hardware accelerated pipeline to its full potential.


Android + App Engine: A Developer's Dream Combination

May 10, 03:45PM – 04:45PM / Room 9

Xavier Ducrohet, Brad Abrams

This talk will introduce App Engine Tooling for Android. A complete set of Eclipse-based Java development tools for building Android applications that are backed by App Engine. With these tools developers can focus on building fantastic Android applications using common tools and techniques that span the client and server parts of the application AND make it extremely simple to deploy the server side to App Engine. This talk walks through building a fantastic cloud based android application.


Android Development Tools

May 11, 03:00PM – 04:00PM / Room 11 LIVESTREAMED

Xavier Ducrohet, Tor Norbye

This talk provides an in-depth look at the Android development tools, along with tips & tricks for getting the most out of them. From project support, to source editing and visual editors, to emulator execution and debugging and profiling, this talk will help you get more productive with Android development. The main focus is on Eclipse, but we will discuss other complementary tools as well. This is a demo-oriented talk, and our goal is to show the available features, and how they fit into the workflow.


Android Market for Developers

May 11, 10:45AM – 11:45AM / Room 11 LIVESTREAMED

Eric Chu

There are few things developers care more about than Android Market and, during the year since Google IO 2010, we have been investing huge amounts of efforts in expanding and improving it. This presentation walks through what's new, with a particular focus on where developers can take action to improve their apps' Market performance.


Android Protips: Advanced Topics for Expert Android App Developers

May 10, 11:30AM – 12:30PM / Room 11 LIVESTREAMED

Reto Meier

Writing an app is easy, but with 100k competitors you need to do better than launch and cross your fingers. I'll demonstrate how to use advanced Android techniques to take a good app and transform it into a polished product. Features advanced coding tips & tricks, design and implementation patterns, and insight into some of the lesser known API features. This is an advanced session designed to help experienced developers.


Best Practices for Accessing Google APIs on Android

May 10, 11:30AM – 12:30PM / Room 9

Yaniv Inbar

Integration with Google APIs (such as Buzz, Latitude and Translate) can enrich many Android applications. In this session, we will demonstrate how to do so easily, efficiently and securely using the Google API Client for Java. We’ll walk you through how to authenticate for the APIs using AccountManager, how to reduce the client library size and several other Android-specific optimizations.


Bringing C and C++ Games to Android

May 11, 03:00PM – 04:00PM / Room 8

Ian Ni-Lewis and Dan Galpin

Want to make great Android games, but you're not a Java programmer? This talk is for you. Android supports a toolchain for building applications in C/C++. In December 2010 it got a makeover specifically aimed at making life better for game developers. This presentation gives an introduction to Android programming in C/C++, covers what's new and improved since last year, and shows best practices for building and debugging games with the NDK.


Building Aggressively Compatible Android Games

May 11, 10:45AM – 11:45AM / Room 8

Chris Pruett

There are a lot of Android phones out there, but by abiding to a few key rules it is possible to develop a single binary that runs on all of them. This session will explain how to approach device diversity and build aggressively compatible Android games.


Building Android Apps for Google TV

May 11, 01:45PM – 02:45PM / Room 11 LIVESTREAMED

Jason Bayer, Christian Kurzke

Learn how to create new apps or enhance existing Android apps for Google TV. Session includes an overview of the platform, best practices, demos, and discussion about the fantastic opportunities Google TV creates for developers.


Designing and Implementing Android UIs for Phones and Tablets

May 11, 12:30PM – 01:30PM / Room 11 LIVESTREAMED

Roman Nurik, Adam Powell, Richard Fulcher, Christian Robertson, Matias Duarte

There are a large number of Android tablet devices starting to ship. This session discusses the new APIs and tools available to developers for use in constructing apps that work well on them, and provides guidance on creating good user experience for users of these devices.


Don’t just build a mobile app. Build a business.

May 10, 01:15PM – 02:15PM / Room 11 LIVESTREAMED

Wayne Pan

Learn how to build a business on mobile apps so you can quit your day job. Walk away with an understanding of app business basics and how to use house ads for app promotion, mediation to optimize in-app advertising revenues and analytics to measure real ROI.


Evading Pirates and Stopping Vampires using License Verification Library, In-App Billing, and App Engine

May 11, 01:45PM – 02:45PM / Room 8

Dan Galpin, Trevor Johns

This session talks about best practices for using the License Verification Library and In-App Purchases on Android Market. It also explains how to integrate a server-side component for license validation and content delivery, describing the reference implementation that we built using App Engine.


Fireside Chat with the Android Team

May 10, 02:30PM – 03:30PM / Room 11 LIVESTREAMED

Dan Bornstein, Debajit Ghosh, Dave Sparks, Xavier Ducrohet, Jeff Hamilton, Andy Stadler, Dan Morrill, Dianne Hackborn, Rebecca Schultz Zavin, Chris Di Bona, Ficus Kirkpatrick

Join us for an informal developer-oriented discussion of what's been going on in the world of Android.


Honeycomb Highlights

May 10, 10:15AM – 11:15AM / Room 11 LIVESTREAMED

Romain Guy, Chet Haase

Android's "Honeycomb" release includes a large number of new features, capabilities, and APIs to access them. This session gives a high-level view of everything that's new, with special focus on how this affects developers' lives and what they should be paying attention to.


How to NFC

May 10, 03:45PM – 04:45PM / Room 11 LIVESTREAMED

Nick Pelly, Jeff Hamilton

Gingerbread brings a comprehensive NFC reader/writer API, and some modest but surprisingly powerful P2P support. Come hear why you should care about NFC technology, what kinds of applications are possible right now, and best practices for deployment.


HTML5 versus Android: Apps or Web for Mobile Development?

May 11, 03:00PM – 04:00PM / Room 9

Reto Meier, Michael Mahemoff

Native apps or mobile web? It's often a hard choice when deciding where to invest your mobile development resources. While the mobile web continues to grow, native apps and App Stores are incredibly popular. We will present both perspectives in an app development smackdown.


Leveraging Android Accessibility APIs To Create An Accessible Experience

May 10, 10:15AM – 11:15AM / Room 9

Charles Chen, T.V. Raman, Tim Credo

The Android framework includes a set of easy-to-use APIs that enables the creation of third-party accessibility services such as screenreaders for the blind. In this talk, we'll give an overview of the Accessibility API, describe some of the most widely used services, and explain how to fully unlock the accessibility potential of the Android platform.


Memory management for Android Apps

May 11, 04:15PM – 05:15PM / Room 9

Patrick Dubroy

Android apps have more memory available to them than ever before, but are you sure you're using it wisely? This talk will cover the memory management changes in Gingerbread and Honeycomb (concurrent GC, heap-allocated bitmaps, "largeHeap" option) and explore tools and techniques for profiling the memory usage of Android apps.


Optimizing Android Apps with Google Analytics

May 11, 12:30PM – 01:30PM / Room 9

Nick Mihailovski, Philip Mui, Jim Cotugno

Thousands of apps have taken advantage of Google Analytics' native Android tracking capabilities to improve the adoption and usability of Andriod Apps. This session covers best practices for tracking apps on mobile, TV and other devices. We'll also show you how to gain actionable insights from new tracking and reporting capabilities.


Taking Android to Work

May 11, 04:15PM – 05:15PM / Room 11 LIVESTREAMED

Fred Chung, Andy Stadler, Gabe Cohen

More and more people are bringing Android devices into enterprise environments. This talk will cover general enterprise adoption considerations and related Android features. We will also provide an overview of security issues, managed internal app development, corporate app directories, and an in-depth look at a sample implementation of device management policies.

Buy me a coffeeBuy me a coffee


HTC Desire에 커스텀 롬을 계속 설치하고 엎어버리고를 반복하다.. 심심했습니다.

명색이 컴퓨터공학과 4년공부하고 대학원 수료한 학생인데, Android Source를 빌드해서 휴대폰에 올려볼까란 생각에 갑자기 안드로이드 소스를 XDA-Developers 에서 찾기 시작하였습니다.


여러가지 안드로이드 소스들 중에서 저는 CyanogenMod 를 선택하여 컴파일 하기로 하였습니다.

저는 Ubuntu 10.10 32bit 컴퓨터(구입한지 6년된 ThinkPad R52)에서 CyanogenMod컴파일을 하게 성공하였습니다.


처음에 맥북프로에서 컴파일 하다보니 아래와 같은 에러로 인하여 포기하였습니다. 아 SnowLeopad 가 64비트라서 32비트로 컴파일하다 Linking문제가 생겼나 봅니다 -ㅁ-

Install: out/host/darwin-x86/bin/dictTest

host Executable: emulator (out/host/darwin-x86/obj/EXECUTABLES/emulator_intermediates/emulator)

ld: illegal text reloc to DwarfCUImpl<Dwarf_CUHdr<Dwarf32_SizeHdr, unsigned int>, unsigned int>::get_pc_address_file_info(unsigned long long, Dwarf_AddressInfo*)from out/host/darwin-x86/obj/STATIC_LIBRARIES/emulator-elff_intermediates/emulator-elff.a(dwarf_cu.o) in anon for architecture i386

collect2: ld returned 1 exit status

make: *** [out/host/darwin-x86/obj/EXECUTABLES/emulator_intermediates/emulator] Error 1


Ubuntu에서 Android 2.3.3. Gingerbread OS탑재된 CyanogenMod 컴파일 하여 아래와 같은 결과를 만들었고, 에뮬레이터에서 실행해보니 잘 돌아갑니다.

Generated: (out/target/product/generic/android-info.txt)

Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img

Install system fs image: out/target/product/generic/system.img

Target ram disk: out/target/product/generic/ramdisk.img

Target userdata fs image: out/target/product/generic/userdata.img

Installed file list: out/target/product/generic/installed-files.txt

studioego@studioego-laptop:~/android/system$ 

컴파일 성공하면 위의 메시지가 나옵니다 ㅎㅎ

아래는 컴파일 후 에뮬레이터를 이용하여 결과물을 실행한 화면입니다. 잘 돌아갑니다.

Emulator 실행 화면


Gingerbread가 탑재된 CyanogenMod

에뮬레이터에 볼수 있는 Android 2.3.3 정보 1

에뮬레이터에 볼수 있는 Android 2.3.3 정보 2


본인이 빌드를 했으면 빌드 번호에 본인 이름의 컴퓨터와 컴파일 한 날짜가 들어갔을겁니다. ㅎㅎ

Cyanogen_generic-eng 2.3.3. GINGERBREAD eng.studioego.20110327.012445 test-keys


Android Source컴파일하여 에뮬레이터로 올리는 방법을 알았으니 이제 HTC Desire에 CyanogenMod 소스코드를 올리는 것도 올리겠습니다. 

이후에 저만의 커스텀롬 올리는 방법과 Android Source분석도 올릴예정입니다.

Buy me a coffeeBuy me a coffee

출처:
XDA-Developers[ROM-DEV] Honeycomb v4 Full SDK Port to Desire (DEVELOPERS ONLY) 


Android 폰인 HTC Desire에 태블릿 전용 Android OS인 Honeycomb을 포팅한 동영상과 ROM을 XDA Developer의 개발자가 공개를 하였습니다.

설마 했다 Honeycomb UI가 탑재된 디자이어의 화면을 보고는 어안이 벙벙했습니다.


지금까지 작동되는건 아래와 같습니다.

  • 터치 스크린(touch screan)
  • 3D 가속(3D acceleration)
  • 바탕화면(wallpapers)
  • 데이터 연결(data connection) - 3G 연결
  • 문자 송수신(sms send/receive)
  • 웹 브라우징(browser)
  • 갤러리(CM7 Gallery) - CyanogenMod 갤러리

아직까지 작동 안되는 건 아래와 같습니다.

  • Wifi(와이파이 연결이 안되는 아이러니한 상황)
  • Audio( 소리또한 안나온다니 ;ㅁ;)
  • Camera(카메라 기능 작동 안된다군요 ;ㅁ;)
  • default gallery crashes when choose something

아직은 WIFI연결과 소리, 카메라 그리고 구글 제공 기본 갤러리가 안된다는 문제가 있군요.

언젠간 UFO를 주운 굇수가 해결해줄것이라 믿습니다.

(HTC Desire 등의 HTC제품들은 거의 누군가가 hack을 하여 안드로이드 커스텀롬을 다 만들어주는듯.)


ps. XDA 개발자들은 굇수들의 집합. (현재 쓰고 있는 제 폰인 HTC Desire도 이미 XDA개발자가 만든 Gingerbread OS ROM로 탑재하여 사용하고 있습니다. 그래서 Gingerbread SDK를 사용하여 테스트 중입니다)

Buy me a coffeeBuy me a coffee




The honeycomb emerges...


Honeycomb delivery!


I, for one, welcome our new sweet sticky overlords


Honeycomb 조형물이 구글 캠퍼스(구글 본사)에 설치되었습니다.

Honeycomb 조형물에선 안드로이드 로봇이 꿀집에서 애벌레처럼 있는 모습이 보입니다. 아마 꿀벌이 안드로이드 로봇에게 밥 주는 느낌이랄까?

ps. 구글이란 기업은 참 재미있군요. 안드로이드 버전이 계속 발표될때마다 구글 캠퍼스(구글 본사)에 계속 조형물을 올릴 생각을 하는가봐요. Cupcake(Android 1.5), Donut(Android 1.6), Eclair(Android 2.1), Froyo(Android 2.2), Gingerbread(Android 2.3), Honeycomb(Android 3.0)으로 알파벳순서로 계속 이름 붙이며 조형물 올리니, 재미있는 기업이에요.
Buy me a coffeeBuy me a coffee



안드로이드 3.0 Honeycomb SDK가 최종으로 올라왔다고 합니다. 그리고 Level 11의 API가 최종적으로 확정되었으며, 이 SDK 를 기반으로 개발을 진행해서 안드로이드 마켓에 등록할 수 있습니다.

참고로 Android 3.0 Platform의 사용자용 설명과 개발자용 설명은 링크에 있습니다.

그리고 Android SDK Tools(r10)을 업데이트 하였고, Eclipse용 ADT Plugin을 업데이트를 하였습니다.


Together with the new platform, we are releasing updates to our SDK Tools (r10) and ADT Plugin for Eclipse (10.0.0). 


아래는 제 맥북에서 새로 업데이트된 Android SDK Tools r10과 Android 3.0 Honeycomb SDK API 11을 설치하는 모습입니다.


Packages Install in Android ADT

Installing Android SDK



설치 끝나고 나서 에뮬레이터를 실행하니 뭔가 바뀐 구석은 있군요. (에뮬레이터 속도를 더 빠르게 만들었으면 하는 바람이 ㅎㅎ)

Android SDK Tools(r10)과 Eclipse plugin ADT에서 예전과 다르게 바뀐 부분

  • UI Builder improvements in the ADT Plugin:
    • New Palette with categories and rendering previews. (details)
    • More accurate rendering of layouts to more faithfully reflect how the layout will look on devices, including rendering status and title bars to more accurately reflect screen space actually available to applications.
    • Selection-sensitive action bars to manipulate View properties.
    • Zoom improvements (fit to view, persistent scale, keyboard access) (details).
    • Improved support for <merge> layouts, as well as layouts with gesture overlays.
  • Traceview integration for easier profiling from ADT. (details)
  • Tools for using the Renderscript graphics engine: the SDK tools now compiles .rs files into Java Programming Language files and native bytecode.

Buy me a coffeeBuy me a coffee

Android 프로그래밍을 하다 C코드를 Java코드와 연동해야하는 일이 생겼습니다.

Android NDK를 이용해 빌드하다보니 ant를 사용하여 안드로이드 프로그램을 빌드하였습니다.

Linux에서 빌드할때와 Mac OSX에서 빌드할때 미묘한 차이가 생기더군요.


Java로 된 안드로이드 소스코드는 UTF-8로 분명히 저장되어 있는데, Ant가 Linux에서 돌릴때엔 ascii로 인식해서 컴파일을 하더군요. 결국엔 안드로이드 어플에 한글이 깨져 나오는 문제가 있습니다.

Mac에서는 아무런 문제없이 빌드되고 안드로이더 어플에 한글이 깨져나오는 일이 없습니다. 참 미묘하기도 하지요?


참고로 CentOS5에 설치한 Ant 버전은 아래와 같습니다.

[studioego@localhost ~]$ ant -version

Apache Ant version 1.7.1 compiled on June 27 2008

[studioego@localhost ~]$ 



그리고 Mac  OSX 10.6에 설치된 Ant버전은 아래와 같다.

Dae-Hyun-Sung-ui-MacBook-Pro:~ studioego$ ant -version

Apache Ant version 1.8.1 compiled on September 21 2010

Dae-Hyun-Sung-ui-MacBook-Pro:~ studioego$


CentOS5 에서 Ant를 실행했을때


$ ant debug

Buildfile: build.xml

    [setup] Android SDK Tools Revision 8

    [setup] Project Target: Android 2.2

    [setup] API level: 8

    [setup] 

    [setup] ------------------

    [setup] Resolving library dependencies:

    [setup] No library dependencies.

    [setup] 

    [setup] ------------------

    [setup] 

    [setup] 

    [setup] Importing rules file: tools/ant/main_rules.xml


-debug-obfuscation-check:

-set-debug-mode:

-compile-tested-if-test:

-dirs:

     [echo] Creating output directories if needed...

    [mkdir] Created dir: /******/bin/classes

-pre-build:

-resource-src:

     [echo] Generating R.java / Manifest.java from the resources...

     [null] /home/studioego/android/platform-tools/aapt: /usr/lib/libz.so.1: no version information available (required by /home/studioego/android/platform-tools/aapt)

-aidl:

     [echo] Compiling aidl files into Java classes...

-pre-compile:

compile:

    [javac] Compiling 5 source files to /******/bin/classes

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]            ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]             ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]              ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]               ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                 ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                  ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                   ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                    ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                      ^

(생략)

    [javac] 100 warnings

(생략)



이후 소스코드는 UTF-8로 분명히 저장했는데도 안드로이드 어플에서 글씨가 깨져 나옵니다.


Mac OSX 10.6 Snow Leopard 에 탑재된 Ant를 실행했을때

$ ant debug

Buildfile: /******/build.xml

    [setup] Android SDK Tools Revision 10

    [setup] Project Target: Android 2.2

    [setup] API level: 8

    [setup] 

    [setup] ------------------

    [setup] Resolving library dependencies:

    [setup] No library dependencies.

    [setup] 

    [setup] ------------------

    [setup] 

    [setup] 

    [setup] Importing rules file: tools/ant/main_rules.xml

-debug-obfuscation-check:

-set-debug-mode:

-compile-tested-if-test:

-pre-build:

-dirs:

     [echo] Creating output directories if needed...

-aidl:

     [echo] Compiling aidl files into Java classes...

-renderscript:

     [echo] Compiling RenderScript files into Java classes and RenderScript bytecode...

-resource-src:

     [echo] Generating R.java / Manifest.java from the resources...

-pre-compile:

...

(생략)

BUILD SUCCESSFUL

Total time: 10 seconds


소스코드도 UTF-8로 저장되었고 안드로이드 어플에서 한글이 깨지는 일이 없이 문제 없이 돌아갑니다. 


ant의 버전 차이때문에 그런건가요?


이 문제 때문에 Linux용 최신 ant binary 버전을 다운 받아서 사용했어도 똑같은 일이 발생하더군요.

버전문제는 아는 것 같고.. Linux용 ant를 직접 빌드해서 사용해야 문제가 해결될까요?


한글이 깨지는 문제때문에 구글링 한 결과 android-sdk폴더안의 파일을 수정해야되더군요

android-sdk디렉토리 안에 있는 tools/ant/main_rules.xml 을 열고 나서 

<property name="java.encoding" value="ascii" /> 부분을 찾습니다. 

 120     <!-- compilation options -->

 121     <property name="java.encoding" value="ascii" />

 122     <property name="java.target" value="1.5" />

 123     <property name="java.source" value="1.5" />

이후 ascii를 UTF-8로 수정후 저장합니다.

 <property name="java.encoding" value="UTF-8" />

이후에 다시 ant로 안드로이드 어플 컴파일 하면 한글이 깨지는 문제가 사라집니다.

참조: android: getting rid of “warning: unmappable character for encoding ascii”

(역시 구글링하면 모든 문제가 대부분 해결 되더군요 ㅎㅎ)


참고로 Mac OSX에선 기본적으로 UTF-8로 설정되어서 위와 같이 한글이 깨지는 문제가 없더군요.

아래는 맥의 ant 설정파일의 내용입니다.

/Users/studioego/android-sdk-mac_86/tools/ant/main_rules.xml

124     <!-- compilation options -->

125     <property name="java.encoding" value="UTF-8" />

126     <property name="java.target" value="1.5" />

127     <property name="java.source" value="1.5" />


Buy me a coffeeBuy me a coffee


하루종일 Android OS에서 C/C++코드와 Java 코드를 연동하기 위해서 Android NDK를 사용하여 프로그래밍중입니다.

C/C++로 개발된 기능을 Java에서 쓰기 위해서 JNI(Java Native Interface)를 사용해야되긴 하지만 처음 접하니 어렵군요.

분명히 Visual Studio에서 빌드하여 성공한 코드가 JNI(Java Native Interface)로 빌드할땐 에러가 나니 짜증이 나군요.


ps. 2011년 2월 21일 오후 5시 18분경 컴파일 성공. 이제 마무리 작업만 하면 됩니다 ~_~





Buy me a coffeeBuy me a coffee

출처: Android DevelopersWhat is the NDK?


Android NDK는 안드로이드 어플리케이션(앱)에 Native code(C,C++등)을 이용한 임베딩 요소들을 사용할수 있는 툴셋입니다.

참고로 NDK는 Native Development Kit의 약자입니다.

안드로이드 어플리케이션(앱)은 Dalvik Virtual machine(VM)에서 돌아갑니다. NDK는 C나 C++같은 Native code를 어플리케이션에서 구현할수 있게 허락해줍니다.


NDK를 쓰는 이유

  1. Garbage Collection이 무서워서
  2. 메모리가 너무 많이 필요해서 (over 16M~24M of JVM)
  3. 다른 C/C++ 라이브러리를 사용하고 싶어서
  4. ㅂㅌ인증을 받고 싶어서...(농담입니다 @.@)

영상처리쪽이나 음성처리같이 메모리를 많이 필요하는 어플 구현에 NDK를 써야 최상의 결과를 낼수 있을겁니다.
ps. 그러나 용량이 엄청많이 늘어나겠지.. (먼산)
Buy me a coffeeBuy me a coffee

+ Recent posts