본문 바로가기

전체 글110

[Ubuntu] CCACHE 설치하기 Ubuntu20.04 기준으로 작성되었습니다.ccache 설치sudo apt-get install ccache 심롤릭 링크 업데이트sudo /usr/sbin/update-ccache-symlinks ccache를 PATH 수정echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc PATH 확인source ~/.bashrc && echo $PATH environment 수정sudo gedit /etc/environment/usr/lib/ccache:를 맨 앞에 추가한다. 심링크를 걸기cd /usr/lib/ccachesudo ln -s ../../bin/ccache powerpc-tuxbox-linux-gnu-ccsudo ln -s ../../bin/c.. 2024. 6. 3.
[Android] scrcpy를 이용해 화면 녹화하기 scrcpy를 이용하면 Windows와 Linux 환경에서 안드로이드 디바이스를 미러링 할 수 있으며 화면 녹화도 가능하다.scrcpy를 이용한 화면 녹화의 장점:오디오 포커스를 잃어도 녹화가 중단되지 않음화면이 회전해도 녹화가 중단되지 않음 Linux 환경을 기준녹화 명령어scrcpy --record ~/Downloads/recording_$(date '+%Y%m%d_%H%M%S').mp4이 명령어를 실행하면 Downloads 폴더 안에 recording_20240522_105050.mp4과 같은 형식의 파일이 생성된다. 녹화 중단녹화를 중단하려면 Ctrl + C를 눌러 scrcpy를 중단하면 됩니다. 2024. 5. 22.
[Android] Coroutine을 이용해 AsyncTask 만들어 보기 [Android] Coroutine을 이용해 AsyncTask 만들어 보기 AsyncTask가 deprecated 되었지만 AsyncTask의 기능은 여전히 필요하다. 때문에 Coroutine을 이용해 AsyncTask와 똑같이 동작하는 CoroutineTask라는 클래스를 만들어 보았다. CoroutineTask는 추상 클래스로 생성하고 제네릭 타입으로 T1, T2를 받아 함수들을 처리한다. abstract class CoroutineTask { private var argument: T1? = null private var result: T2? = null } AsyncTask의 함수와 동일한 함수를 추상 함수로 선언했다. abstract class CoroutineTask { ... protecte.. 2024. 3. 20.
[Android] Android Studio를 이용해 SHA Key 구하기 [Linux Ubuntu] Android Studio의 Terminal로 이동 sudo apt install gradle gradle 이 설치되어 있지 않은 경우, gradle 설치 ./gradlew signingReport gradlew 실행 [Window] 보통 gradle이 설치되어 있기 때문에 바로 실행 ./gradlew signingReport 2024. 3. 6.
[Notion] 데이터 베이스 표 속성만 복제하기 Notion의 데이터 베이스 표를 이용해 매 달 작업을 정리하고 있는데, 한 달이 지날 때마다 표를 생성해줘야 한다, 문제는 새 표를 만들면 속성과 형식을 또 만들어 줘야 하고 기존 데이터 베이스를 연결하면 콘텐츠도 링크되어 변경 사항이 같이 반영되는 문제가 발생한다. 그래서 데이터 베이스의 콘텐츠를 제외하고 딱 속성만 복제하는 방법을 정리했다. 복제를 원하는 페이지로 이동 → 상단 오른쪽에 더 보기 버튼 클릭 → 복제 → 콘텐츠 제외 복제 클릭 복제될 페이지로 이동 → 잠깐 대기 → 페이지 2024년 1월 (1)로 복제 속성만 복제된 것을 확인 복제를 클릭한 후에 이동한 페이지에 복제가 되기 때문에 거기서 만들어 지면 옮기고 싶은 페이지로 옮기면 된다. 2024. 2. 2.
[Android] StatusBar 라이트 모드, 다크 모드 설정하기 Light Mode Activity에 getWindow().getInsetsController().setSystemBarsAppearance( WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS, WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS); getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.white)); 또는 themes.xml에 흰 바탕에 검은 글씨로 나옴 Dark Mode Activity에 getWindow().getInsetsController().setSystemBarsAppearance( 0, WindowInsetsController.. 2024. 1. 2.
[Android] 테마 변경 시 (onCreate, onDestory 대응) 테마 변경 시 생명주기 안드로이드 테마 변경 시 이미 생성된 액티비티를 onDestory ⇒ onCreate 해주는 재 생성 과정을 겪게 된다. 문제는 이 과정에서 데이터를 초기화하지 않으면 onCreate 중에 크래시 또는 데이터가 이상하게 나오는 현상이 발생한다. 따라서 테마 변경 시 onConfigurationChanged 함수에서 호출하는 방법에 대해 정리할 예정이다. 테마 변경 시 onConfigurationChanged 호출 하기 AndroidManifest.xml에 속성 추가 ... 위 속성이 추가되면 onConfigurationChanged 함수에서 관리할 수 있다. @Override public void onConfigurationChanged(@NonNull Configuration n.. 2023. 12. 18.
[Android] 설정에서 언어 변경(onCreate, onDestory 대응) 언어 변경 시 생명주기 안드로이드 설정 앱에서 언어를 변경한 경우 이미 생성된 액티비티를 onDestory ⇒ onCreate 해주는 재생성 과정을 겪게 된다. 문제는 이 과정에서 데이터를 초기화하지 않으면 onCreate 중에 크래시 또는 데이터가 이상하게 나오는 현상이 발생한다. 따라서 언어 변경 시 onConfigurationChanged 함수에서 호출하는 방법에 대해 정리할 예정이다. 언어 설정 시 onConfigurationChanged 호출 하기 AndroidManifest.xml에 속성 추가 ... 위 속성이 추가되면 onConfigurationChanged 함수에서 관리할 수 있다. @Override public void onConfigurationChanged(@NonNull Config.. 2023. 12. 18.
[Android] 멀티 윈도우 실행(onCreate, onDestory 대응) 멀티 윈도우 생명주기 멀티 윈도우를 작동하거나 빠져 나가면 이미 생성된 액티비티가 onDestroy ⇒ onCreate를 해주며 재 생성 된다. 문제는 이 과정에서 데이터를 초기화 하지 않으면 onCreate 중에 크래시 또는 데이터가 이상하게 나오는 현상이 발생한다. 따라서 멀티 윈도우 실행할 때 onConfigurationChanged 함수가 호출되는 방법에 대해 정리할 예정이다. 멀티 윈도우 대응하기 AndroidManifest.xml의 Activity에 속성 추가 .... configChanges 속성에 [screenSize|smallestScreenSize|screenLayout|orientation] 을 추가해 준다. 위 속성이 추가되면 onConfigurationChanged 함수에서 관리할.. 2023. 12. 18.