<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>JKProject.net</title>
		<link>http://jkproject.net/</link>
		<description>JKProject.net</description>
		<language>ko</language>
		<pubDate>Wed, 17 Aug 2011 13:53:09 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<image>
		<title>JKProject.net</title>
		<url><![CDATA[http://cfile9.uf.tistory.com/image/120AFC0F4C1471DD6EF73B]]></url>
		<link>http://jkproject.net/</link>
		<description>JKProject.net</description>
		</image>
		<item>
			<title>Eclipse에서 발생하는 빈번한 에러 해결하기</title>
			<link>http://jkproject.net/7</link>
			<description>Eclipse에서 안드로이드 앱을 만들다 보면 툭하면 다음과 같은 에러 메시지가 뜨면서 컴파일 및 실행이 안되는 경우가 발생한다. &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;The project cannot be built until build path errors are resolved&lt;/blockquote&gt;&lt;br /&gt;
구글을 찾아보아도 이 현상의 원인에 대한 정확한 설명도 없고 단지 몇가지 이를 피할 수 있는 팁정도만 찾을 수 있었다. 아마도 SDK상에서 library path가 잘 꼬여서 그런것 같은데 이 에러가 발생했을 때 이를 넘어갈 수 있는 방법만 소개해본다.&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot;&gt;
&lt;li&gt;Eclipse SDK -&amp;gt; Project -&amp;gt; Properties -&amp;gt; Java Build Path -&amp;gt; 
Order and Export&lt;br /&gt;
현재 사용하는 class의 directory가 나오는데 이것의 순서를 바꿔본다.&lt;/li&gt;
&lt;li&gt;Eclipse SDK -&amp;gt; Project -&amp;gt; Properties -&amp;gt; Java Build Path -&amp;gt; 
Libraries&lt;br /&gt;
아무거나 임시로 library를 추가한다. (ex. Add Library -&amp;gt; JRE System 
Library)&lt;br /&gt;
그 후 project가 refresh될때까지 기다리거나 강제로 refresh한다.&lt;br /&gt;
추가했던 
library를 다시 제거한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
나의 경우 1의 경우에서 에러가 없어지는 경우도 있고, 2까지 해야 없어지는 경우도 있었다. 구글에서 찾아보면 이런 에러가 5년전에도 있었던것 같은데 왜 아직까지 이러는지 모르겠다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-7-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-7-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-7-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Android</category>
			<category>Eclipse</category>
			<category>error</category>
			<category>SDK</category>
			<category>Tip</category>
			<author>정기</author>
			<guid>http://jkproject.net/7</guid>
			<comments>http://jkproject.net/7#entry7comment</comments>
			<pubDate>Mon, 28 Jun 2010 00:05:00 +0900</pubDate>
		</item>
		<item>
			<title>안드로이드 XML 파싱방법 - SAX, XmlPullParser, DOM</title>
			<link>http://jkproject.net/6</link>
			<description>일반적으로 Java platform에서는 세가지 정도의 XML 파서가 유명하다고 한다. Java&#039;s Simple API for XML(SAX), Documnet Object Model(DOM), Streaming API for XML(StAX) 가 그것들이다. 하지만 안드로이드에서는 마지막 StAX는 지원하지 않으며, SAX와 DOM은 완벽하게 지원하고 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;SAX&lt;/span&gt;는 상당히 빠른 속도에 메모리 사용량도 극히 작은 API로 event-driven으로 동작한다. XML 문서에서 각각의 태그를 만날때 마다 해당하는 EventListener가 떠서 파싱이 이루어진다. 특히 기존 Java 프로그램에서 사용하는 것과 동일한 형태로도 사용할 수 있으며, 안드로이드 SDK에서 지원하는 좀더 단순한 형태로 사용할 수도 있다. &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;DOM&lt;/span&gt; 역시 안드로이드에서 완벽하게 지원된다. SAX와 마찬가지로 기존 Java 프로그램에서 사용하는 것과 동일한 형태로 어떠한 변환없이 사용할 수 있다. DOM의 경우엔 XML 문서를 한꺼번에 모두 메모리로 읽어 놓고 DOM API를 이용해서 필요한 부분 어디로든지 검색할 수 있기 때문에 XML 문서의 크기가 크다면 모바일 환경에서 사용하기엔 약간 무리가 따른다. 하지만 XML 문서가 단순하다면 아주 간단하게 XML을 파싱하는 방법을 제공한다.&lt;br /&gt;
&lt;br /&gt;
다음으로 안드로이드에서는 StAX와 비슷하게 동작하는 &lt;span style=&quot;font-weight: bold;&quot;&gt;XmlPullParser&lt;/span&gt;를 지원한다. 속도는 SAX보다 약간 느리며 메모리 사용량은 비슷하다고 한다. 동작 역시 SAX와 비슷하긴 하지만 사용자가 직접 항목의 값을 가져오는 pull 방식을 취한다. (반대로 SAX의 경우는 push방식으로 볼수 있다.) 특히 XML문서의 모든 내용을 파싱하지 않고 필요한 부분까지 파싱한 후에 파싱을 끝낼 수 있기 때문에 XML문서에서 일부만 가져와서 작업을 해야할 경우엔 SAX보다 더 빠르고 단순하게 처리가 가능하다.&lt;br /&gt;
&lt;br /&gt;
여기까지 기본적인 내용으로 보면 일반적인 안드로이드 앱에서는 SAX를 사용하는 것이 대세라고 볼수 있겠고, 사용하는 XML 문서의 특성에 따라 DOM 혹은 XmlPullParser를 사용하는 것도 괜찮다는 결론이 나온다. 하지만 국내 커뮤니티들에서는 사용하기 편리한 XmlPullParser를 많이 쓰는 것으로 보인다. 사실 SAX와 XmlPullParser 간의 성능차이는 그리 크지 않아보이기 때문에 본인한테 편한 것을 쓰는게 좋을 것 같다.&lt;br /&gt;
&lt;br /&gt;
참고로 &lt;a title=&quot;[http://www.developer.com/xml/article.php/10929_3824221_2/Android-XML-Parser-Performance.htm]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.developer.com/xml/article.php/10929_3824221_2/Android-XML-Parser-Performance.htm&quot;&gt;Shane Conder에 의해 쓰여진 기사&lt;/a&gt;를 보면 그림과 같이 안드로이드에서 SAX, XmlPullParser, DOM의 성능을 개략적으로 볼 수 있다. &lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/1212B20B4C260B934A832D&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/1212B20B4C260B934A832D&quot; alt=&quot;Android XML Parser Performance&quot; filemime=&quot;&quot; filename=&quot;cfile29.uf@1212B20B4C260B934A832D.jpg&quot; height=&quot;338&quot; width=&quot;425&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;(from http://www.developer.com/xml/article.php/10929_3824221_2/Android-XML-Parser-Performance.htm )&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
마지막으로 앱에서 XML을 만들어 서버로 전송해야 할 경우엔 XmlPullParser와 같은 패키지에 들어있는 XmlSerializer를 사용하는 것이 편하다고 한다.&lt;br /&gt;
&lt;br /&gt;
참고자료는 다음과 같다.&lt;br /&gt;
&lt;a title=&quot;[http://www.ibm.com/developerworks/opensource/library/x-android/index.html]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.ibm.com/developerworks/opensource/library/x-android/index.html&quot;&gt;Working with XML on Android&lt;/a&gt;&lt;br /&gt;
&lt;a title=&quot;[http://www.developer.com/xml/article.php/10929_3824221_2/Android-XML-Parser-Performance.htm]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.developer.com/xml/article.php/10929_3824221_2/Android-XML-Parser-Performance.htm&quot;&gt;Android XML Parser Performance&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-6-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-6-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-6-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Android</category>
			<category>android</category>
			<category>dom</category>
			<category>java</category>
			<category>Sax</category>
			<category>XML</category>
			<category>XmlPullParser</category>
			<category>안드로이드</category>
			<author>정기</author>
			<guid>http://jkproject.net/6</guid>
			<comments>http://jkproject.net/6#entry6comment</comments>
			<pubDate>Sun, 27 Jun 2010 02:00:00 +0900</pubDate>
		</item>
		<item>
			<title>안드로이드 갤러리 앱 - 웹에서 이미지 가져오기</title>
			<link>http://jkproject.net/5</link>
			<description>지난번에 만들었던 갤러리 앱의 경우 res/drawable 디렉토리에 사용하는 모든 이미지를 넣어두었는데 이러다보니 앱 자체의 사이즈가 너무 커지는 단점이 있다. 그래서 외부 웹에서 이미지를 가져오도록 수정하였다. &lt;br /&gt;
&lt;br /&gt;
우선 앱에서 인터넷에 접속할 수 있는 권한을 AndroidManifest.xml 에 주어야 한다. 아래와 같이 uses-permission을 사용하여 INTERNET 권한을 주면 된다.&lt;br /&gt;
&lt;blockquote&gt;&amp;lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; package=&quot;com.example.hellogallery&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:versionCode=&quot;1&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; android:versionName=&quot;1.0&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(227, 22, 0);&quot;&gt;&amp;lt;uses-permission 
android:name=&quot;android.permission.INTERNET&quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;application android:icon=&quot;@drawable/icon&quot; 
android:label=&quot;@string/app_name&quot;&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;
다음으로는 ImageAdapter class에서 사용했던 mImageIds 대신에 mRemoteImages를 다음과 같이 만든다. 여기엔 web상에 있는 이미지의 주소를 나열해주면 된다.&lt;br /&gt;
&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private String[] mRemoteImages = {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;http://www.examples.com/a.jpg&quot;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;http://www.examples.com/b.jpg&quot;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;http://www.examples.com/c.jpg&quot;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;http://www.examples.com/d.jpg&quot;,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;http://www.examples.com/e.jpg&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
그 후엔 mImageIds를 사용하던 부분을 mRemoteImages를 사용해 구현하면 된다.&lt;br /&gt;
&lt;blockquote&gt;i.setImageResource(mImageIds[position]);&lt;br /&gt;
&lt;/blockquote&gt;위의 것을 다음과 같이 수정한다.&lt;br /&gt;
&lt;blockquote&gt;try {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; URL aURL = new URL(mRemoteImages[position]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; URLConnection conn = aURL.openConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; conn.connect();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream is = conn.getInputStream();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; BufferedInputStream bis = new BufferedInputStream(is);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Bitmap bm = BitmapFactory.decodeStream(bis);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; bis.close();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; is.close();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; i.setImageBitmap(bm);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (IOException e) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; i.setImageResource(R.drawable.file_not_found);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Log.e(&quot;DEBUGTAG&quot;, &quot;Remote Image Exception&quot;, e);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;/blockquote&gt;R.drawable.file_not_found 는 혹시 웹에서 이미지를 불러오지 못할 경우 화면에 띄워줄 수 있는 이미지를 res/drawable에 넣어주면 되겠다.&lt;br /&gt;
&lt;br /&gt;
여기서 더 추가해볼 만한 것은 웹상의 xml파일을 읽어들여 어플에서 사용할 이미지에 대한 정보 및 이미지를 가져오는 것이다. 이렇게 되면 어플을 수정할 필요없이 웹상의 xml파일을 수정하는 것만으로 앱 내의 이미지 업데이트가 가능해지므로 좀더 유연한 어플이 될 수 있다.&lt;br /&gt;
&lt;br /&gt;
참고한 사이트는 다음과 같다.&lt;br /&gt;
http://developer.android.com/guide/topics/security/security.html&lt;br /&gt;
http://www.anddev.org/gallery_with_remote_images-t769.html&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-5-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-5-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-5-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Android</category>
			<category>android</category>
			<category>Eclipse</category>
			<category>java</category>
			<category>갤러리</category>
			<category>안드로이드</category>
			<category>앱</category>
			<category>어플</category>
			<author>정기</author>
			<guid>http://jkproject.net/5</guid>
			<comments>http://jkproject.net/5#entry5comment</comments>
			<pubDate>Sat, 26 Jun 2010 18:27:42 +0900</pubDate>
		</item>
		<item>
			<title>안드로이드 마켓 개발자 등록</title>
			<link>http://jkproject.net/4</link>
			<description>앱도 간단하게 만들어 보고 했으니, 이젠 &lt;a title=&quot;[http://market.android.com]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://market.android.com&quot;&gt;구글 안드로이드 마켓&lt;/a&gt;에 개발자로 등록을 했다. 비용은 $25로 애플에 비해 진입장벽은 상당히 낮다고 볼 수 있다. 다음과 같이 안드로이드 마켓에 접속하여 가장 아래쪽의&lt;a title=&quot;[http://market.android.com/publish]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://market.android.com/publish&quot;&gt; publish관련 링크&lt;/a&gt;를 클릭하면 된다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile2.uf.tistory.com/original/182CD41E4C1F59D967D19F&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile2.uf.tistory.com/image/182CD41E4C1F59D967D19F&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile2.uf@182CD41E4C1F59D967D19F.png&quot; height=&quot;462&quot; width=&quot;550&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/1441F11D4C1F5A370BA3F8&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/1441F11D4C1F5A370BA3F8&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile25.uf@1441F11D4C1F5A370BA3F8.png&quot; height=&quot;374&quot; width=&quot;550&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
우선 구글 계정으로 접속 한 다음 개발자 이름/Email/사이트 주소/전화번호를 작성한다. 전화번호의 경우 +82-10-1234-5678 과 같이 국가번호를 포함하여 써주면 되고, 그 이후엔 카드로 결제를 진행하면 된다. 등록하는 중간중간에 캡처를 해두지 않아서 스샷은 생략한다.&lt;br /&gt;
&lt;br /&gt;
문제는 아직 구글 checkout이 국내에선 서비스 되고 있지 않기 때문에 유료어플을 올리지 못하는 것이다. 현재 지원하는 국가는 오스트리아, 프랑스, 독일, 이탈리아, 일본, 네덜란드, 스페인, 영국, 미국이다. 개발자가 유료앱을 못올리는 것도 그렇지만 국내 안드로이드 사용자 역시 유료 앱은 다운 받을 수 없다. 정말 엄청난 제약이다. 성장 가능성이 엄청난 이 시장을 이렇게 내버려두고 있어야 하다니 참 안타까운 일이다. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-4-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-4-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-4-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Android</category>
			<category>android</category>
			<category>개발자등록</category>
			<category>안드로이드</category>
			<category>안드로이드 마켓</category>
			<author>정기</author>
			<guid>http://jkproject.net/4</guid>
			<comments>http://jkproject.net/4#entry4comment</comments>
			<pubDate>Tue, 22 Jun 2010 00:59:42 +0900</pubDate>
		</item>
		<item>
			<title>안드로이드 첫번째 앱 - 이미지 갤러리 v0.1</title>
			<link>http://jkproject.net/3</link>
			<description>지난 주에 이어 이번 주에는 구글 안드로이드 사이트의 튜토리얼 중 하나인 &lt;a title=&quot;[http://developer.android.com/resources/tutorials/views/hello-gallery.html]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://developer.android.com/resources/tutorials/views/hello-gallery.html&quot;&gt;HelloGallery&lt;/a&gt;를 만들었다. 구글 사이트에 올라온 코드가 버그가 있어서 그대로 옮기면 에러가 나고, 아래와 같이 &#039;c.&#039;를 붙여주어야 한다. &lt;br /&gt;
&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ImageAdapter(Context c) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mContext = c;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TypedArray a = &lt;span style=&quot;color: rgb(227, 22, 0);&quot;&gt;c.&lt;/span&gt;obtainStyledAttributes(R.styleable.HelloGallery);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mGalleryItemBackground = a.getResourceId(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R.styleable.HelloGallery_android_galleryItemBackground, 0);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.recycle();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
이렇게 우선 gallery를 만들어 main.xml 의 Gallery 부분을 다음과 같이 화면에 꽉차게 만들어 주면 기본적인 갤러리 기능은 동작하게 된다.&lt;br /&gt;
&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Gallery &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:id=&quot;@+id/gallery&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width=&quot;fill_parent&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height=&quot;wrap_content&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile9.uf.tistory.com/original/184827244C1E48EF02C107&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile9.uf.tistory.com/image/184827244C1E48EF02C107&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile9.uf@184827244C1E48EF02C107.jpg&quot; height=&quot;389&quot; width=&quot;550&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile6.uf.tistory.com/original/114825244C1E48F008444E&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile6.uf.tistory.com/image/114825244C1E48F008444E&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile6.uf@114825244C1E48F008444E.jpg&quot; height=&quot;389&quot; width=&quot;550&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
여기에 이미지 버튼을 넣어주면 다음과 같다. (main.xml 및 HelloGallery class) i를 누르면 Toast를 사용해 간단한 정보를 출력하게 하고, x를 누르면 현재 Activity를 종료하게끔 하였다.(현재는 x버튼을 다른 테스트용도로 사용하느라 코드에서는 빠져있다.)&lt;br /&gt;
&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ImageButton &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:id=&quot;@+id/info&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_width=&quot;wrap_content&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_height=&quot;wrap_content&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:src=&quot;@drawable/ic_menu_info_details&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:background=&quot;#00000000&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_alignParentBottom=&quot;true&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_alignParentRight=&quot;true&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_marginRight=&quot;10px&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:layout_marginBottom=&quot;26px&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ImageButton btnInfo = (ImageButton)findViewById(R.id.info);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Drawable dBtnInfo = btnInfo.getBackground();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dBtnInfo.setAlpha(100);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btnInfo.setOnClickListener(new OnClickListener() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void onClick(View v) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Toast.makeText(HelloGallery.this, R.string.about, Toast.LENGTH_LONG).show();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile9.uf.tistory.com/original/131839244C1E48F2510120&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile9.uf.tistory.com/image/131839244C1E48F2510120&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile9.uf@131839244C1E48F2510120.jpg&quot; height=&quot;389&quot; width=&quot;550&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
마지막으로 메뉴를 만들어 주면 다음과 같다. (menu.xml 및 HelloGallery class)&lt;br /&gt;
&lt;blockquote&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&lt;br /&gt;
&amp;lt;menu xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item android:id=&quot;@+id/menu_info&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:icon=&quot;@drawable/ic_menu_info_details&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:title=&quot;@string/menu_info&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item android:id=&quot;@+id/menu_close&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:icon=&quot;@drawable/ic_menu_close&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; android:title=&quot;@string/menu_close&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean onCreateOptionsMenu(Menu menu) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mMenu = menu;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MenuInflater inflater = getMenuInflater();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; inflater.inflate(R.menu.menu, mMenu);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean onOptionsItemSelected(MenuItem item) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; switch(item.getItemId()) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case R.id.menu_info:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Toast.makeText(HelloGallery.this, R.string.about, Toast.LENGTH_LONG).show();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case R.id.menu_close:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; finish();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile26.uf.tistory.com/original/127A44244C1E48F394F337&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile26.uf.tistory.com/image/127A44244C1E48F394F337&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile26.uf@127A44244C1E48F394F337.jpg&quot; height=&quot;389&quot; width=&quot;550&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
앞으로 해보고 싶은 것은 다음과 같다.&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot;&gt;
&lt;li&gt;화면 클릭 시 이미지 확대 및 상하좌우 스크롤&lt;/li&gt;
&lt;li&gt;&lt;a title=&quot;[http://jkproject.net/5]로 이동합니다.&quot; target=&quot;_self&quot; href=&quot;http://jkproject.net/5&quot;&gt;특정 웹의 이미지를 갤러리로 가져오기&lt;/a&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;이미지에 별점을 주고 이를 웹사이트와 연동&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;이미지 위에 해당 이미지에 관한 정보를 띄워주는 것&lt;/li&gt;
&lt;li&gt;등등..&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;
그나저나 8~9년전 했던 Java를 다시 하려니 참 적응이 안된다.&lt;br /&gt;
&lt;br /&gt;
오늘 참고한 사이트는 다음과 같다.&lt;br /&gt;
http://www.androidside.com/&lt;br /&gt;
http://www.anddev.org/post36267.html#p36267&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-3-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-3-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-3-2&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Android</category>
			<category>android</category>
			<category>Eclipse</category>
			<category>java</category>
			<category>갤러리</category>
			<category>안드로이드</category>
			<category>앱</category>
			<category>어플</category>
			<author>정기</author>
			<guid>http://jkproject.net/3</guid>
			<comments>http://jkproject.net/3#entry3comment</comments>
			<pubDate>Mon, 21 Jun 2010 02:21:42 +0900</pubDate>
		</item>
		<item>
			<title>안드로이드 개발환경 설치 및 AVD에서 마켓 접속하기</title>
			<link>http://jkproject.net/1</link>
			<description>최근 들어 아이폰, 안드로이드폰 등 각종 스마트폰들이 대세를 이루고, 앞으로 이들에게 적용된 OS를 기반으로 한 다양한 제품들이 나올 것으로 예상되고 있다. 또한 앱스토어를 통한 애플리케이션(앱 또는 어플)의 판매가 활발해지면서 개인개발자나 혹은 영세한 개발그룹들에게 상당히 큰 마켓을 만들어주게 되었다. 기존의 제작사 - 유통사 - 고객에서 제작사 - 고객으로의 직접 유통이 가능해진것이고 손쉽게 내가 만든 어플을 핸드폰으로 다운받을 수 있는 환경은 참 매력적이다.&lt;br /&gt;
&lt;br /&gt;
그러던 차에 지금은 하진 않고 있지만 잠깐 아르바이트를 하던 때를 생각해보니 그때 만들었던 컨텐츠를 활용하면 앱으로의 상당한 활용성을 가지지 않을까란 생각이 들었다. 물론 그런다고 근 시일안에 뭔가를 할 수 있을것 같진 않지만 뭔가 재밌고 흥미있는 일이지 않을까 싶어 안드로이드 어플 개발환경을 설치해보게 되었다.&lt;br /&gt;
&lt;br /&gt;
아이폰(iOS) 쪽도 생각해보았으나, 기본적으로 개발환경이 맥에서만 가능하다는 것과 애플 자체의 폐쇄적인 구조를 볼 때 안드로이드 쪽이 취미로 하기엔 더 나을것 같았다. 물론 가장 큰 이유는 초기 투자비용이 적잖이 든다는 것이었다.&lt;br /&gt;
&lt;br /&gt;
그래서 설치한 개발환경은 다음과 같다.&lt;br /&gt;
Windows 7 64bit&lt;br /&gt;
&lt;a title=&quot;[http://developer.android.com/sdk/installing.html]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://developer.android.com/sdk/installing.html&quot;&gt;JDK 6 update 20&lt;/a&gt; &lt;br /&gt;
&lt;a title=&quot;[http://www.eclipse.org/downloads/]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://www.eclipse.org/downloads/&quot;&gt;Eclipse Classic 3.5.2&lt;/a&gt; &lt;br /&gt;
&lt;a title=&quot;[http://developer.android.com/sdk/eclipse-adt.html]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://developer.android.com/sdk/eclipse-adt.html&quot;&gt;ADT 0.9.7&lt;/a&gt; &lt;br /&gt;
&lt;a title=&quot;[http://developer.android.com/sdk/index.html]로 이동합니다.&quot; target=&quot;_blank&quot; href=&quot;http://developer.android.com/sdk/index.html&quot;&gt;Android SDK r6 &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
안드로이드 개발관련 참고할 사이트는 다음과 같다.&lt;br /&gt;
http://developer.android.com&lt;br /&gt;
http://www.kandroid.org&lt;br /&gt;
http://www.androidpub.com&lt;br /&gt;
&lt;br /&gt;
여기까지 설치하고 기본 예제 프로그램인 Hello World를 실행하면 다음과 같다. 모든 프로그래밍 언어 및 플랫폼의 가장 첫장을 장식하는 Hello World. 처음엔 이것만 해도 뭔가 대단한 기분이다. 다음의 화면은 최신 안드로이드인 2.2버전 프로요가 들어간 에뮬레이터(Android Virtual Device)이다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile28.uf.tistory.com/original/204F241B4C13B846A0A3C0&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile28.uf.tistory.com/image/204F241B4C13B846A0A3C0&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile28.uf@204F241B4C13B846A0A3C0.png&quot; height=&quot;386&quot; width=&quot;550&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
또한 안드로이드 에뮬레이터 환경에서 안드로이드 마켓까지 사용할 수 있다. &lt;span style=&quot;text-decoration: line-through;&quot;&gt;아직은 안드로이드 1.6버전까지밖에 지원하지 않지만 그래도 왠만한 어플은 모두 설치 가능한것 같다.&lt;/span&gt; 2.2 프로요에서도 가능한 이미지 파일이 공개되었다. 맨 아래 참고.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile26.uf.tistory.com/original/2055671D4C13B858928E5B&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile26.uf.tistory.com/image/2055671D4C13B858928E5B&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile26.uf@2055671D4C13B858928E5B.png&quot; height=&quot;386&quot; width=&quot;550&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
안드로이드 1.6 버전 에뮬레이터 상에서 안드로이드 마켓에 접속하는 방법은 http://tech-droid.blogspot.com/2009/11/android-market-on-emulator.html 을 참고하면되며, 간단히 설명하면 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
1. 모든 개발환경을 설치한다.&lt;br /&gt;
2. http://www.4shared.com/file/165624746/fc72c3ed/system.html 에서 system.img 파일을 다운받는다.&lt;br /&gt;
3. 안드로이드 SDK가 설치된 곳 : android-sdk-windows\platforms\android-4\images 에 2의 파일을 복사해 넣는다. (기존 system.img 파일은 백업해둔다.)&lt;br /&gt;
4. Eclipse - Window - Android SDK and AVD Manager 에서 새로운 AVD를 만든다.&lt;br /&gt;
5. Target을 Android 6 - API Level 4로 선택해서 만든다.&lt;br /&gt;
6. AVD를 실행하고 마켓에 들어간다.&lt;br /&gt;
&lt;br /&gt;
일단 이것으로 개발환경은 모두 설치된것 같은데 이젠 뭘 해볼까...&lt;br /&gt;
&lt;br /&gt;
2010-06-27&lt;br /&gt;
안드로이드 2.2 AVD에서도 안드로이드 마켓에 접속할 수 있다. 자세한 사항은 다음의 링크 참고&lt;br /&gt;
http://www.kandroid.org/board/board.php?board=androidmarket&amp;amp;command=body&amp;amp;no=27&lt;br /&gt;
&lt;br /&gt;</description>
			<category>Android</category>
			<category>android</category>
			<category>AVD</category>
			<category>Eclipse</category>
			<category>java</category>
			<category>개발환경</category>
			<category>안드로이드</category>
			<category>안드로이드마켓</category>
			<author>정기</author>
			<guid>http://jkproject.net/1</guid>
			<comments>http://jkproject.net/1#entry1comment</comments>
			<pubDate>Sun, 13 Jun 2010 13:51:54 +0900</pubDate>
		</item>
	</channel>
</rss>

