슈퍼드로이드 카페의 안드로이드 강좌가 책으로 나왔습니다.
도서명 : 이것이 안드로이드다.
도서링크 : http://www.yes24.com//24/goods/13950202
================================================================================================
4. raw(가공되지 않은) 리소스
해당 리소스에는 어떤 파일이든지 넣을 수 있다.
일반적으로 Audio,Video 등의 원본 파일을 많이 넣는다.
(하지만 특정 파일을 넣어야 한다는 규칙과 특성은 없다.)
아래는 여러가지 format의 파일을 리소스에 추가한 내용과
R.java에 추가된 내용이다.
테스트를 위해 아래의 "text_test.file.txt" 리소스를 한번 사용해 보겠다.
아래와 같이 Layout에 TextView를 하나 만들고 TextView에 해당 리소스 내용을 출력하겠다.
아래에 소스를 추가 하였다.
실행해 보도록 하자.
정상적으로 내용이 출력되었다.
본 소스는 아래의 첨부파일을 참조하자.
5. asset 리소스
asset 리소스는 raw 리소스와 유사하다.
asset에도 어떤 파일도 담을 수 있는 것이다.
하지만 명확한 차이점은 존재한다.
아래를 보자.
해당 asset resource는 res 폴더내에 존재하는 것이 아니라,
res 폴더와 동등한 위치에 존재한다.
왜 그럴까?
아래에서 asset 리소스에 이전에 사용하였던 text 파일을 하나 추가 하였다.
자세히 보자.
첫번째로 assets 하위에 또 다른 폴더를 두었다.
두번째로 assets 리소스를 추가 했음에도 불구하고 R.java에 리소스 ID가 추가 되지 않았다.
이 것이 assets 리소스의 가장 큰 차이다.
전체 리소스를 컴파일하고 R.java를 생성해 주는 AAPT(Android Asset Packaging Tool)는
res 폴더내에 존재하는 리소스들만 R.java에 ID를 추가해 준다.
그렇다면 assets 리소스는 ID가 없이 어떻게 접근할까?
assets 리소스는 우리가 일반 파일을 접근할 때 파일의 경로로 접근 하는 방법과
같은 방식을 사용한다.
즉 "/assets" 를 시작으로 경로를 붙여 접근하는 것이다.
그러므로 "/assets" 하위에 또 다른 폴더 들을 생성할 수 있고 접근이 가능한 것이다.
res 폴더의 하위 고정정인 폴더 (drawable, values, layout...)에서는 하위로
폴더를 추가할 수 없다.
assets 리소스는 파일로 처리하는 각종 API에서 사용는 것이다.
아래에서 assets 리소스를 사용해 보도록 하자.
위의 소스를 보면
일반 리소스를 참조할 때 Resource 객체를 이용하지 않고
AssetManager를 이용하여야 하는 것에 주의하자.
본 소스는 아래를 참조하자.
!!! 위의 주제에 해당하는 적당한 예를 댓글로 남겨 주세요. ^^
활용 방안의 예는 다른 개발자들에게 많은 도움이 됩니다.
!!! 카페의 활성화를 위해 추천 버튼을 눌러 주세요.
댓글
댓글 리스트-
답댓글 작성자슈퍼성근 작성자 본인 여부 작성자 작성시간 14.09.16 고맙습니다.
-
작성자춘춘 작성시간 14.01.07 분리라면 byte단위로 쪼개서 하나로 합쳐서 사용하는 방식을 사용해야하는건가요?
-
답댓글 작성자슈퍼성근 작성자 본인 여부 작성자 작성시간 14.09.16 1M 제한이 이제 없어진듯 합니다.
따라서 분리할 필요가 없어졌네요. ^^;
오해가 있을 것 같아 강좌에 해당 내용을 제거하였습니다. -
작성자으헝헝 작성시간 14.09.16 요런 차이점이 있었군요 매번쓰면서도 확실히몰랐던 부분 ㅠ
-
답댓글 작성자슈퍼성근 작성자 본인 여부 작성자 작성시간 14.09.16 감사합니다. ^^