Ubuntu 에 jdk 1.7 설치하기

OS/Linux 2014.05.25 23:10 Posted by 파란크리스마스

출처 : Ubuntu 12.04에서 jdk 1.7 설치하기

JDK 1.7 설치

jdk 다운로드

$ tar zxvf jdk-7u55-linux-x64.tar.gz
$ sudo mv jdk1.7.0_55 /usr/lib

.bashrc 수정

$ vi ~/.bashrc

# Java Setting
export JAVA_HOME=/usr/lib/jdk1.7.0_55
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin

Eclipse 설치

Eclipse 다운로드

$ tar zxvf eclipse-standard-kepler-SR2-linux-gtk-x86_64.tar.gz
$ sudo mv eclipse /usr/lib

.bashrc 수정

$ vi ~/.bashrc

export PATH=$PATH:$JAVA_HOME/bin:/usr/lib/eclipse

Android SDK 설치

다운로드

$ tar zxvf android-sdk_r22.6.2-linux.tgz
$ sudo mv android-sdk-linux /opt

Name : ADT Plugin (임의로 편집가능)
Location : https://dl-ssl.google.com/android/eclipse/

Android NDK 설치

다운로드

$ tar xvf android-ndk-r9d-linux-x86_64.tar.bz2
$ sudo mv android-ndk-r9d /opt

.bashrc 수정

$ vi ~/.bashrc

export ANDROID_NDK_ROOT=/opt/android-ndk-r9d
export NDK_TOOLCHAIN_VERSION=4.6
export TOOLCHAIN=/opt/android-9-toolchain

export PATH=$TOOLCHAIN/bin:$PATH

ToolChain 만들기

$ sudo $ANDROID_NDK_ROOT/build/tools/make-standalone-toolchain.sh \
--toolchain=arm-linux-androideabi-4.6 \
--ndk-dir=$ANDROID_NDK_ROOT \
--install-dir=$TOOLCHAIN \
--platform=android-9


오류

DDMS files not found: /opt/android-sdk-linux/platform-tools/adb

eclipse가 ADT Plugin 설치 후 다시 시작하지 못하면서 Android SDK 관련 파일을 다운로드 받지 못해서 발생하는 오류

신고

Ubuntu 11.10 - PDK, NDK 설치

Programming/안드로이드 2013.09.27 11:18 Posted by 파란크리스마스

다운로드

http://old-releases.ubuntu.com/releases/oneiric/

NDK 다운로드

http://developer.android.com/tools/sdk/ndk/index.html

SSH 서버 설치
http://pirtaja.tistory.com/9

$ sudo apt-get install openssh-server
$ sudo /etc/init.d/ssh restart

jdk 1.6 설치 (Gingerbread and newer)
Installing Java6 JDK on Ubuntu 11.10

$ sudo add-apt-repository ppa:ferramroberto/java
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk sun-java6-plugin

.bashrc 내용 추가

# Java Setting
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export ANDROID_JAVA_HOME=$JAVA_HOME

Android PDK 빌드 환경 구축 (64Bit OS)
http://source.android.com/source/initializing.html
[Android/안드로이드] Ubuntu에서 E: Package 'lib32readline5-dev' has no installation candidate. 발생시 대처 방법.

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
  x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
  libxml2-utils xsltproc

Libx11-dev:i386 설치

$ sudo apt-get install libx11-dev:i386

repo 스크립트 다운로드
[Android/안드로이드] 64bit Ubuntu Android ICS Source 다운받기

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

저장소 초기화

$ sudo mkdir /opt/android-source
$ cd /opt/android-source
$ sudo chown test:test .            <-- 옵션
$ repo init -u https://android.googlesource.com/platform/manifest
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1

소스 내려 받기

$ repo sync

안드로이드 소스 전체빌드
[안드로이드] 안드로이드 소스 전체빌드 해보기
안드로이드 빌드하기

안드로이드 소스 빌드

$ cd /opt/android-source
$ make

빌드 오류 해결법

android build error 해결법
ICS Source download
slang_rs_export_foreach.cpp , error : variable ‘ParamName’ set but not used
Ubuntu 11.10 ics build error

make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1

$ vi build/core/combo/HOST_linux-x86.mk
#HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon_intermediates/GLDispatch.o] Error 1

$ sudo apt-get install mesa-common-dev

make: *** [out/host/linux-x86/obj/EXECUTABLES/llvm-rs-cc_intermediates/slang_rs_export_foreach.o] Error 1

$ vi frameworks/compile/slang/Android.mk
#local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror
local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/liboprofile_pp_intermediates/arrange_profiles.o] Error 1

external/oprofile/libpp/format_output.h 파일의 94번행

-   mutable counts_t & counts;
+   counts_t & counts;

make: *** [out/host/linux-x86/obj/EXECUTABLES/test-librsloader_intermediates/test-librsloader] Error 1

external/llvm/llvm-host-build.mk 내용 추가

+   LOCAL_LDLIBS := -lpthread -ldl

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libgtest_host_intermediates/gtest-all.o] Error 1

vi external/gtest/include/gtest/internal/gtest-param-util.h 내용추가

#include <cstddef>

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o] Error 1

vi external/mesa3d/src/glsl/linker.cpp 내용추가

#include <stddef.h>

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libmtp_intermediates/MtpDevice.o] Error 1

vi frameworks/base/media/mtp/MtpDevice.cpp 수정

-   int fd = ::open(destPath, O_RDWR | O_CREAT | O_TRUNC);
+   int fd = ::open(destPath, O_RDWR | O_CREAT | O_TRUNC, 0777);

Android NDK(C/C++) 설치

http://developer.android.com/tools/sdk/ndk/index.html

$ sudo mv android-ndk-r9-linux-x86_64.tar.bz2 /opt
$ sudo tar xvf android-ndk-r9-linux-x86_64.tar.bz2

.profile-ndk 파일 작성

export ANDROID_NDK_ROOT=/opt/android-ndk-r9
export NDK_TOOLCHAIN_VERSION=4.6
export TOOLCHAIN=/opt/android-9-toolchain

export PATH=$TOOLCHAIN/bin:$PATH

.profile-ndk 실행 (NDK 빌드시 사용)

$ chmod a+x .profile-ndk 
$ source .profile-ndk

ToolChain 만들기

$ $ANDROID_NDK_ROOT/build/tools/make-standalone-toolchain.sh \
--toolchain=arm-linux-androideabi-4.6 \
--ndk-dir=$ANDROID_NDK_ROOT \
--install-dir=$TOOLCHAIN \
--platform=android-9
$ sudo chown test:test -hR /opt/android-9-toolchain

신고

Android NDK - openssl 컴파일 하기

Programming/안드로이드 2013.04.03 10:40 Posted by 파란크리스마스

출처 : 안드로이드 c/c++ 개발환경 구축

Mac 환경에서 make-standalone-toolchain.sh 로 toolchain 사용해서 openssl 컴파일 해보았습니다.

컴파일 버전

openssl-1.0.1e.tar.gz

환경

Makefile 수정

추가

CROSS  = $(TOOLCHAIN)/bin/arm-linux-androideabi-
INCDIR = $(TOOLCHAIN)/sysroot/usr/include
LIBDIR = $(TOOLCHAIN)/sysroot/usr/lib

수정

CC= $(CROSS)gcc
AR= $(CROSS)ar $(ARFLAGS) r
RANLIB= $(CROSS)ranlib
NM= $(CROSS)nm

결과

테스트

Makefile

Makefile

-----------------------

libjson 파일컴파일

추가

CROSS  = $(TOOLCHAIN)/bin/arm-linux-androideabi-
INCDIR = $(TOOLCHAIN)/sysroot/usr/include
LIBDIR = $(TOOLCHAIN)/sysroot/usr/lib

수정

# Variables
prefix          = $(TOOLCHAIN)/sysroot/usr
exec_prefix     = $(prefix)
libdir          = lib
includedir      = include
srcdir          = _internal/Source
CXX             = $(CROSS)c++
AR              = $(CROSS)ar
PIC             = PIC
BUILD_TYPE      = "default"

신고

출처 : Android NDK FFmpeg 컴파일 강좌 (1/4)
Android NDK FFmpeg 컴파일 강좌 (4/4)
Android NDK FFmpeg 컴파일 강좌 (3/4)
Android NDK FFmpeg 컴파일 강좌 (2/4)
Android NDK FFmpeg 컴파일 강좌 (새로운 시도)
http://blog.daum.net/hopefullife/209
Android NDK Overview
Android NDK 빌드환경을 사용하지 않는 Makefile
Decoding audio via Android using FFMpeg
OpenMAX AL for ffmpeg
live-converter
read-only stream buffer interface in ffmpeg #1
FFmpeg port for Android ndk
android-ndk-r7 编译 ffmpeg-0.10
Android AudioRecord to FFMPEG encode native AAC
http://www.2cto.com/kf/201201/116171.html
http://pastebin.com/P02Fmw53
AndroidCompile

안드로이드펍에서 남은그루터기, 로봇시대 글을 보고, 컴파일 해보았는데, 작업해야될 부분이 많았어서,
인터넷에서 여러가지 글을 찾아보고, 간단하게 할 수 있는 방법을 찾아 보았습니다.

일주일 동안의 고생한 내용을 정리합니다. 안드로이드펍의 남은그루터기님과, 로봇시대님에게 감사한마음 글로나마 드립니다.

toolchain을 /opt/android-8-toolchain 설치하고, ffmpeg 폴더에 config.sh 파일을 아래와 같이 만들었습니다.
C 드라이브에 ffmpegtmp 폴더를 만들고, 남은그루터기님 처럼 configure 파일은 수정하지 않았습니다.

그리고, 남은그루터기님의 소스를 받아서 rtsp 주소로 실행하면 "Open Movie Error: -2" 라고 나오는데,
지원이 안되는 것으로 알고 있었는데, 프로젝트의 AndroidManifest.xml 파일에 인터넷 접근 권한을 추가 해야  되더군요.
2일이나 고생해서 찾았습니다.

config.sh 파일

export TMPDIR=c:/ffmpegtmp
export ANDROID_ROOT=/opt/android-8-toolchain

./configure --target-os=linux \
--arch=arm \
--enable-cross-compile \
--cc=$ANDROID_ROOT/bin/arm-linux-androideabi-gcc \
--cross-prefix=$ANDROID_ROOT/bin/arm-linux-androideabi- \
--extra-cflags="-marm -march=armv7-a -mfloat-abi=softfp -mfpu=neon" \
--extra-ldflags="-Wl,--fix-cortex-a8" \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-devices \
--disable-filters \
--disable-yasm \
--enable-network \
--enable-protocol=tcp \
--enable-demuxer=rtsp \
--enable-decoder=h264

남은그루터기님은 각라이브러리 폴더에 Android.mk을 만드셨지만,
config.sh 파일은 만들고 ./config.sh 실행하고 make 컴파일 실행하면,
각 라이브러리 폴더에 .a 파일로 파일이 생성됩니다.
jni 컴파일 할때도 이 라이브러리 파일만 참조 하시면 됩니다.

CPU별 --extra-cflags 추가 플래그

arm v6
    -marm -march=armv6

arm v7vfpv3
    -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a

arm v7vfp
    -mfloat-abi=softfp -mfpu=vfp -marm -march=armv7-a

arm v7n
    -mfloat-abi=softfp -mfpu=neon -marm -march=armv7-a -mtune=cortex-a8

arm v6+vfp
    -DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=armv6

컴파일

$ ./config.sh

$ make

BasicPlayer.c 수정 - 남은그루터기 소스 원본의 내용 일부

#include "avcodec.h"
#include "avformat.h"
#include "swscale.h"

수정된 소스

#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"

Application.mk

APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-8

Android.mk

# 참조
#      http://berabue.tistory.com/67
#      http://www.newsmth.net/bbsanc.php?path=%2Fgroups%2Fcomp.faq%2FMobileDev%2Fandroid%2FM.1315568907.n0&ap=275

# 컴파일하고자 하는 소스파일 위치를 알려줍니다. Android.mk를 jni에 놔두었으니 프로젝트/jni폴더가 됩니다.
LOCAL_PATH := $(call my-dir)

FFMPEGDIR := D:/Windows/cygwin/home/bluesanta/BluePlayer/jni/ffmpeg

# LOCAL로 시작하는것들을 초기화시킨다고합니다. LOCAL_PATH는 제외.
include $(CLEAR_VARS)

LOCAL_C_INCLUDES := $(FFMPEGDIR)

# List 'cpufeatures' in your list of static library dependencies
LOCAL_STATIC_LIBRARIES := cpufeatures

# 생성될 so파일명입니다.
LOCAL_MODULE    := libbasicplayer

# 컴파일할 소스파일을 추가합니다.  
LOCAL_SRC_FILES := Interface.c BasicPlayer.c

LDFFMPEG = -L$(FFMPEGDIR)/libavformat -L$(FFMPEGDIR)/libavcodec -L$(FFMPEGDIR)/libavutil -L$(FFMPEGDIR)/libswscale
LOCAL_LDLIBS    := $(LDFFMPEG) -lavformat -lswscale -lavcodec -lavutil -lz -lm -llog -ljnigraphics

# 공유 라이브러리를 생성합니다.
include $(BUILD_SHARED_LIBRARY)

# At the end of your Android.mk, import the 'android/cpufeatures'
$(call import-module,android/cpufeatures)

컴파일

$ ndk-build

신고

Android NDK - toolchain 사용 컴파일

Programming/안드로이드 2012.05.24 15:17 Posted by 파란크리스마스

출처 : http://stackoverflow.com/questions/9251747/record-rtsp-stream-with-ffmpeg-libavformat
http://limga.tistory.com/3
http://kaludin.egloos.com/2651893
http://dranger.com/ffmpeg/tutorial01.html
http://dc.csie.ntut.edu.tw/files/DC006lab.pdf
http://www.cantgetnosleep.com/wordpress/?p=111

main.c 파일

#include <stdio.h>

int main(int argc, char* argv[])
{
	printf("Hello Android NDK! \n");	

	return 0;
}

Makefile 파일

TARGET = hello

TOOLCHAIN = D:/Windows/cygwin/opt/android-8-toolchain

CROSS  = $(TOOLCHAIN)/bin/arm-linux-androideabi-
INCDIR = $(TOOLCHAIN)/sysroot/usr/include
LIBDIR = $(TOOLCHAIN)/sysroot/usr/lib

CC 	= $(CROSS)gcc
AR 	= $(CROSS)ar
LD 	= $(CROSS)ld
NM 	= $(CROSS)nm
RANLIB 	= $(CROSS)ranlib
STRIP = $(CROSS)strip

INCLUDE = -I. -I$(INCDIR) 

CFLAGS = -Wall
LDFLAGS = -nostdlib -Wl,--dynamic-linker,"//system/bin/linker" -L$(LIBDIR) -lc -lm -lstdc++ -ldl
#LDFLAGS = -static -lc -lm -lstdc++

# crt 
CRTOBJ = $(LIBDIR)/crtbegin_dynamic.o

# application file
APPSOURCES = main.c
APPOBJS = $(APPSOURCES:.c=.o)

# define the rule
.SUFFIXES:.c .o 

.c.o:
	@echo Compiling: $< 
	$(CC) -c $(CFLAGS)  $(INCLUDE) -o $@ $<

all: app

app: $(APPOBJS)
	@echo Linking: $(TARGET) 
	$(CC) -o $(TARGET) $(APPOBJS) $(CRTOBJ) $(LDFLAGS)
	$(STRIP) -s $(TARGET)

clean:
	@rm -vf $(APPOBJS) $(TARGET) 
	

테스트

 

신고

Ubuntu 12.04 - Android NDK 설치

Programming/Java 2012.05.20 22:51 Posted by 파란크리스마스

출처 : http://inmist.tistory.com/entry/%EC%8A%A4%ED%81%AC%EB%9E%A9Android-NDK-%EC%82%AC%EC%9A%A9%EB%B2%95
http://www.kkaneko.com/rinkou/js/andk.html
http://darkryu.egloos.com/m/3299369

NDK 다운로드

http://developer.android.com/sdk/ndk/index.html

NDK 설치

cd 다운로드
tar xvjof android-ndk-r8-linux-x86.tar.bz2
mv android-ndk-r8 ~/dev

NDK 환경 설정

echo 'export ANDROID_NDK_ROOT=/home/user1/dev/android-ndk-r8' | tee -a ~/.bashrc
echo 'export ANDROID_SDK_ROOT=/home/user1/dev/android-sdks' | tee -a ~/.bashrc
echo 'export PATH=$PATH:$ANDROID_NDK_ROOT:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools' | tee -a ~/.bashrc

ToolChain 만들기

sudo ~/dev/android-ndk-r8/build/tools/make-standalone-toolchain.sh --ndk-dir=/home/user1/dev/android-ndk-r8 --platform=android-8 --install-dir=/opt/android-8-toolchain
sudo chown user1:user1 -hR /opt/android-8-toolchain

echo 'export TOOLCHAIN=/opt/android-8-toolchain' | tee -a ~/.bashrc
echo 'export PATH=$TOOLCHAIN/bin:$PATH' | tee -a ~/.bashrc
echo 'export CC=arm-linux-androideabi-gcc' | tee -a ~/.bashrc

cygwin (참조용)
./make-standalone-toolchain.sh --ndk-dir=/opt/android-ndk --platform=android-8 --install-dir=/opt/android-8-toolchain

NDK 테스트 빌드

cd ~/dev/android-ndk-r8/samples/hello-jni/jni
ndk-build

컴파일 확인

NDK Sample 만들기 

기본 Sample을 사용하는 것이라서 HelloJni 입력하고, [Next] 버튼 선택

Target SDK를 Android 2.1로 선택하고, [Next] 버튼 선택

Package Name : com.example.hellojni
Create Activity : HelloJni

HelloJni.java파일를 NDK Sample 폴더에서 복사하거나, 아래와 같이 입력 한다

package com.example.hellojni;

import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;


public class HelloJni extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        /** 
         * Create a TextView and set its content.
         * the text is retrieved by calling a native
         * function.
         */
        TextView  tv = new TextView(this);
        tv.setText( stringFromJNI() );
        setContentView(tv);
    }

    /**
     * A native method that is implemented by the
     * 'hello-jni' native library, which is packaged
     * with this application.
     */
    public native String  stringFromJNI();

    /**
     * This is another native method declaration that is *not*
     * implemented by 'hello-jni'. This is simply to show that
     * you can declare as many native methods in your Java code
     * as you want, their implementation is searched in the
     * currently loaded native libraries only the first time
     * you call them.
     *
     * Trying to call this function will result in a
     * java.lang.UnsatisfiedLinkError exception !
     */
    public native String  unimplementedStringFromJNI();

    /**
     * this is used to load the 'hello-jni' library on application
     * startup. The library has already been unpacked into
     * /data/data/com.example.HelloJni/lib/libhello-jni.so at
     * installation time by the package manager.
     */
    static {
        System.loadLibrary("hello-jni");
    }
}

jni 폴더를 만들고, Android.mk, hello-jni.c NDK Sample 폴더에서 복사하거나, 아래와 같이 입력 한다.

Android.mk 파일

# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.c

include $(BUILD_SHARED_LIBRARY)

hello-jni.c 파일

/*
 * Copyright (C) 2009 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
#include 
#include 

/* This is a trivial JNI example where we use a native method
 * to return a new VM String. See the corresponding Java source
 * file located at:
 *
 *   apps/samples/hello-jni/project/src/com/example/HelloJni/HelloJni.java
 */
jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
                                                  jobject thiz )
{
    return (*env)->NewStringUTF(env, "Hello from JNI !");
}

NDK 빌드

cd ~/dev/workspace/HelloJni/jni
ndk-build

HelloJni 프로젝트를 refresh 해보면 libs/armeabi/libhello-jni.so 파일이 생성 된것을 확인 할 수 있다. 

실행

신고

Android - 일본어 TTS 설치 (SVOX 사용)

Programming/안드로이드 2011.07.04 14:15 Posted by 파란크리스마스
Android 에서 일본어 출력을 위해서 두가지 앱이 설치되어 합니다.

1. Classis Text To Speech - 무료
2. SVOX 일어 언어팩 - 2.99$

설치방법

1. 마켓에서 svox로 검색합니다.

2. 검색된 목록에서 Classis Text To Speech를 선택해서 설치합니다.


3. 다시 1번에서 검색목록에서 SVOX Japanese/日本을 선택해서 설치하십니다.


위에 2개의 앱을 설치 하셨다면 이제 환경 설정에서 TTS 엔진을 변경 하셔야 합니다.

환경설정

1. 환경설정에 들어 가셔서 음성 입력 & 출력을 선택합니다.


3. TTS(text-to-speech) 설정을 선택합니다.


4. SVOX Classic TTS의 체크 박스를 선택합니다.



5. 기본 엔진를 선택합니다.


6. 기본 엔진 목록에서 SVOX Classic TTS을 선택하시면 됩니다.



 

 

신고

Android - OpenCV

Programming/안드로이드 2011.06.27 01:25 Posted by 파란크리스마스
출처 : http://sotddi.tistory.com/tag/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%20opencv
http://triumphlsh.springnote.com/pages/6620993

1. cygwin 설치

Devel 확장 시킨후 gcc-core, gcc++, make, swig 를 선택하여 설치 한다.





2. Android NDK 설치

다운로드 : http://www.crystax.net/android/ndk-r4.php#download

C:\cygwin\home\[로그인계정] 폴더에
NDK파일(android-ndk-r4-windows-crystax-4.zip)을 다운받아서 압축을 푼다.


3. svn 클라이언트을 이용해서 opencv 파일을 내려받는다.

svn checkout http://android-opencv.googlecode.com/svn/trunk/


4. 빌드 환경 설정

C:\cygwin\home\[로그인계정]\.bashrc 파일 편집

export PATH=$PATH:/home/[로그인계정]/android-ndk-r4-crystax
export ANDROID_NDK_ROOT=/home/[로그인계정]/android-ndk-r4-crystax

 


5. opencv 컴파일




신고

Android - OpenCV

Programming/안드로이드 2011.06.27 01:25 Posted by 파란크리스마스
출처 : http://sotddi.tistory.com/tag/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%20opencv
http://triumphlsh.springnote.com/pages/6620993

1. cygwin 설치

Devel 확장 시킨후 gcc-core, gcc++, make, swig 를 선택하여 설치 한다.





2. Android NDK 설치

다운로드 : http://www.crystax.net/android/ndk-r4.php#download

C:\cygwin\home\[로그인계정] 폴더에
NDK파일(android-ndk-r4-windows-crystax-4.zip)을 다운받아서 압축을 푼다.


3. svn 클라이언트을 이용해서 opencv 파일을 내려받는다.

svn checkout http://android-opencv.googlecode.com/svn/trunk/


4. 빌드 환경 설정

C:\cygwin\home\[로그인계정]\.bashrc 파일 편집

export PATH=$PATH:/home/[로그인계정]/android-ndk-r4-crystax
export ANDROID_NDK_ROOT=/home/[로그인계정]/android-ndk-r4-crystax

 


5. opencv 컴파일




신고

Android - OpenCV

Programming/안드로이드 2011.06.27 01:25 Posted by 파란크리스마스
출처 : http://sotddi.tistory.com/tag/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%20opencv
http://triumphlsh.springnote.com/pages/6620993

1. cygwin 설치

Devel 확장 시킨후 gcc-core, gcc++, make, swig 를 선택하여 설치 한다.





2. Android NDK 설치

다운로드 : http://www.crystax.net/android/ndk-r4.php#download

C:\cygwin\home\[로그인계정] 폴더에
NDK파일(android-ndk-r4-windows-crystax-4.zip)을 다운받아서 압축을 푼다.


3. svn 클라이언트을 이용해서 opencv 파일을 내려받는다.

svn checkout http://android-opencv.googlecode.com/svn/trunk/


4. 빌드 환경 설정

C:\cygwin\home\[로그인계정]\.bashrc 파일 편집

export PATH=$PATH:/home/[로그인계정]/android-ndk-r4-crystax
export ANDROID_NDK_ROOT=/home/[로그인계정]/android-ndk-r4-crystax

 


5. opencv 컴파일




신고

Android - ListView / Custom ListView

Programming/안드로이드 2011.01.06 23:31 Posted by 파란크리스마스
ListView 제어를 MVC 모델처럼 BaseAdapter 의 getCount, getView, getItem을 구현하여
List를 보여주는 예제입니다.

ListViewTest.java

ListView를 listview 로 생성하여
BaseAdapter 상속 받아서 구현한 ArrayAdapterExample 객체를
listview.setAdapter()호출하여 listview의 adapter로 설정합니다.
package com.shryu.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

public class ListViewTest extends Activity implements OnClickListener {
	
  private TextView text; 

  private ArrayAdapterExample adapter;
	
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);
    
    LayoutInflater inflate = LayoutInflater.from(this);
    LinearLayout layout = (LinearLayout)inflate.inflate(R.layout.main, null);
    this.setContentView(layout); 
    
    text = (TextView)findViewById(R.id.TextView02); 
    
    ListView listview = new ListView(this);
    listview.setLayoutParams(new LinearLayout.LayoutParams(
    		LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT)); 
    layout.addView(listview);
    
    adapter = new ArrayAdapterExample(this, R.layout.list_item_1);
    listview.setAdapter(adapter);
  }

  @Override
  public void onClick(View v) {
    Button btn = (Button)v;
    text.setText(btn.getText());
  }
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:id="@+id/TextView02"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>
ArrayAdapterExample.java
package com.shryu.test;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;

public class ArrayAdapterExample extends BaseAdapter implements Filterable {

	private Context mContext; 
	private int mFieldId = 0;

	public ArrayAdapterExample(Context context, int textViewResourceId) {
		super();
		mContext = context;
		mFieldId = textViewResourceId;
	}

	@Override
	public int getCount() {
		return 100;
	}

	@Override
	public Object getItem(int position) {
		String result = new String(position+"");
		return result;
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		View v = convertView; 
		if (v == null) { 
			LayoutInflater vi = LayoutInflater.from(mContext); 
			v = vi.inflate(R.layout.list_item_1, null);
		}
			
		String value = (String)this.getItem(position); 
		if (value != null) { 
			TextView tt = (TextView) v.findViewById(R.id.TextView01);  
			tt.setText("position = " + value);                        
			Button btn = (Button) v.findViewById(R.id.Button01);  
			btn.setText(value + " 선택"); 
			btn.setOnClickListener((OnClickListener)mContext);    
		}
		return v; 
	}

	@Override
	public Filter getFilter() {
		return null;
	}
}
list_item_1.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
<TextView android:text="@+id/TextView01" 
	android:id="@+id/TextView01"
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content"/>
<Button android:text="@+id/Button01" 
	android:id="@+id/Button01"
	android:layout_width="wrap_content" 
	android:layout_height="30px"/>
</LinearLayout>
-end-
신고

android - scrollview

Programming/안드로이드 2010.12.25 18:16 Posted by 파란크리스마스

출처 : http://tigerwoods.tistory.com/12
http://vulpecula.tistory.com/3
http://nashorn.tistory.com/74
http://blog.vizpei.kr/94697746
http://www.jopenbusiness.com/tc/oss/entry/Android-ScrollView%EB%A1%9C-%ED%99%94%EB%A9%B4-%EC%8A%A4%ED%81%AC%EB%A1%A4-%EC%B2%98%EB%A6%AC
http://songdroid.blogspot.com/2009/12/linearlayout.html



main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>
ScrollViewTest.java

package com.shryu.test;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;

public class ScrollViewTest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        LayoutInflater inflate = LayoutInflater.from(this);
        LinearLayout layout = (LinearLayout)inflate.inflate(R.layout.main, null);
        this.setContentView(layout);
        
        //
        ScrollView sv = new ScrollView(this);
        sv.setLayoutParams(new RelativeLayout.LayoutParams(
             LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        layout.addView(sv);
        
        LinearLayout subLayout = new LinearLayout(this);
        subLayout.setLayoutParams(new LinearLayout.LayoutParams(
        		LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1.0f));
        subLayout.setOrientation(LinearLayout.VERTICAL);
        subLayout.setPadding(0, 0, 5, 0);
        sv.addView(subLayout);
        
        for (int i=0; i<20; i++) {
          TextView aa = new TextView(this);
          aa.setBackgroundColor(Color.BLUE);
          aa.setText("blue - " + i);
          subLayout.addView(aa);
         
          TextView aa2 = new TextView(this);
          aa2.setBackgroundColor(Color.BLACK);
          aa2.setText("black - " + i);
          subLayout.addView(aa2);
        }
    }
}

 
신고

Android 개발 환경 설치

Programming/안드로이드 2010.09.19 22:01 Posted by 파란크리스마스

출처
http://heny2kawmi.tistory.com/4
http://heny2kawmi.tistory.com/77

다운로드

1. Eclipse 압축풀기

eclipse-java-helios-win32.zip

C:\Android\eclipse 폴더로 압축을 푼다.

2. Eclipse의 실행할 JDK 설정(옵션)

C:\Android\eclipse\eclipse.ini 파일의 상단에 아래의 내용을 추가 한다.

-vm
C:/Android/jdk1.6.0_16/bin/javaw.exe

3. Android SDK 압축풀기

android-sdk_r07-windows.zip

C:\Android\android-sdk-windows 폴더로 압축을 푼다.

4. 환경변수 추가

Path 에 C:\Android\android-sdk-windows\tools 폴더 추가

5. Eclipse용 ADT(Android Development Tools) 플러그인 설치

5.1 Eclipse을 실행한다.

5.2 메뉴 [Help] > [Install New Software...]을 선택한다.



5.3 버튼 [Add...] 선택한다.



5.4 Add Repository 내용 입력

Name : ADT Plugin
Location : https://dl-ssl.google.com/android/eclipse

보안상 접속이 되지 않는 경우 : http://dl-ssl.google.com/android/eclipse 다시 시도 해본다.



5.5 Android DDMS, Android Development Tools 선택하고 버튼 [Next >]을 선택한다.



5.6 버튼 [Next >]을 선택한다.



5.7 라이센스 확인하고  버튼 [Finish]을 선택한다.



5.8 플러그인이 설치가 완료 되면 Eclipse 제시작한다.

6. Eclipse에서 Android SDK 경로 설정

6.1 Eclispe의 메뉴 [Window] > [Preferences]을 선택한다.

6.2 트리에서 [Android]를 선택한다.

6.3 버튼 [Browse...] 선택한다.



6.4 Android SDK가 설치된 경로를 선택한다.



6.5 버튼 [OK선택한다.

7. Android SDK의 Available Packages 설치 하기

7.1 Eclipse의 메뉴 [Window] > [Android SDK and AVD Manager]을 선택한다.



7.2 라이센스등의 하고 버튼 [Install]을 선택한다.



7.3 버튼 [Close]을 선택한다.



7.4 [Virtual Devices] 선택한다.



7.5 버튼 [New]을 선택한다.



7.6 위와 같이 입력한다.



7.7 추가된 [Hello_Android]을 선택하고 버튼 [Start...]을 선택한다.



7.8 버튼 [Launch]을 선택한다.

8. 실행된 Android 에뮬레이터 화면

- end -
신고


 

티스토리 툴바