JKUN

Welcome To The Jkun.net

Blog

한국에서 HTML5는 그림의 떡?

2011.01.10 16:20 Jkun Story/뉴스 스크랩


출처 : http://hook.hani.co.kr/archives/19693

스마트폰 개통 2년 후를 기약하다

요즘 디지털 기기의 경향을 한 마디로 표현한다면 바로 ‘스마트(smart)’라고 할 수 있을 것이다. 몇 주를 기다려야 받을 수 있는 것을 감수하면서까지 아이폰을 예약하는 사람들과 인기 있는 모바일 어플리케이션(이하 앱)이 신문지상에 등장하는 것은 이러한 경향을 단적으로 표현한다. 스마트폰(smart phone)은 피처폰(feature phone : 단순 기능만 제공되는 휴대전화로 이해하시면 된다)보다 가입자 수가 적지만 이동 통신사에게는 더 많은 이익을 제공하고 있기 때문에 이러한 경향은 당분간 수그러들지 않을 것으로 보인다. 또한 앞으로 피처폰 시장은 과거의 무선호출기와 비슷한 길을 걷게 될 것이다. 필자도 최근에 이러한 경향에 편승하기 위해 스마트폰을 예약했다. 언론에서 노골적으로 특정 모델을 밀어준다는 비판을 피하기 위해 모델명은 밝히지는 않겠다. 어쨌거나 이것은 지극히 개인적인 문제이고, 본격적으로 문제를 하나 제시해보고자 한다. 아마 스마트폰을 가진 많은 독자들도 이런 생각을 한 번 쯤은 해봤을 것이다.

“난 스마트폰의 노예계약(약정기간)을 끝내고 다른 스마트폰으로 바꾸고 싶어, 하지만 이미 구입한 수많은 유료 앱들은 어떻게 하지?”

이러한 상황은 안드로이드 운영체제의 스마트폰을 아이폰 운영체제(이른바 iOS)의 스마트폰으로 바꾸거나 또는 윈도우즈 모바일 운영체제를 기반으로 하는 스마트폰으로 바꿀 때를 말한다. 물론 가장 좋은 선택은 애플의 노예였다면 앞으로도 애플의 노예로 남는 것이고, 구글의 노예였다면 계속 구글의 노예로 남는 것이라고 말할 수 있다. 이것은 선택의 고통을 없애준다는 차원에서의 현명한 선택일 뿐, 권장 사항은 아님을 밝힌다. 아무튼 여기서 화두는 바로 ‘호환성’이라고 할 수 있다. 많은 독자들의 컴퓨터는 백의 구십구는 윈도우즈 운영체제를 이용하고 있다. 물론 경제적으로 넉넉하시고 ‘난 죽어도 디자인!’이라는 것을 강조하고 싶은 분들은 맥(Mac)을 이용하기도 하지만 말이다. 필자도 그렇듯 윈도우즈를 사용한 수많은 사람들은 약 20여 년간 고통 없이 살아왔을 것이다. 항상 컴퓨터의 운영체제는 윈도우즈였기 때문이다. 여기서는 구 버전과 신 버전 사이의 호환성이 문제였고, 이것은 매우 단기적인 문제였다. 대체로 오래 전에 쓰던 소프트웨어들은 여전히 이용가능하고, 윈도우즈 7에서도 윈도우즈 98 시절의 스타크래프트는 아주 잘 돌아간다.

하지만 스마트폰 시장은 이러한 선택의 단순함을 복잡함으로 바꾸어버렸다. 필자가 예상하기에 당분간은 여러 운영체제가 난립하는 구조일 것이기 때문이다. 현재 시장의 선두주자는 애플이다. 그러나 애플의 아이폰을 처음 구입한 사람들의 노예 기간이 끝날 때 즈음은 어떨까? 아마 많은 사람들이 기기의 기능성과 새로운 디자인 등을 고려하게 될 것이다. 그리고 더불어서 피처폰 시절에는 생각조차 하지 않았던 운영체제 또한 고려 사항으로 등장하게 될 것이다. 컴퓨터는 어차피 같은 회사(마이크로소프트)니까 문제를 해결해줬겠지만 스마트폰은 그렇게 해줄 리가 만무하다. 대부분의 사람들은 필자가 권했던 고통을 줄여주는 선택을 하게 될 것이다. 애플의 CEO인 스티브 잡스(Steve Jobs)가 아이폰을 처음 구상할 때 세운 전략이 바로 이러한 잠김 효과(lock-in effect)*였으니까 말이다.

그렇다면 정말로 방법은 없는 걸까? 더 좋은 기계를 쓰고 싶은데, 이미 구입한 앱 때문에 바꿀 수 없다면 말이다. 반갑게도 이러한 문제를 해결하기 위해 등장한 것이 바로 하이브리드 앱이다. 바로 웹(web) 어플리케이션에서 처리하고 모바일은 결과만을 받아볼 수 있도록 앱을 개발하는 것이다. 하지만 이러한 웹도 현재로서는 제약이 많아서 등장한 것이 바로 HTML5라는 기술이다. 흔히들 많은 사람들이 ‘태그(tag)’라고 알고 있는 몇 가지 명령어가 바로 HTML(Hyper Text Markup Language)이다. HTML5는 웹 페이지 자체에서 아주 엄청나게 많은 일을 할 수 있도록 개발되었다. 웹 페이지에서 게임(플래쉬 게임은 아니다)도 가능하고, PPT도 작성할 수 있다. 그래서 이러한 HTML5로 제작된 웹 페이지는 모바일 브라우저(사파리나 크롬 등)에서 읽는 것이 가능하다. 즉, 스마트폰 내부에서 처리하고 수행할 것을 웹(web)이라는 인터넷 세상으로 돌려버리면 일은 매우 깔끔하게 처리된다. 그냥 주소를 따라 가서 볼 일을 보면 되기 때문이다. 웹 페이지를 하나의 전자사전처럼 꾸미면 많은 사람들은 굳이 모바일 앱 스토어에서 따로 구입하지 않고도 많은 것을 누릴 수 있다. 나중에 다른 스마트폰으로 바꾸더라도 고민도 없을 것이고 말이다.

그래서 HTML5인지는 알 수 없으나 필자가 임의적으로 본 사이트를 앱*으로 꾸며 보았다. 사실 필자가 한 것은 아무것도 없다. 그냥 스마트폰의 웹 브라우저(web browser)에서 한겨레 훅 사이트를 읽어 들이기만 한 것이다. 모든 데이터 처리는 바로 본 사이트에서 알아서 한다. 그러나 마치 앱이 구동되어서 별도의 스마트폰 앱이 구동되는 것과 마찬가지가 될 수 있다. 만약 아이폰이 아닌 구글 안드로이드를 이용한다면 안드로이드 운영체제에 맞게 새롭게 프로그래밍을 하면 같은 화면을 해당 스마트폰에서도 구현할 수 있다. 좀 더 쉽게 이야기하자면 과거에는 새로운 운영체제에 맞게 소프트웨어를 통째로 변환(conversion)해야 한다면 HTML5에서는 접근하는 통로만 바꾸어주면 된다. 내용은 원래부터 그대로 쓰기 때문에 추가적인 변환 비용이나 작업이 필요 없는 것이다.

하지만 한 가지 문제가 있다. 바로 대한민국이란 나라는 HTML5 기술이 적용되기에는 너무나도 척박한 환경이기 때문이다. 한 가지 예로서 아이폰에서는 별도의 플러그인(plug-in)이 설치될 수가 없다. 그 때문에 은행 업무를 보기 위한 공인인증서 확인과 결제를 위한 수많은 것(흔히 결제, 인증 또는 보안을 위해 설치하라고 한다)들이 스마트폰에서는 전혀 작동하지 않는다. 대한민국의 웹 환경은 지극히 윈도우즈를 위한 환경이며, 소위 액티브 X*라고 불리 우는 플러그인으로 도배가 되어 있기 때문에 스마트폰 이용자들은 결국 해당 서비스 업자가 새롭게 제작한 별도의 앱을 활용하여 업무를 보는 것이 현실이다. 더욱 간단히 이야기하자면 모바일 웹 환경으로서는 ‘최악’이라는 소리다. 당연히 필자가 앞서 말한 스마트폰 사이의 호환되는 환경과는 아주 거리가 멀다. 애플이나 구글이 이러한 문제를 가진 한국 소비자들의 요구를 들어줄 가능성은 얼마나 될까? 아마 필자가 생각하기에는 맨체스터 유나이티드의 알렉스 퍼거슨이 영국에서 은퇴 선언을 하고, 한국 대표팀 감독으로 올 확률과 비슷하다고 본다. 결국 한국 스스로가 이러한 웹 환경의 문제를 해결해야 한다는 뜻이다.

앞으로 1년 또는 2년이 지나면 본격적으로 스티브 잡스의 노예가 해방(아이폰 최초 가입자들)된다. 그들이 새로운 스마트폰을 선택할 때쯤에는 이러한 문제가 통신 서비스 소비자들의 중요한 문제가 될 것이다. 한 번쯤은 이 문제를 소비자 뿐 만이 아니라 웹 환경을 통해 이윤을 창출하는 많은 기업 또는 은행들도 생각해보아야 한다. 물론 프로그래머들은 인지하고 있다. 하지만 언제나 돈을 투자하고 웹 환경의 지휘하는 것은 기업과 정부이다. 그리고 불편함을 감수하는 것은 소비자들이다. 누가 나서서 새로운 청사진과 변화된 서비스를 먼저 제공해주지 않는다. 편리함만 가득했던 스마트 모바일 시대이지만 내면에는 이러한 일도 있다. 지금까지 소수의 사람들만이 한국의 웹 환경에 대해서 비판을 해왔다. 대부분 프로그래머들이거나 IT에 관심 많았던 법학자*도 있었다. 거기다 우리나라 사람들의 95% 이상은 인터넷 익스플로러를 이용*한다. 그래서 이토록 보안도 엉망이며, 호환성도 좋지 않은 환경*이 되었던 것일지도 모른다. 이제 남은 선택은 몇 개 없다. 잠김 효과에 의해 지속적으로 한 회사에 충성을 바치는 노예로서 소비를 하는 방법, 아니면 헤어진 남자친구의 사진을 불쏘시개로 쓰던 추억처럼 지금까지 샀던 앱을 휴지통에 쑤셔 넣고, 똑같은 기능의 앱을 새 기기에 맞춰서 구입하는 방법, 마지막으로는 모바일 기기에서 해방되고, 앞으로도 쭉 영구적으로 쓸 수 있는 환경을 구축하는 방법. 무엇이 가장 현명한 것인지는 이미 답이 나왔다고 본다.

* 잠김 효과 : 익숙함에서 오는 편리성에 의해 선택이 고정되는 효과라고 볼 수 있다. 예를 들어 특정 회사의 휴대폰 문자 타이핑 방식을 오랫동안 이용한 사람들은 지속적으로 그 회사 제품을 이용한다. 다른 회사의 휴대폰을 구매할 경우 새로운 문자 타이핑 방식을 숙련시켜야 하기 때문이다.
* HTML5는 아니지만 이와 비슷한 구조로서 접근하는 방식이다. HTML5는 그 자체가 하나의 프로그램으로서 기능할 수 있기 때문에 여러 가지 작업이 가능하다.
* ActiveX : 웹에서 특정한 목적을 가진 프로그램을 구동시키고 싶을 때 설치하는 플러그인으로서 MS에서도 이미 비표준이 되었지만 한국에서는 여전히 이용하고 있다.
* 고려대학교 법학과 김기창 교수로서 그는 『한국 웹의 불편한 진실』을 출간함으로서 이러한 웹 환경의 후진성을 지적했다.
* 다음 사이트는 HTML5를 이용한 프로그래밍의 예를 보여준다. 별도의 프로그램 설치 없이 3D 테트리스를 즐길 수 있을 것이며, 프로그래머인 Ben Joffe는 이미 HTML5 페이지를 상용화시켰다.(주의 : 크롬, 파이어폭스, 사파리에서만 가능)
URL : http://www.benjoffe.com/code/games/torus/
* 한겨레 신문 2010년 2월 19일 구본권 기자의 「MS도 버린 ‘액티브엑스’ 정부서 고집하다 자충수」를 참고하시길 바란다.


저작자 표시
신고
현재 0 개의 댓글이 있습니다.
Comment

Blog

아이폰보다 안드로이드폰이 나은 5가지 이유

2011.01.03 16:22 Jkun Story/뉴스 스크랩






 미국의 IT전문 방송인 씨넷TV는 아이폰보다 안드로이드폰이 나은 5가지 이유를 소개했다.

 

첫 번째는 오픈소스다. 구글은 안드로이드OS에 대해 오픈소스 정책을 펼치고 있는데 사용자가 OS를 해킹하더라도 이를 막거나 하지 않는다. 마켓플레이스 조차 제제하지 않기에 씨넷TV는 이를 진정한 ‘앱 민주주의’라 칭하고 있다.

 

두 번째로는 ‘진정한 멀티태스킹‘을 꼽았다. 애플의 아이폰도 멀티태스킹을 지원하기는 하지만 이는 제한적이고 또한 모든 앱에서 지원하지 않는다. 반면 안드로이드의 멀티태스킹은 PC와 마찬가지로 어떠한 상황에서도 여러 가지 앱을 동시에 실행시키는 ‘진정한 멀티태스킹‘을 지원 한다고 전했다.

 

세 번째와 네 번째는 ‘어도비 플래시‘ 지원, 그리고 다양한 기기의 선택을 꼽았다. 아이폰에선 플래시를 지원하지 않을뿐더러 기기의 선택이라곤 아이폰3Gs와 아이폰4 두 가지 밖에 없는 점을 지적했다.

 

마지막으로 다양한 통신사의 지원을 꼽았다. 미국을 포함한 다수의 국가에서 아이폰은 한 개의 통신사에서만 판매하는데 이는 소비자가 선택권을 무시한 처사라고 설명했다.

 

씨넷TV는 이러한 이유들 때문에 안드로이드폰의 점유율은 아이폰의 26%를 크게 앞지르는44%까지 치솟았으며 안드로이드폰의 전 세계적인 수출량은 1300%까지 급증했다고 전했다.미국의 IT전문 방송인 씨넷TV는 아이폰보다 안드로이드폰이 나은 5가지 이유를 소개했다.

 

첫 번째는 오픈소스다. 구글은 안드로이드OS에 대해 오픈소스 정책을 펼치고 있는데 사용자가 OS를 해킹하더라도 이를 막거나 하지 않는다. 마켓플레이스 조차 제제하지 않기에 씨넷TV는 이를 진정한 ‘앱 민주주의’라 칭하고 있다.

 

두 번째로는 ‘진정한 멀티태스킹‘을 꼽았다. 애플의 아이폰도 멀티태스킹을 지원하기는 하지만 이는 제한적이고 또한 모든 앱에서 지원하지 않는다. 반면 안드로이드의 멀티태스킹은 PC와 마찬가지로 어떠한 상황에서도 여러 가지 앱을 동시에 실행시키는 ‘진정한 멀티태스킹‘을 지원 한다고 전했다.

 

세 번째와 네 번째는 ‘어도비 플래시‘ 지원, 그리고 다양한 기기의 선택을 꼽았다. 아이폰에선 플래시를 지원하지 않을뿐더러 기기의 선택이라곤 아이폰3Gs와 아이폰4 두 가지 밖에 없는 점을 지적했다.

 

마지막으로 다양한 통신사의 지원을 꼽았다. 미국을 포함한 다수의 국가에서 아이폰은 한 개의 통신사에서만 판매하는데 이는 소비자가 선택권을 무시한 처사라고 설명했다.

 

씨넷TV는 이러한 이유들 때문에 안드로이드폰의 점유율은 아이폰의 26%를 크게 앞지르는44%까지 치솟았으며 안드로이드폰의 전 세계적인 수출량은 1300%까지 급증했다고 전했다.첫 번째는 오픈소스다. 구글은 안드로이드OS에 대해 오픈소스 정책을 펼치고 있는데 사용자가 OS를 해킹하더라도 이를 막거나 하지 않는다. 마켓플레이스 조차 제제하지 않기에 씨넷TV는 이를 진정한 ‘앱 민주주의’라 칭하고 있다.

 

두 번째로는 ‘진정한 멀티태스킹‘을 꼽았다. 애플의 아이폰도 멀티태스킹을 지원하기는 하지만 이는 제한적이고 또한 모든 앱에서 지원하지 않는다. 반면 안드로이드의 멀티태스킹은 PC와 마찬가지로 어떠한 상황에서도 여러 가지 앱을 동시에 실행시키는 ‘진정한 멀티태스킹‘을 지원 한다고 전했다.

 

세 번째와 네 번째는 ‘어도비 플래시‘ 지원, 그리고 다양한 기기의 선택을 꼽았다. 아이폰에선 플래시를 지원하지 않을뿐더러 기기의 선택이라곤 아이폰3Gs와 아이폰4 두 가지 밖에 없는 점을 지적했다.

 

마지막으로 다양한 통신사의 지원을 꼽았다. 미국을 포함한 다수의 국가에서 아이폰은 한 개의 통신사에서만 판매하는데 이는 소비자가 선택권을 무시한 처사라고 설명했다.

 

씨넷TV는 이러한 이유들 때문에 안드로이드폰의 점유율은 아이폰의 26%를 크게 앞지르는44%까지 치솟았으며 안드로이드폰의 전 세계적인 수출량은 1300%까지 급증했다고 전했다.
저작자 표시
신고
현재 0 개의 댓글이 있습니다.
Comment

Blog

구글 크롬OS, 태블릿 넘어 스마트TV에도 투입

2010.11.26 10:37 Jkun Story/뉴스 스크랩


구글이 선보일 예정인 크롬OS가 태블릿을 넘어 텔레비전에도 탑재될 것으로 보인다.

 

뉴욕타임스(NYT)는 24일(현지시간) 인터뷰를 통해 리누스 업슨 구글 크롬 기술 담당 부사장이 "우리는 노트북에 탑재할 생각으로 크롬OS를 만들기 시작했지만 이를 다른 휴대용 기기 태블릿이나 TV, 양쪽을 위한 플랫폼으로 확장해 나갈 것"이라 말했다고 보도했다. 

 

이는 최근 에릭 슈미트 구글 최고경영자(CEO)가 웹2.0 서밋에서 안드로이드와 크롬OS 두 플랫폼의 포지셔닝에 대한 답변과 상반된다. 당시 슈미트 CEO는 "안드로이드는 (스마트폰, 태블릿 등) 터치 인터페이스를 위한 것"이며 "크롬OS는 (데스크톱, 노트북PC, 넷북 등) 키보드 탑재 기기에 적합하다"고 구분했다. 

 

구글은 안드로이드 개발팀과 크롬 개발팀을 따로 구성했으며 서로 경쟁하지 않는다고 밝혀왔지만, 언젠가 두 기술이 통합될 가능성을 점치는 전문가들도 적지 않다. 또  NYT는 아직 제품이 나오지도 않은 크롬OS에 비해 안드로이드는 스마트폰과 태블릿 OS 시장에서 엄청난 성공을 거두고 있음을 지적하며, 이같은 구글 전략에 혼란을 더한다고 평했다. 

 

조사업체 가트너의 레이 발데스 인터넷 플랫폼 연구 부사장은 "구글이 크롬OS 프로젝트를 진행하기로 결정할 당시엔 안드로이드가 성숙하지 못했고, 태블릿 단말기 시장은 존재하지도 않았다"며 "상황이 바뀌어서 어쩌면 구글이 두 OS에 대한 제품 전략을 재구성하려는 듯하다"고 분석했다. 

 

하반기 들어 애플 아이패드와 삼성 갤럭시탭 등이 태블릿 기기에 대한 관심을 증폭시키고 있지만, 크롬OS기반 태블릿 단말기가 나온다는 루머는 상반기 한때를 제외하면 거의 알려진 얘기가 없다. 

 

다만 최근까지 구글 크롬OS 프로젝트 1주년 기념을 맞는 이달중 크롬OS 완성판이 공개되고, 이어서 크롬OS를 탑재한 넷북이 연말 휴가철을 겨냥해 출시될 것이란 소문만 무성하다. 

 

한편 올초 시저 센굽타 구글 크롬OS 프로젝트 제품관리담당 이사는 크롬OS가 중소중견기업(SMB)시장을 겨냥해 출시할 수 있다고 언급한 바 있다. 개인 소비자용이 아니라 비즈니스 제품을 개발할 가능성도 무시할 수 없는 것이다. 

 

업슨 부사장도 인터뷰에서 "기업 시장 60%가 윈도 기반 컴퓨터를 즉시 크롬OS로 대체할 수 있다"며 "크롬OS는 웹을 통해 자동으로 소프트웨어를 업그레이드해주기 때문에 (윈도처럼) 기업들이 업무용 시스템 관리자를 부릴 필요가 없을 것이다"고 말했다.

 

▲ 상반기중 올연말 출시설이 돌았던 구글 크롬OS 태블릿 단말기 상상도

저작자 표시
신고
현재 0 개의 댓글이 있습니다.
Comment

Blog

Android 학습 - Chap 1

2010.09.06 23:05 Smart Phone/Android


* 안드로이드

구글 안도로이드는 개방적이고 무료인 최초의 모바일 플랫폼이다.
  • 모바일 사용자 : 다양하고 많은 컨텐츠
  • 이동통신 : 수익성 높은 방식으로 컨텐츠 통제
  • 모바일 개발자 : 콘텐츠 개발을 통한 수익
  • 단말기 제조사 : 저렴한 비용으로 사용할 수 있는 플랫폼
특징
  • 라이센스 사용료가 없다.
  • 운영체제 : GPL v2
  • 플랫폼 : ASL / Apache2
  • 카메라, 센서, GPS, Wi-Fi 등의 하드웨어 접근 가능
  • 구글맵 지원
  • 백그라운드 서비스 지원
  • SQLite 데이터베이스 지원
  • 공유데이터와 어플리케이션 간의 통신을 지원
  • 2D / 3D 지원
  • 최적화된 메모리와 프로세스 관리
실행환경

어플리케이션 
Email 클라이언트, SMS 프로그램, 달력,
지도, 브라우저 등의 코어 어플리케이션 
어플리케이션 프레임워크 
안드로이드 어플리케이션 개발 시
필요한 API 를 제공 
라이브러리 (Android Runtime) 
안드로이드 프레임워크에서 필요한 C 와
C++ 라이브러리 
리눅스 커널 
메모리 관리, 프로세스 관리, 네트워크 세펠 등
하드웨어 지원 



개발환경구축 (리소스 다운로드)
  • Android SDK
    • Download : http://developer.android.com/sdk/index.html/
  • Eclipse galileo
    • Download : http://www.eclipse.org/downloads/
  • Java SDK
    • Download : http://java.sun.com/javase/downloads/index.jsp
  • Eclipse ADT Plugin
    • Download : https://dl-ssl.google.com/android/eclipse/
구글 안드로이드 개발자 사이트
http://developer.android.com/index.html

구글 안드로이드 개발형태
  1. Managed Code
    • Java 로 Dalvik VM 에서 동작하는 프로그램을 작성하는 방식
  2. Web Apps
    • 웹 서버에 웹페이지를 작성하고 이를 안드로이드의 브라우저로 실행하는 방식
  3. Native Code
    • C / C++ 로 작성된 라이브러리를 Dalvik 에서 JNI (Java Native Interface)  형태로 호출하는 방식

안드로이드 어플리케이션 프로젝트 구조

assets : 디바이스에 어플리케이션을 설치할때 함께 설치할 데이터 파일.
bin : 컴파일 된 어플리케이션 파일
gen : 안드로이드 빌드 시스템에 의해 자동으로 생성된 리소스 참조 파일
res : 문자열, 이미지등 어플리케이션에서 사용할 리소스 파일
src : 어플리케이션 소스코드

AndroidManifest.xml : 어플리케이션의 기본 설정 파일
default.properties : Ant 빌드 스크립트에서 참조하는 설정 파일

리소스 디렉토리 구조
  • res/drawable-hdpi : 해당 해상도에서 보여질 이미지
  • res/drawable-ldpi : 해당 해상도에서 보여질 이미지
  • res/drawable-mdpi : 해당 해상도에서 보여질 이미지
  • res/layout : 사용자 인터페이스에서 레이아웃을 정의하는 XML 파일
  • res/menu : 메뉴를 정의하는 XML 파일
  • res/values : 문자열 등 각종 값을 정의하는 파일
  • res/xml : XML 형태로 저장된 다양한 파일
  • res/raw : 기타 파일 (mp3, mp4 등등)
결과 디렉토리 구조
  • bin/classes/ : 컴파일된 자바 클래스
  • bin/classes.dex : 컴파일된 자바 클래스로 생성한 Dalvik 클래스 파일
  • bin/resources.ap_ : 컴파일된 자바 클래스로 생성한 Dalvik 클래스 파일
  • bin/app_name.apk : 컴파일된 자바 클래스로 생성한 Dalvik 클래스 파일
AndroidManifest.xml 파일 구조


<use-permission> 애플리케이션이 필요로 하는 권한
<permission> 외부 액티비니나 서비스가 필요로 하는 권한
<instruction> 액티비티가 실행되는 등의 주요이벤트가 발생했을때 어플리케이션의 어떤 부분을
 호출할 지를 결정 (기록, 모니터링)
<uses-library> 추가로 필요로 하는 라이브러리 지정 (구글맵스)
<uses-sdk> 어플리케이션이 필요로 하는 안드로이드 버전
<application> 어플리케이션과 관련된 정보

<activity> 어플리케이션이 사용할 클래스 지정
<service> 백그라운드에서 실행할 클래스 지정
<receiver> 브로드캐스트 리시버 클래스 지정
<use-library> 어플리케이션에서 사용할 외부 라이브러리


저작자 표시
신고
현재 0 개의 댓글이 있습니다.
Comment

Blog

안드로이드 디버그 android debug

2010.09.01 00:45 Smart Phone/Android



출처 : http://blog.naver.com/goodhorror/80101602787

프로그램이 죽는 경우 기본적인 디버깅 방법조차 모르는 경우가 많은 것 같아서 정리를 합니다. 프로그램이 죽어서 Q&A 게시판에 글을 남기실때 이 내용을 반드시 확인하시고 질문을 올려주시기 바랍니다.

  

프로그램이 죽는 경우라 하면 먼저 위와 같은 에러 메시지(Sorry! The application XXXX (process com.xxx.xxx.xxx) has stopped unexpectedly. Please try again. Force close)가 화면에 나타나는 경우를 말합니다.

이 경우 디버깅 화면의 LogCat 메시지를 살펴보면 다음과 같습니다. (로그캣이 뭔지 모르신다면 먼저프로젝트 실행과 디버깅 그리고 단말 세팅 이 글을 읽어보세요)


가장 가까운 마지막 부분 근처에 E 로 찍히고 빨간색으로 표시되는 메시지가 주욱 찍힙니다. 소스 어디에서 어떤 이유로 에러가 발생했는지를 표시해주는 로그로 에러의 해결을 위해 가장 중요한 부분입니다. 

08-05 00:02:14.564: ERROR/AndroidRuntime(12848): Uncaught handler: thread main exiting due to uncaught exception
08-05 00:02:14.774: ERROR/AndroidRuntime(12848): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.apis/com.example.android.apis.view.Gallery1}: java.lang.NullPointerException
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at android.app.ActivityThread.access$1800(ActivityThread.java:112)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at android.os.Looper.loop(Looper.java:123)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at android.app.ActivityThread.main(ActivityThread.java:3948)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at java.lang.reflect.Method.invokeNative(Native Method)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at java.lang.reflect.Method.invoke(Method.java:521)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at dalvik.system.NativeStart.main(Native Method)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848): Caused by: java.lang.NullPointerException
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at com.example.android.apis.view.Gallery1.onCreate(Gallery1.java:48)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)
08-05 00:02:14.774: ERROR/AndroidRuntime(12848):     ... 11 more


주루룩 선택하고 에러 메시지를 카피&페이스트할 수 있습니다. 여기서 중요한 부분은 굵은 글씨로 표시해보았습니다. 널포인트 익셉션이 발생하고 소스의 어느 어느 위치에서 발생하는지를 표시합니다.

        super.onCreate(savedInstanceState);
setContentView(R.layout.gallery_1);

// Reference the Gallery view
Gallery g = (Gallery) findViewById(R.id.add);
// Set the adapter to our custom adapter (below)
g.setAdapter(new ImageAdapter(this));

// Set a item click listener, and just Toast the clicked position
g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
Toast.makeText(Gallery1.this, "" + position, Toast.LENGTH_SHORT).show();
}
});

// We also want to show context menu for longpressed items in the gallery
registerForContextMenu(g);

해당 소스의 관련 부분을 보고 어디에서 문제가 발생했는지를 확인합니다.
저작자 표시
신고
현재 0 개의 댓글이 있습니다.
Comment

Blog

안드로이드 이클립스에서 빌드 오류

2010.08.20 14:36 Smart Phone/Android


아우.. 계속 보고도 까먹는다. 그래서 포스팅을 한다. 담배를 끊든가 해야지..
먼저 오류 내용은 이렇다.


나의 경우에는 빌드시 layout 의 main.xml 파일의 존재하지도 않는 엘리먼트 아이디를 입력하였을때 빈번하게
발생하였다. 뭐 다른경우에도 존재하겠지만..

일단 해결 방법은 간단하다.
이클립스의 Project -> Clean 을 실행한다.




저작자 표시
신고
현재 0 개의 댓글이 있습니다.
Comment

Blog

스마트폰,복수의 운영체제(OS)를 품다

2010.08.11 12:30 Smart Phone




하나의 스마트폰에 복수의 운영체제(OS)를 설치해 사용하는 게 언제쯤 가능할까. 


가령 아이폰에 말이다. 것 사용하는 안드로이드폰처럼 윈도폰을 내려받고, 앱을 안드로이드 설치한후 운영체제를>

결코 불가능한 얘기는 아니다. 시기는 정확하게 예측하기 힘들지만 머지않은 장래에 하나의 스마트폰에 복수의 OS를 설치해 앱을 다운받고, 음성통화,메시지 전송 등 기능을 이용하는 게 가능해질 전망이다.

이미 지난해 말 SW가상화 솔루션 업체인 `VM웨어`가 스마트폰에 가상화 기술을 적용,128MB 메모리를 장착한 스마트폰에서 윈도우 모바일과 안드로이드 OS를 동시 설치하는 데 성공했다. 

VM웨어는 2011년부터 미국과 유럽 지역에서 모바일 가상화 소프트웨어를 적용한 스마트폰 프로토타입을 개발해 베타 테스트를 진행할 예정이며, 2012년에는 이를 탑재한 스마트폰을 내놓을 계획이라고 한다. 하나의 스마트폰에 복수의 OS를 설치하는 것이 일단 기술적으로는 전혀 문제가 되지는 않을 것으로 보인다. 

개발자들의 관심도 매우 높다. 아이폰 OS 4.0 등 신제품이 나올때 마다 해킹이나 탈옥행위(Jailbreaking)가 순식간에 이뤄져 언론에 보도되고 있는데 지난 23일 ‘데이비드 웡’이라는 동양계 캐나다 개발자가 아이폰을 해킹,아이폰과 안드로이드폰을 이중 부팅하는 동영상을 유튜브에 올려 화제가 되고 있다. 그는 리눅스 커널을 활용한 ‘부팅 로더’를 아이폰 2G에 설치, 단말기를 안드로이드폰으로 바꾼 후 와이파이(Wi-Fi)에 접속, 문자전송,인터넷 서핑,음악재생,음성통화 등 기능을 시연했다. 특히 인터넷 전화인 스카이프를 이용해 음성통화하는 장면이 인상적이다. 데이비드 웡은 이번 해킹을 아이폰 2G 단말기에서 시도했지만 아이폰 3G에서 하는 것도 큰 문제는 아니라고 말했다.

스마트폰에 복수의 OS를 설치하는 기술이 통신사업자나 제조업체 차원에서 허용된다면 앞으로 스마트폰 사용자들은 어떤 OS나 단말기를 고를까 심각하게 고민하지 않아도 될 것 같다. 아이폰을 구입한 후 안드로이드로 전환해 사용하면 그만이다. 그런 날이 과연 언제쯤 올 수 있을까? 

이번주 아이폰을 해킹,안드로이드 운영체제를 설치한 게 큰 화제가 됐지만 `아이패드` 클론 제품의 등장도 빼놓을 수 없는 뉴스였다. 발원지는 짝퉁(샨자이)의 천국,중국이다. 역시 발빠르다. 

일렉트로니스타,테크다이제스트 등 인터넷 사이트에 따르면 중국의 한 업체는 아이패드 디자인을 모방한 태블릿인 `에이패드(Apad)`를 개발해 시판에 들어갔다. 이들 사이트들은 ‘에이패드’가 아이패드의 디자인을 모방한 ‘아이패드 클론(Clone)’이라고 소개하고 있지만 엄밀한 의미에선 완전한 클론 제품은 아니다. 애플의 운영 체제를 채택하고 있는 것이 아니라 안드로이드 운영체제를 채택하고 있기 때문이다.

아무튼 ‘아이패드 클론’으로 소개된 ‘에이패드’는 안드로이드 운영체제를 채택하고 있으며 듀얼 코어 ‘록칩(Rockchip)’ 프로세서를 탑재하고 있다. 프로세서 속도는 600MHz/ 500MHz급이다. 2GB 또는 32GB 플래시 메모리를 장착하고 있으며 RAM은 128MB다. 

단말기 크기나 해상도도 아이패드보다는 크게 떨어진다.7인치 터치스크린에 800x400의 해상도를 지니고 있다. 와이파이(Wi-Fi)를 지원하고 구글 브라우저와 구글 맵스 등이 기본으로 설치되어 있다. MKV,MPEG,AVI 등 다양한 비디오 포맷을 지원한다.

기능면에선 아이패드에 많이 부족하지만 가격은 210달러로 아이패드 최저가 모델인 499달러짜리 보다는 훨씬 저렴하다.

일렉트로니스타는 클론 제품이 중국에서 인기를 끌고 있지만 법률적인 이슈 때문에 중국외 지역에서 판매되기는 힘들 것으로 예상했다.그럼에도 불구하고 에이패드는 중국 제품 전문 온라인 판매사이트인 MadeInChina.com(http://www.madeinchina.com)에서 ‘샤오용’이라는 판매자 이름으로 판매를 시작했다. 아이패드의 인기가 치솟다보니 `클론` 제품의 등장도 바로 바로 뉴스가 되는 세상이다.
저작자 표시
신고
현재 0 개의 댓글이 있습니다.
Comment

Blog

안드로이드를 컴퓨터에 설치

2010.08.03 14:25 Smart Phone/Android


출처 : http://kinlife.tistory.com/

 

PC 에 설치되어 작동하는 안드로이드

오늘 소개해드릴 내용은 '내 PC 에 직접 안드로이드 OS 를 설치하여, 안드로이드폰 없이 안드로

이드를
즐기는 방법' 입니다.


가능하냐구요???

이것이 오픈 소스의 위력입니다.

직접 체험해 보세요. 아래 몇 가지만 따라하시면, PC 로 안드로이드 앱을 다운받고, 스카이프로 전화도

하고, 여러가지를 즐길 수 있답니다. 노트북이나 넷북에 깔아서 사용하시면 더더욱 좋으실듯.


그럼 시작 합니다.

준비물 : 512 MB 이상의 플래쉬 메모리


1. 아래 두 사이트를 방문하여, 설치 파일을 다운로드 받습니다.

- http://www.android-x86.org/download


- http://unetbootin.sourceforge.net/



2. 다운받은 파일 중 먼저 'UNetbootin' 를 실행 합니다.


플래쉬 메모리를 꽂은 다음, 'UNetbootin' 을 실행 시키고, 'Diskimage' 를 클릭하여 주시고,

앞서 다운받은 'android-x86-1.6-r2.iso' 파일을
지정합니다.

밑의 Type 란은 'USB Drive' 를 지정해 주시고, USB 의 드라이브를 설정한 다음 'OK' 버튼을

누릅니다.


* 물론 USB 드라이브가 아닌, CD or DVD 를 사용하셔도 됩니다. *

3. 자동으로 부팅 디스크를 만듭니다.



완료가 되었으면, 'Reboot Now' 버튼을 눌러서 컴퓨터를 재부팅 합니다.

4. PC를 재부팅할 때 앞서만든 USB 드라이브나, CD or DVD 를 이용하여 부팅을 합니다.


바이오스에 들어가서, 부팅을 USB 나 CD-ROM 드라이브를 우선 선택 하여 줍니다.


Live CD - Run Android-x86 without installation 을 선택하여 줍니다.


5.  자신의 PC 에 'Android' 글자가 보이며, Android OS 로 부팅이 됩니다.



6. PC 에 안드로이드 OS 가 보이시면, 성공!!



7. 이제 뭘 하면 되나구요?

안드로이드 OS 를 마음껏 즐기시면 됩니다.

안드로이드용 앱도 마음껏 다운로드 해보시고, 앱 사용도 하면서, 즐겨보세요.

노트북을 Wireless 연결하시고, 마이크와 헤드폰이 있으면, 스카이프를 통해 전화도 가능

하답니다.





* 주의점 *

자신의 노트북이나 PC 가 'AMD' 계열 CPU 면 에러가 상당히 자주 발생하거나, 설치가 되지

않을수도 있습니다. 그리고, 개발자가 많은 컴퓨터를 테스트 해보았지만, 그래도 몇 가지 기종

에서는 정상작동 하지 않을 수 도 있다고하니, 참고하세요.


http://www.android-x86.org/#Tested_platforms

유익한 정보라 생각이 드시면, 다른분들께도 알려드리기 위하여 아래의 '추천' 한방 부탁드립니다.
저작자 표시
신고
현재 0 개의 댓글이 있습니다.
Comment