본문 바로가기

프로그래밍

(287)
플랫폼 make/ 모듈 추가 방법 테스트 라이브러리를 플랫폼에 추가하기안드로이드는 config.mk 에서 각 프로젝트별 android.mk를 뒤져빌드하는 형태로 구성되어 있다~ 안드로이드 플랫폼내에 모듈이나 어플리케이션을 추가시키기 위해별도의 mk 및 타겟 플랫폼 빌드환경을 구성하기에는 작업해야 하는 일이많고, 안드로이드에 특화된 시뮬레이터, 서명 등의 문제가 발생할 여지가 있다.(실제로 발생하는지는 모르겠다... -_-;) 아무튼 기 구성된 make 프로세스에 포함시켜 빌드하는게가장 편한 방법이기에 해당내용을 정리해 본다. ex) helloworld 라는 공용라이브러리 추가하기 1. 테스트 라이브러리를 위한 폴더명 설정 "helloworld"2. /frameworks/base/helloworld 폴더 추가(다른위치에 추가해도 됨)3. ..
커널 빌드하기 1. 툴체인 : 타겟 플랫폼에 맞게 바이너리를 생성하는 크로스 컴파일러 툴 모음필요한 타겟에 맞게 툴체인을 설치한다.http://www.codesourcery.com 이곳에서 제품목록에서 Sourcery G++ 중에무료인 Lite Edition 을 선택한다. 프로세서와 타겟 플랫폼별로 다운로드 할 수 있다. 압축을 풀고, 해당 폴더를 export 시킨다.걍 매번 구찮으면 ~/.bashrc 에 등록해버린다. 2. 커널 소스 다운로드생성하려는 폴더 위치로 이동.$ cd ~/mysource 최신버전의 커널 소스의 저장소를 클론(복사) 한다.2010.1월 현재 2.6.27 버전이 클론된다.$ sudo git clone git://android.git.kernel.org/kernel/common.git kerne..
서비스1 - 로컬서비스 ● 로컬 서비스 - 액티비티와 큰 차이없으나 UI 없이 백그라운드로 수행되는 객체.명시적으로 서비스 클래스를 통해 구동하는 것을 로컬 서비스,묵시적으로 액션 및 인텐트 필터를 사용하는 서비스를 리모트 서비스라 한다. 리모트 서비스에 대해서는 다음에 다룰 예정 ... -_-;; 헉헉 서비스 구동 :startService(new Intent(SampleActivity.this, SampleService.class)); 서비스 중지 :stopService(new Intent(SampleActivity.this, SampleService.class)); ● 샘플 : 로컬 서비스를 구동해 상태바에 알림문자 및 아이콘 보이기서비스를 백그라운드로 구동하면 해당 상태를 알기가 어려운데, 이런경우 Notification..
LayoutInflater를 사용해 레이아웃 구성하기 기본구조.LayoutInflater는 일종의 xml 파서이다.layout 을 위해 xml에 기술된 데이터를 파싱해서 ViewGroup을 생성하는 역할을 한다.파싱된 ViewGroup으로 하위 뷰들을 findViewById() 등을 통해 접근할 수 있게 된다. 1. 일단 메인 레이아웃을 읽어온다.LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE );ViewGroup mainLayout = inflater.inflate( R.layout.main_layout ); 2. 덧붙일 레이아웃을 읽어온다.ViewGroup subTitleLayout = inflater.inflate( R.layout.sub_t..
액티비티 변경 에니메이션 안드로이드 2.0 (api level 5) 부터 액티비티가 보여지고, 없어질때 뷰처럼 에니메이션을설정할 수 있다. 새로 추가된 메쏘드로 간단히 구현할 수 있는데... 음 점점 코더로 만들어 버리는 안드로이드 -_-;;Activity.overridePendingTransition( ); 사용법도 간단.startActivity(); 를 하고overridePendingTransition ( R.anim.new_activie, R.anim.old_activity ); 에니메이션이 설정되지 않은 경우는 새 액티비티는 오른쪽에서 슬라이드-인 되고,기존 액티비티는 왼쪽으로 슬라이드-아웃된다. 에니메이션은 기존 방식과 동일하게 res/anim 폴더에 xml로 작성하던가 Animation 객체를 생성해 사용해도 된다.
Animation 관련 샘플 alphatranslatescalelayoutAnimation 안드로이드 샘플 apiDemos에 포함된 에니메이션 관련 xml 들입니다.참고용도~~~ * 알파 : 서서히 나타나는 에니메이션으로 스플래시 윈도우나 뷰들을 자연스럽게 나타나고자할때 사용된다.(알파값을 반대로 하면 서서히 사라짐) * 이동 * 왼쪽으로 이동하며 서서히 나타남 * 왼쪽으로 이동하며 서서히 사라짐 * 위로 이동하며 나타나기 * 7번 흔들기 * 스케일 * 스케일 + 알파를 사용한 축소되며 사라지기 * 서서히 나타나며 원래 크기보다 커졌다가 원래크기로 돌아가는 에니메이션 * 레이아웃 에니메이션 : 레이아웃에 포함된 각 뷰들이 보여지는 에니메이션 설정
ViewFlipper로 뷰 교체하기 뷰플리퍼는 뷰를 한나씩 교체해주는 녀석이다. 플리퍼가 뷰를 교체할때setInAnimation() / setOutAnimation 메쏘드를 사용해 어떤 형태로 에니메이션 되면서교체할지 결정할 수 있다. setInAnimation()은 다음 뷰가 나타날때의 에니메이션.setOutAnimation()은 현재 뷰가 사라질때의 에니메이션. 1. 레이아웃구성플리퍼 객체를 만드고, 포함될 뷰들을 정의한다. 2. 에니메이션 구성res/anim 에 원하는 에니메이션을 구성한다.에니메이션 형태는 에니메이션 관련 포스트 내용 참조. 3. 코드 구성private ViewFlipper mFlipper;..mFlipper = (ViewFlipper) this.findViewById( R.id.flipper );mFlipper.s..
에니메이션 interpolater interpolator: 에니메이션이 일어나는 동안의 횟수,속도를 조절하거나 시작과 종료시의효과를 추가 할 수 있다.(점점 빨라지는 에니메이션, 종료시 스프링처럼 바운딩 되는 에니메이션 등..) 보통 안드로이드에 이미 정의되어 있는 "@android:anim/..." interpolator를 사용하나특정 값은 변경할 수 있다. 예 ) cycle_interpolator 의 반복수 변경 : res/anim/cycle_test.xml 구글 샘플 프로젝트animation > interpolators 텍스트 뷰를 좌에서 우로 에니메이션 시키는 예제.. 1. 레이아웃중 에니메이션 시킬 뷰와 부모 뷰를 얻는다.final View target = findViewById( R.id.target );final View p..