2022년 1월 21일 금요일

2022년 1월 20일 목요일

How to generate .jks file with .pk8 and .pem

$ openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
$ openssl pkcs12 -export -in platform.x509.pem -inkey platform.pem -out platform.p12 -password pass:android -name platform
$ keytool -importkeystore -deststorepass android -destkeystore platform.jks -srcstoretype PKCS12 -srcstorepass android -srckeystore platform.p12

ValueAnimator 를 이용한 애니메이션 만들기

sequence images 를 사용해서 애니메이션을 표현해야 할 때가 있습니다.
기존에는 AnimationDrawable을 사용해서 애니메이션을 만들었는데 사용하기 쉬운 반면
이미지가 커지면 로딩하는데 시간이 오래 걸리는 단점이 있습니다.
고민 하던 중에 ValueAnimator를 이용해서도 애니메이션을 만들 수 있다는 것을 알았고
이것은 이미지 개수나 사이즈에 상관없이 바로 수행이 되는 장점이 있습니다.

1. ValueAnimator valueAnimator = ValueAnimator.ofInt(valueStart, valueEnd).setDuration(duration);
ValueAnimator는 정해진 duration동안 onAnimationUpdate()를 호출하는데 parameter로 valueStart 부터 valueEnd 사이의 값을 넘겨줍니다.

2. onAnimationUpdate() 내에서 value값에 해당되는 imageview의 리소스를 교체해 줍니다.

3. 예제는 1초 동안 0~99의 값을 onAnimationUpdate()를 통해서 넘겨줍니다.
100개의 이미지가 있고 이것을 1초동안 play하기를 원한다면 이미지들을 배열로 만들어서 해당 value에 맞는 리소스를 교체해 주면 됩니다.

Android adb 명령어

1. screen capture
ex) adb shell screencap -p /sdcard/screen.png

2. 특정 기기 선택
ex) adb -s devicename shell screencap -p /sdcard/screen.png

3. broadcast
adb shell am broadcast -a packagename --ei key value --es key value
ex) adb shell am broadcast -a com.android.test
ex) adb shell am broadcast -a com.android.test --ei event 1 --es name "john snow"

4. 화면 이동
ex) adb shell am start -a android.settings.SETTINGS
ex) adb shell am start -a android.settings.BLUETOOTH_SETTINGS
ex) adb shell am start -n com.android.car.carlauncher/.AppGridActivity

5. display 선택
adb shell am start -a activity --display number
ex) adb shell am start -a android.settings.SETTINGS --display 0

6. app 삭제
ex) adb shell pm uninstall --user 0 com.android.test

7. key event 전달
ex) adb shell input keyevent 4

[Reference]
https://developer.android.com/studio/command-line/adb

2022년 1월 19일 수요일

Android Timer 관련 정리

1. 일정 시간마다 작업하기를 원할 때
Timer와 TimerTask를 이용한 반복 작업 구현.
아래 예제는 15초 동안 5초마다 한번 씩 작업하는 예제
2. 일정 시간마다 작업하기를 원할 때
CountDownTimer를 이용한 반복 작업 구현.
아래 예제는 10초 동안 0.5초마다 한번 씩 작업하는 예제
3. 일정 시간 후에 한 번 원하는 작업을 하고 싶을 때
아래 예제는 1초 후에 한번 작업하는 예제