본문 바로가기
기타/DMZ

2011.09.27 Tacademy 안드로이드 7일차 메모

by ITPro 2011. 9. 27.

데이터베이스 웬만하면 사용하지 않고 애플리케이션의 요구사항을 적절히 파악하여 사용 여부를 결정한다. (XML이 빠름)

droidAtScreen 폰 화면 불러오는 파일

안드로이드 환경설정관리
android:dependency 다른 환경설정의 설정여부에 따라 활성화 비활성화 시킴

stream : 흐름
가장 먼저 source target 파악이 필요
통신을 위해서는 스트림(흐름)을 만들어야하고 스트림은 생성자를 통해 생성한다.

데이터의 종류에 따라서 소스, 타겟 클래스를 결정 지어야해야한다.

바이트 데이터는 1바이트씩 (InputStream / OutputStream)
캐릭터 데이터는 2바이트씩 (Reader / Writer)

바이트 파일 데이터에 최적화된 클래스는 FileInput/OutputStream

메모리에 존재하는 데이터에 최적화 된 클래스는  ByteArrayInput/OutputStream

스트림으로 불러온 데이터를 버퍼에 쌓아 두는 클래스는 BufferedInput/OutPutStream

캐릭터 파일 데이터에 최적화된 클래스는 FileReader/Writer
.
.
.

체이닝 = 여러 입출력 스트림을 연결

[zip 파일을 jar로 바꾸기]
FileInput/OutputStream으로 불러들이고 쓸경우 : 20메가 쓰는데 2분 넘게 걸렸음

BufferedInputOutputStream으로 체이닝 걸고 쓸 경우 : 20메가 쓰는데 1초 걸렸음
---BufferedInputStream(new FileInputstream());

버퍼 출력은 flush 해주는 센스

한쪽만 체이닝을 걸 경우 병목현상이 생김

네트워크 통신에서는 쓰레드로 분산하여 보내는것이 빠름


데이터를 읽는 레벨에 따라 2가지로 나뉨
로우레벨 스트림 = 커널단까지 내려가서 입출력 처리
하이레벨 스트림 = 직접적인 파일 입출력 기능이 없음 (BufferedReader 등등)

sdcard 위치는 기기마다 다르기 때문에 경로를 하드코딩하면 안된다.

 

반응형

바로가기