Android/Application2014. 10. 30. 16:42

남는 시간에 몇가지 android application 관련 공부를 좀 하다가,

쉽게 그럴싸한 app을 만들 수 있는 방법으로 포털이나 정부에서 제공하는 open api를 이용하는 방법으로

방향을 잡았다.


몇가지 OPEN API 제공 사이트

- 네이버 : http://developer.naver.com/wiki/pages/OpenAPI

- API STORE : http://www.apistore.co.kr/api/apiList.do

- DAUM API : http://dna.daum.net/apis/dashboard

- 공공 데이터 포탈 : https://www.data.go.kr/#/L21haW4=


그 외 google, twitter, facebook, kakao 등에서도 각 회사에서 제공하는 여러 서비스들에 대한 open api를 제공하고 있다.


open api 사용을 위해서 기본적으로 

open api 사용에 대한 권한 획들을 위한 OAUTH

서비스 request를 위해 REST, HTTP(POST, GET)

받아온 결과의 출력을 위한 XML(parse) 에 관련된 class들을 찾아보고 이해하면

제공되는 API들을 쉽게 사용할 수 있을 것이다.


Naver에서 제공하는 cafe API를 이용해서 원하는 cafe의 최신글만 android widget으로 출력하여 접근 용이하게 하는 app을 만들던중... 최신글의 list를 출력 해주는 service가 없어서 개발 중단. --;

Posted by ekwang
Android/Application2014. 9. 3. 10:55


간단한 Android Network Application을 작성하기 위한 기본 지식.


 Android application의 main(UI) thread에서의 network 관련 동작의 실행은 warning이 발생하게 된다.

Network request의 경우 예상치 못한 delay가 발생하여 실행이 지연될 수 있기때문에 

main thread의 동작을 방해하기 때문이다.

하여 network연동을 할때는 별도의 thread에서 처리를 하도록 한다.


이때 사용할 수 있는 class는 Thread(+runable)와 Handler(thread에서 발생한 결과를 main thread로 전달 하기 위한) 또는 AsyncTask 가 있다.

AsyncTask의 경우 별도의 Handler가 필요없이, 필요한 함수를 override하여 그곳에서 UI thread에서 처리가 필요한 내용들을 구현하는 것으로 간결히 처리 할 수 있다.


http 처리를 위해서 android에서는 HttpURLConnection과 Apach의 HttpClient를 지원하며

공식적으로는 GB이상에서는 HttpURLConnection(+URL)를 권장한다.


우선 network이 사용가능한 상태인지 확인을 위해 아래의 method를 사용한다.

ConnectivityManager.getActiveNetworkInfo()


 서버를 통해 전달받은 결과는 InputStream을 통해서 읽어들일 수 있고

InputStream을 통해 전달된 byte array를 String으로 변환하기 위하여 InputStreamReader, BufferedInputStream등이 사용된다.

inputstream을 통해서 data를 읽을때는 전송될 정확한 size를 알 수 없기 때문에 적당한 사이즈만큼만 read()를 하고 -1이 return되면 종료한다.


참고 : http://developer.android.com/training/basics/network-ops/connecting.html




Posted by ekwang
Android/Application2012. 12. 3. 12:00

Android JB부터 MediaCodec class가 추가되어

device에서 지원 하는 codec을 NDK로의 추가 구현 없이도 유연하게 사용할 수 있게 되었다.


MediaCodec을 이용하여 codec으로부터의 output data를 application이 쉽게 얻을 수 있다는 말이다.


여기저기 기웃 거려보아도 동작하는 sample code가 없기에

시간을 좀 들여서 작성을 해보았다.

본인이 Android Application 개발자가 아니라 Android API 사용에 유창하지 않으니

API level 16부터 추가된 MediaCodec, MediaExtractor, MediaFormat 등의 사용에 참고만 하였으면 하는 바램이다.





Posted by ekwang
Android/Application2011. 9. 17. 00:39
Google music beta 초대권 8장 배포 합니다.

google musicmanager deb file for ubuntu.


$sudo dpkg -i google-musicmanager-beta_current_i386.deb


의존성 에러 발생하면

$sudo apt-get install -f


android device용 apk 파일!

Posted by ekwang
Android/Application2011. 7. 27. 15:51
Android application 중에

한국에서 정식(?)의 경로로 다운로드 받을 수 없는 app들이 많다.

근래 설치한 것 두개를 공유.

    Android Market App : 


      http://android-developers.blogspot.com/2011/07/new-android-market-for-phones.html

    Google + App :  


      https://plus.google.com/

혹시 google + 초대가 필요하신 분은 말씀하시면 됩니다.

초대 방식이 바뀌었네요.
아래 링크를 통해서 들어오시면 자동으로 초대가 됩니다.

google plus invitation link
https://plus.google.com/_/notifications/ngemlink?path=/?gpinv=v5CVOHwOJ_0:uttHM5Ayyyg


Posted by ekwang
Android/Application2009. 11. 5. 18:18

SNS서비스의 이용이 많아지면서 당연 Twitter에도 많은 사람들이 관심을 가지게 되었다.
S/W 개발자라면 TweetAPI를 이용해서 Twitter Client Application을 개발하는데 관심을 가져볼만하다.

간단한 방법만 소개해보겠다.
우선 Twitter는 TwitterAPI라고 하여 Twitter server에 있는 여러 data들을 자유롭게 접근하여 사용할 수 있도록
API를 오픈하고 있다.
물론 완전히 자유롭게는 아니고 약간의 제약이 있긴하다. (이러한 내용은 Twitter API wiki를 통해 확인하도록 하자.)

아무튼 Twitter API는 html base이다.
C, JAVA등에 익숙한 나같은 사람은 html로 application을 개발 할 능력이 없다.(사실 JAVA에도 무뇌한이지만..)
그래서 TwitterAPI를 다양한 언어로 wrapping해놓은 다양한 라이브러리등이 존재한다.

그중 JAVA를 써서 개발한 Twitter4J를 사용한다면 개발이 한결 쉬울 것이다.
사이트로 가서 압축된 파일을 받기만 하면 준비는 끝이다.
그리고 간단한 sample code를 몇개만 보게된다면 당신은 twitter client 프로그램을 손쉽게 개발 할 수 있을것이다!!!

개발과정을 잠깐보고 간단한 예제코드를 Android에 적용해보자.

1. Twitter4J library Add
아래사진과 같이 Package Explore에서 해당 package를 선택 후 Alt+Enter를 누르면 Properties 화면이 뜬다.
여기서 Java Builder Path 메뉴의 Libraries로 이동, Add External JARs를 눌러서
Twitter4J\twitter4j-2.0.10\twitter4j-2.0.10.jar 를 추가하면 준비는 끝이다.

2. 필요한 class를 import.
이런 식으로 import해 주고 Twitter4J의 class, method들을 호출하여 app개발을 하면 된다.
import twitter4j.Twitter;
import twitter4j.Status;
import twitter4j.TwitterException;
import twitter4j.User;


Twitter4J를 이용한 Twitter 로그인, Tweet 보내기 예제는 다음번에 꼭 포스팅하도록 하겠다.
Posted by ekwang
Android/Application2009. 11. 5. 10:03
뒤늦은 감이 있지만 1.6에서 View.OnClickListener를 쉽게 사용하는 방법에 대해서
안드로이드 블로그에 글이 있는 것을 확인했다.
http://android-developers.blogspot.com/?hl=en


UI framework changes in Android 1.6
Easier click Listener
기존에 OnClick을 처리 하기 위해서 OnClickListener를 생성하고 등록하는 코드

View.OnClickListener handler = View.OnClickListener() {
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.myButton: // doStuff
                break;
            case R.id.myOtherButton: // doStuff
                break;
        }
    }
}

findViewById(R.id.myButton).setOnClickListener(handler);
findViewById(R.id.myOtherButton).setOnClickListener(handler);


아래는 1.6에서 추가된 방식
1. view에 대해서 OnClick이 발생하였을 경우 호출할 method를 생성한다.
class MyActivity extends Activity {
    public void myClickHandler(View target) {
        switch (v.getId()) {
            // doStuff
    }
}

2. layout xml파일의 View에 android:onClick 을 추가하고 위에서 생성한 method를 등록해준다.
<Button android:onClick="myClickHandler"
... />

이렇게 하면 상기 Button이 Click 되면 myClickHandler를 호출하게 된다.

안드로이팀은 개발자들이 어플리케이션을 쉽고 효과적으로 만들수 있도록 최선을 다 할것이라고 한다. :)
Posted by ekwang