달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'분류 전체보기'에 해당되는 글 23

  1. 2012.08.21 cygwin, ndk 개발 환경 설정, test ndk-build 9
  2. 2012.03.08 Eclipse에서 JAR 실행파일 만들기 5
  3. 2012.03.07 SWT CHATTING SAMPLE
  4. 2012.02.28 SWT Coolbar 4
  5. 2012.01.18 findViewById.. null
  6. 2012.01.17 [facebook] 비동기호출
  7. 2012.01.16 android 사진,동영상 선택 3
  8. 2012.01.16 [facebook]권한체크 1
  9. 2011.11.20 안드로이드 핸드폰으로 실행 3
  10. 2011.11.09 Android FaceBook api 7

1. 안드로이드 NDK 다운로드
- http://developer.android.com (android-ndk-r8b)

2. Cygwin 설치 (Cygwin은 Linux같은 환경을 Window에서 사용할 수 있는 환경을 제공합니다)
- setup.exe download
- Install from Internet 선택/Install Directory 선택/임시 디렉토리 선택/Direct Connection/
- Select Packages에서 다음 패키지들 선택
 + devel/gcc-core
 + devel/gcc-g++
 + devel/make
 + devel/git
 + editor/vim (Optional)
- 다음->완료    

* 위 항목중 빠트린 항목이 있으면, 설치후 다시 setup.exe 실행후 해당 항목만 추가해주면 된다.

3. 시그윈 환경변수를 설정
내컴퓨터 -> 마우스 우클릭 -> 속성 -> 고급 -> 환경변수 클릭
시스템 변수 안에 path 클릭 후 편집, 아래 두 항목 설정
C:\cygwin\bin; C:\cygwin\usr\include  (설치한 경로로)


4. cygwin/home/자신계졍명/.bashrc 파일 수정
파일 맨 아래에 밑의 항목 추가
export ANDROID_NDK_ROOT=/home/자신계정명/ndk폴더명

5. 시스템 변수 안에 path 클릭 후 아래 항목 추가
D:\cygwin설치경로\home\usr\android-ndk-r8b;


6. cygwin 실행후 tesseract, jpeg, core 다운로드

7. 위 항목들을 반영하려는 프로젝트의 폴더에 복사(아래 url 참고)
8. Android.mk 파일 생성및 수정(아래 url 참고)
9. ndk-build(아래 url 참고)

위처럼 했는데 안되면..
10. 컴파일중 gcc버전 변경하라고 에러뱉으면
home/usrname/projectname/jni/tesseract/Android.mk:433 수정
LOCAL_CFLAGS:=$(LOCAL_CFLAGS_) -> LOCAL_CFLAGS:=$(LOCAL_CFLAGS_) -Wno-psabi

11. LOG 정의되어있지 않다고 에러메세지 나오면.. 
home/usrname/project/jni/include/cutils/log.sh 수정
전체변경 ALOG -> LOG

'개발노트 > Lib,Tip&Tech' 카테고리의 다른 글

Eclipse에서 JAR 실행파일 만들기  (5) 2012.03.08
SWT Coolbar  (4) 2012.02.28
안드로이드 핸드폰으로 실행  (3) 2011.11.20
Android FaceBook api  (7) 2011.11.09
Sound source site  (6) 2011.03.28
:
Posted by windrises
여러가지 해보니 이 방법이 제일 간편하다.

1. Eclipse에서 jar로 만들 프로젝트를 선택한후  마우스 오른쪽버튼을 눌러 나온 팝업메뉴에서 Export...를 선택한다 (=File/Export..)

2. Runnable JAR file 선택후 Next

3. Launch configration에 실행할 메인 클래스를 선택한다.

4. Export destination에 Export하여 생성될 jar의 파일명을 입력한다.
 
5. Finish를 눌러 작업을 마친다.

6. workspace에 생성된 jar파일을 더블클랙해 실행해본다


※ 직접 MANIFEST를 통해 class-path설정하고 main 클래스잡고하는건 너무 번거롭고 조잡하다




ㅋ 간단하다,  이걸로 EXE파일을 만드는것또한 간단해진다.

1.  JSmooth를 실행한다.

2.  Executable 탭에서 Excutable Binary에 만들어질 실행파일명과 경로포함해서 입력한다 ('.'버튼을 눌러 입력해도 된다)

3. Application 탭에서 Main class에 패키지명 포함 실행 클래스를 입력한다 (예 : com.rf.ekchat.server.EKChat)

4. Embbeded jar에 위에서 Export한 jar를 선택한다.(eclipse를 통해 export한 경우 사용했던 lib(jars)파일들도 포함되어 생성되므로 classpath는 생략해도 된다.)

5. JVN탭들은 JAVA 버전은 알아서 셋팅한다.

6. Compile하고 run
 

'개발노트 > Lib,Tip&Tech' 카테고리의 다른 글

cygwin, ndk 개발 환경 설정, test ndk-build  (9) 2012.08.21
SWT Coolbar  (4) 2012.02.28
안드로이드 핸드폰으로 실행  (3) 2011.11.20
Android FaceBook api  (7) 2011.11.09
Sound source site  (6) 2011.03.28
:
Posted by windrises
2012. 3. 7. 14:26

SWT CHATTING SAMPLE 아웃풋/잡것2012. 3. 7. 14:26

SWT, NIO를 이용한 간단한 채팅 샘플



<classpathentry kind="lib" path="C:/jar/swt.jar"/>
<classpathentry kind="lib" path="C:/jar/org.eclipse.jface_3.6.1.M20100825-0800.jar"/>
<classpathentry kind="lib" path="C:/jar/org.eclipse.core.boot_3.1.200.v20100505.jar"/>
<classpathentry kind="lib" path="C:/jar/org.eclipse.core.commands_3.6.0.I20100512-1500.jar"/>
<classpathentry kind="lib" path="C:/jar/org.eclipse.core.runtime_3.6.0.v20100505.jar"/>
<classpathentry kind="lib" path="C:/jar/org.eclipse.equinox.common_3.6.0.v20100503.jar"/>
<classpathentry kind="lib" path="C:/jar/org.eclipse.ui.workbench_3.6.1.M20100826-1330.jar"/>


사내 메신저가 다 막혀서 쓸라고 급조한건데... 이또한 막혔..
만든 목적이 없어졌으므로 딱 기능만~

:
Posted by windrises
2012. 2. 28. 14:36

SWT Coolbar 개발노트/Lib,Tip&Tech2012. 2. 28. 14:36

'개발노트 > Lib,Tip&Tech' 카테고리의 다른 글

cygwin, ndk 개발 환경 설정, test ndk-build  (9) 2012.08.21
Eclipse에서 JAR 실행파일 만들기  (5) 2012.03.08
안드로이드 핸드폰으로 실행  (3) 2011.11.20
Android FaceBook api  (7) 2011.11.09
Sound source site  (6) 2011.03.28
:
Posted by windrises
2012. 1. 18. 11:27

findViewById.. null 아웃풋/작업일지2012. 1. 18. 11:27

종종 못찾는 경우들이 있다..

당연히 메인 activity에서 찾으면 될줄알았는데..
혹은 custom view의 경우 layout.xml에 정의하고 사용할때,
정작 custom view의 자동 호출되는 생성자와 정의해놓은 생성자 파라미터가 틀려 다른 생성자가 호출되면서..

또다른 예상치못한 경우는..?? 

'아웃풋 > 작업일지' 카테고리의 다른 글

[facebook] 비동기호출  (0) 2012.01.17
[facebook]권한체크  (1) 2012.01.16
MyStory - 다이어트 관련 기능 개요  (3) 2011.05.04
도져언~!  (4) 2011.03.17
올린다음날..  (1) 2011.03.02
:
Posted by windrises
2012. 1. 17. 13:25

[facebook] 비동기호출 아웃풋/작업일지2012. 1. 17. 13:25

facebook api가 호출될땐 화면 ui가 멈추고 facebook api가 호출된다(동기),
예를들어.. api를 이용하여 로그아웃을 하기전에 progress 팝업을 띄워 로딩중이란 표시를 해두었다.
그리고 바로 api를 통해 로그아웃을 처리했더니, progress 팝업이 뜨기도 전에 화면은 멈춘상태가 되고,
통신이 끝나고야 팝업이 떴다가 바로 죽었다.

AsyncFacebookRunner(비동기호출 방식)

위 클래스를 이용하면 위와같은 상황에선 progress팝업이 뜨고
api호출은 다른 쓰레드로 호출되 화면이 매끄럽게 처리된다. 



EX CODE)
public void upload(String message) {

Bundle params = new Bundle();

try{
String filepath = "/mnt/sdcard/DCIM/android.jpg";
File fin = new File(filepath);
byte[] imgData = getBytesFromFile(fin);

String url = getUriFromFullPath(filepath).toString();
params.putString("source",url);//Facebook API
params.putByteArray(url, imgData);//byte array로 넣어 주어야 함.
params.putString("message", "upload test image");
}catch (Exception e) {
String graphPath = "me"+"/photos";//나에게 보낼때는 me 라고 함. 사진 업로드시에는 photos로 정의 나머지는 문서 참조.
Facebook fb = Session.restore(getActivity()).getFb();
    new AsyncFacebookRunner(fb).request(graphPath, params,"POST", new UploadListener());
}
 }

'아웃풋 > 작업일지' 카테고리의 다른 글

findViewById.. null  (0) 2012.01.18
[facebook]권한체크  (1) 2012.01.16
MyStory - 다이어트 관련 기능 개요  (3) 2011.05.04
도져언~!  (4) 2011.03.17
올린다음날..  (1) 2011.03.02
:
Posted by windrises
2012. 1. 16. 17:16

android 사진,동영상 선택 개발노트/Android2012. 1. 16. 17:16

private final int SELECT_IMAGE = 1;
private final int SELECT_MOVIE = 2;
// 이미지 선택
private void doSelectImage()
{
    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
    i.setType("image/*");
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    try
    {
        startActivityForResult(i, SELECT_IMAGE);
    } catch (android.content.ActivityNotFoundException e)
    {
        e.printStackTrace();
    }
}
 
// 동영상선택
private void doSelectMovie()
{
    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
    i.setType("video/*");
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    try
    {
        startActivityForResult(i, SELECT_MOVIE);
    } catch (android.content.ActivityNotFoundException e)
    {
        e.printStackTrace();
    }
}
 
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
    super.onActivityResult(requestCode, resultCode, intent);
     
    if (resultCode == RESULT_OK)
    {
        if (requestCode == SELECT_IMAGE)
        {
            Uri uri = intent.getData();
            String path = getPath(uri);
            String name = getName(uri);
            String uriId = getUriId(uri);
            Log.e("###", "실제경로 : " + path + "\n파일명 : " + name + "\nuri : " + uri.toString() + "\nuri id : " + uriId);
        }
        else if (requestCode == SELECT_MOVIE)
        {
            Uri uri = intent.getData();
            String path = getPath(uri);
            String name = getName(uri);
            String uriId = getUriId(uri);
            Log.e("###", "실제경로 : " + path + "\n파일명 : " + name + "\nuri : " + uri.toString() + "\nuri id : " + uriId);
        }
    }
}
 
// 실제 경로 찾기
private String getPath(Uri uri)
{
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
 
// 파일명 찾기
private String getName(Uri uri)
{
    String[] projection = { MediaStore.Images.ImageColumns.DISPLAY_NAME };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.ImageColumns.DISPLAY_NAME);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
 
// uri 아이디 찾기
private String getUriId(Uri uri)
{
    String[] projection = { MediaStore.Images.ImageColumns._ID };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns._ID);
    cursor.moveToFirst();
    return cursor.getString(column_index);

'개발노트 > Android' 카테고리의 다른 글

게임 배경화면 처리  (1) 2011.03.23
Custom dialog  (1) 2011.03.20
애드몹  (0) 2011.03.07
ZXING 내앱에 맞게 커스터마이징중..  (2) 2011.02.23
:
Posted by windrises
2012. 1. 16. 17:06

[facebook]권한체크 아웃풋/작업일지2012. 1. 16. 17:06

me/feed로 접근했을때 목록을 못가져오는 문제가 있엇는데, 로그인할때, 권한을  아래와 같이 주었더니 해결됐다.
정말 권한문제였을까...

user_about_me,user_hometown,user_location,user_notes,user_photos,user_status,read_mailbox,read_stream,publish_stream,email

'아웃풋 > 작업일지' 카테고리의 다른 글

findViewById.. null  (0) 2012.01.18
[facebook] 비동기호출  (0) 2012.01.17
MyStory - 다이어트 관련 기능 개요  (3) 2011.05.04
도져언~!  (4) 2011.03.17
올린다음날..  (1) 2011.03.02
:
Posted by windrises
2011. 11. 20. 19:38

안드로이드 핸드폰으로 실행 개발노트/Lib,Tip&Tech2011. 11. 20. 19:38

한동안 안하다 다시 하려니 머리가 초기화되어있다..
이래서 메모가 중요해..

1. 핸폰 제조사의 USB드라이버 설치한다.
갤럭시s2의 경우 아래 사이트에서..
http://www.samsung.com/sec/support/detail/supportPrdDetail.do?menu=SIA00201&prd_ia_cd=1903&prd_mdl_cd=SHW-M250SLKSC&prd_mdl_name=SHW-M250S&srchword=SHW-M250S+GALAXY+S+II

근데 통합usb드라이버가 안보일거다.. 오른쪽 구석탱이에 삼성에니콜 통합USB드라이버라고 있으니 잘 찾으시길.. 삼성 짜증나; 한참들여다봤네;;

2, 실행환경설정
해당 프로젝트 우클릭 - run as - run configration 누르신담에 바로뜨는 android탭에서 do nothing  클릭
그리고 옆에 target탭에서 manual 클릭 하고 run 버튼 누르시면 폰 이랑 지금 실행시켜둔 avd 나올거에요
 

3. 핸드폰 디버깅 모드
환경 설정 -> 응용프로그램 -> 개발 -> USB 디버깅 체크

ㅠㅠ 
 

'개발노트 > Lib,Tip&Tech' 카테고리의 다른 글

Eclipse에서 JAR 실행파일 만들기  (5) 2012.03.08
SWT Coolbar  (4) 2012.02.28
Android FaceBook api  (7) 2011.11.09
Sound source site  (6) 2011.03.28
무료 UML TOOL. StarUML  (6) 2011.03.28
:
Posted by windrises
2011. 11. 9. 08:40

Android FaceBook api 개발노트/Lib,Tip&Tech2011. 11. 9. 08:40





 페이스북에서 제공하는 API와 SDK를 사용하여 어플에 페이스 북을 쉽게 연동할 수 있습니다
이 기사에서는 안드로이드 설정과 소스코드부터 사용방법에 대해서 까지 자세하게 설명하고 있습니다



요약
 Facebook 기능을 자체 애플리케이션에 통합할 수 있습니다. 모바일 관점에서 Facebook Platform은 모바일 웹 애플리케이션용 API를 지원하고, iPhone, iPad 및 Android 플랫폼에 대해서는 기본 모바일 애플리케이션용 모바일 SDK를 지원합니다. 이 기사에서는 Facebook Platform API와 Facebook 모바일 팀에서 릴리스한 SDK인 Android용 Facebook SDK에 대해 알아봅니다.



목차

Facebook Platform API의 개요

Android용 Facebook SKD 소개

Android SDK 설치하기

Android용 Facebook SDK 설치하기

자체 애플리케이션 등록하기

샘플 애플리케이션
 - 애플리케이션 ID초기화 하기
 - 기본 화명 UI선언
 - ListView행 UI선언
 - 메뉴 항목 UI 선언
 - SampleApp 화면 레이아웃
 - 애플리케이션 초기화 하기
 - 메뉴 작성하기
 - 메뉴 선택 처리하기

Facebook 대화 상자 표시하기
 - Facebook 대화 상자 메소드
 - dialog() 메소드 호출 및 콜백 처리
 - 담벼락에 전송하기

사용자 권한 부여하기
 - 애플리케이션 키 해시 생성하기
 - 애플리케이션 키 해시 입력
 - 액티비티 결과 핸들러 정의하기
 - 권한 부여 메소드
 - 권한으로 authorize() 메소드 호출

Facebook API 요청 작성하기
 - 비동지거으로 요청 디스패치하기
 - 친구 목록 가져오기 요청 처리
 - 결과 표시하기 



좀더 자세한 설명과 소스코드 모두는 원문 기사로 가셔서 확인하실수 있습니다

아이비엠 디벨로퍼 웍스 : http://www.ibm.com/developerworks/kr
기사 원문 주소 : http://www.ibm.com/developerworks/kr/library/x-androidfacebookapi/index.html



아이베엠 디벨로퍼 트위터 보기 http://twitter.com/#search?q=ibmdw

'개발노트 > Lib,Tip&Tech' 카테고리의 다른 글

SWT Coolbar  (4) 2012.02.28
안드로이드 핸드폰으로 실행  (3) 2011.11.20
Sound source site  (6) 2011.03.28
무료 UML TOOL. StarUML  (6) 2011.03.28
JAVA OCR  (5) 2011.02.28
:
Posted by windrises