전체 글 42

13일차

- dependency 추가할 때 에러나던 이유 - app 안의 gradle 파일에 안 넣고 있었음 - 저번에 실패했던 file chooser 모듈도 다시 테스트해보자 -코루틴 적용 성공 stackoverflow.com/questions/45615474/gradle-error-could-not-find-method-implementation-for-arguments-com-android Gradle - Error Could not find method implementation() for arguments [com.android.support:appcompat-v7:26.0.0] I am trying to open existing android project in android studio and it ..

카테고리 없음 2021.01.30

12일차 - AsyncTask가 맞나?

- AsyncTask 관련 공부를 마치고 생각해보니 AsyncTask가 아니라 Service가 필요할 것 같은데... - 내가 구상한 앱은 앱이 실행되고 메인 액티비티가 열림과 동시에 새로운 파일이 있는지 체크, 체크 중일 때 왼쪽 메뉴의 새로운 파일항목에 로딩 아이콘으로 작업 진행 중임을 나타내고 싶음. - 그리고 작업이 완료될 시에 메뉴에 바로 몇 개의 새로운 파일이 추가됐는지 숫자로 업데이트. - 그런데 AsyncTask로 구현하면 메인액티비티에서 작업을 실행하다 메뉴에서 '새로운 파일' 항목을 누르면 액티비티가 새로 열리고 같은 작업을 또 수행해야된다. - Service에서 AsyncTask를 사용하여 다른 스레드에서 새로운 파일 추가 작업을 하되 실시간으로 UI를 업데이트할 수 있게끔 구현해보는..

12일차 - 스레드 공부 노트2

스레드와 스레드 통신 파일 복사 스레드의 진행 상태를 메인 스레드로 메시지형태로 전달하고, 메인 스레드에서는 그 값을 사용하여 현재 진행 상태를 화면에 표시하는 과정 안드로이드 스레드 통신. 핸들러 핸들러 : 안드로이드에서 사용할 수 있는 스레드 통신 방법 중 가장 일반적인 핸들러 4.1 메시지 메시지 : 전달할 데이터를 한 곳에 저장하는 역할을 하는 클래스 메시지 -> 핸들러 -> 메시지 큐 4.2 메시지 큐 메시지 큐 : 메시지 객체를 큐 형태로 관리하는 자료 구조, 앱의 메인스레드에서 기본적으로 사용되고 있음 메시지 전달은 핸들러를 통해서, 메시지를 꺼내고 처리하는 역할은 루퍼가 수행 4.3 루퍼 루퍼 : 메시지 큐로부터 메시지를 꺼내와 해당 메시지와 연결된 핸들러를 호출하는 역할 담당 메시지 처리..

11일차 - 스레드 공부 노트 1

스레드, 프로그램, 프로세스 1 프로그램과 프로세스 프로그램 : 컴퓨터에 의해 실행되는 명령과 데이터의 집합  저장 장치에 파일 형태로 저장 (하지만 테이프 같은 것도 사실 일종의 프로그램이다)  CPU에 의해 메모리로 로딩, 실행 컴퓨터 역사의 초기에는 컴퓨터가 동시에 하나의 프로그램만 실행 가능 운영체제가 프로그램의 실행을 담당하기 시작  하드웨어->프로그램 => 하드웨어->운영체제->프로그램  물리적 공간(디스크) -> 논리적 공간(메모리)  운영체제는 리소스 할당과 관리를 담당  하나의 프로그램을 동시에 여러 개, 여러 개의 프로그램을 동시에 실행 가능 프로세스 : 메모리에 로딩되어 실행 중인 프로그램 1.2 프로세스와 스레드 프로세스가 실행되면 자신의 코드 시작점부터 종료지점까지 순차..

10일차

오늘 한 것 - 스레드 공부recipes4dev.tistory.com/category/ANDROID%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/THREAD 'ANDROID 프로그래밍/THREAD' 카테고리의 글 목록 Recipes for Developer. recipes4dev.tistory.com 이 곳에 세세한 개념들을 잘 설명해놨다. 심심할때 마다 보며 익힐 것. - 오늘은 눈으로만 읽어보며 이해했지만 내일은 처음부터 다시보고 필기 완료하고 비동기 부분 마저 공부할 것 - 공부 완료후 실전 적용 가즈아

9일차 - 데이터 삽입 알고리즘 최적화

오늘 한 것 - 데이터베이스 메모리 누수 현상이 발생할 수 있는지 이제와서 알았다. close()로 SQLiteDatabase 랑 cursor의 사용이 끝날 때 매번 닫아줘야함. 예외처리로 처리하는 방법도 있다고 하지만 그냥 수동으로 일일히 닫아주는게 당장은 깔끔한듯. - 작업 수행 후 바로 닫으면 다음에 못 쓰니 어디서 닫을지 고민하다 그냥 onDestroy에서 닫기로 정함. 안드로이드 구글 문서에서도 onDestroy에서 사용하지 않는 자원 처리를 권고. stackoverflow.com/questions/12801602/android-sqlite-leaked Android SQLite leaked i having problem with sql handler A SQLiteConnection objec..

7일차 -정보 삽입, 태그 검색 기능 구현 성공 -> 한계점 다수 발견, 전반적 방향 수정

오늘 한 것 - 안드로이드 10 이상에서 listfiles()가 null을 리턴하는 문제 해결법 android:requestLegacyExternalStorage="true" 속성 추가 필요, 하위 버전에서 정상 동작하는지 나중에 테스트 필요 stackoverflow.com/questions/20714058/file-exists-and-is-directory-but-listfiles-returns-null File exists and IS directory, but listFiles() returns null The documentation for File.listFiles() suggests that null will ONLY be returned in the case that the file call..

6일차

오늘 한 것 - 파일 선택 외부모듈 활용 도전했으나 실패 (dependancy 문제가 해결이 안되어서 직접 패키지 자체를 수동으로 옮기는 것을 시도했으나 실패) - 폴더의 정보를 받아와 내용물 검사 가능 내일 할 것 - 파일의 정보를 데이터베이스에 삽입하기 - 파일이 동영상일 경우 비디오의 길이를 가져오기 - 그렇게 생성된 데이터베이스를 대상으로 태그 검색 시도 참고 github.com/hedzr/android-file-chooser#Acknowledges hedzr/android-file-chooser a lightweight file/folder chooser or picker. Contribute to hedzr/android-file-chooser development by creating an ..