반응형

Android 13

[APK] debug release apk 사인 키 설정

[app] build.gradle signingConfigs { debug { storeFile file('KEY스토어파일경로') storePassword "KEY스토어패스워드" keyAlias "KEY별칭" keyPassword "KEY패스워드" } release { storeFile file('KEY스토어파일경로') storePassword "KEY스토어패스워드" keyAlias "KEY별칭" keyPassword "KEY패스워드" } } buildTypes { debug { signingConfig signingConfigs.debug } release { signingConfig signingConfigs.release minifyEnabled false proguardFiles getDefaul..

카테고리 없음 2020.06.23

[암/복호화] 로그인 시 암호화 (AES256/MD5Hash/CBC/PKCS5 패딩)

0. 로그인 시에 암/복호화를 처음으로 적용해보았다. 1. 프로세스 1) 암복호화 키 생성: byte[] 키 생성 2) 암호화(AES256) - password (1) byte[] 키를 MD5해시 -> 키값의 명세 객체 생성 (AES256) && AlgorithmParameterSpec 객체 생성 (2) Cipher를 이용해 암호화 진행 3) RequestUser 로 서버와 통신 생각보다 간단하다! 2. 코드 1) 암복호화 키 생성: byte[] 키 생성 - 나의 경우에는 "서버와 약속한 키"에 "timeStamp"를 조합해 암복호화 키를 생성했다. public void init(String timeStamp) throws UnsupportedEncodingException { this.timeStamp..

Language/JAVA 2020.06.02

[debug] Room Database / SharedPreferences 디버깅

Room Database / SharedPreferences 디버깅 app.gradle //debug debugImplementation 'com.amitshekhar.android:debug-db:1.0.6' run하면 Logcat에 아래와 같은 로그가 뜬다. 위 주소로 접속하면 DB를 UI로 볼 수 있는데, 접속이 안될 때는 포워딩을 해 줘야 한다! adb adb forward tcp:8080 tcp:8080 짜잔! UI로 DB와 SharedPreferences를 볼 수 있다! 참고 https://medium.com/harrythegreat/android-room-database-%EB%94%94%EB%B2%84%EA%B9%85%ED%95%98%EA%B8%B0%EC%A2%8B%EC%9D%80-%EB%..

Platform/Android 2020.04.14

[Jetpack] 0. 개요

Jetpack JetPack전체 JetPack 아키텍처 ViewModel UI controller의 데이터를 캡슐화하여 구성이 변경되어도 데이터를 유지하게 하기 위해 ViewModel이 나타난 이유 데이터가 Activity에 종속적이여서 데이터 관리의 힘듦 ex) configuration change가 일어났을 때 데이터 사라짐 -> simple data의 onSaveInstanceState()를 써서 bundle에 저장한 후, onCreate()에서 불러다 쓴다. 한계) 적은 양의 데이터에만 적합(serialized 되는): 많은 양의 UserList나 BitmapList에 적합 X 역할분리: Activity/Fragment는 UI데이터를 보여주고, 사용자애션에 반응하고, OS communication..

Platform/Android 2020.04.03

[AAC] ViewModel | LiveData

ViewModel 왜 사용해 ? Activity, Fragment 생명주기에 따른 데이터 손실? 관리가 어려워서, 개발자들이 힘들었었다.(= 액티비티에 종속된 UI데이터를 유지하는 것이 힘듦) EX. 가로 ↔ 세로 화면 전환, 앱이 background에 있을 때, 메모리관리/부족 등으로 액티비티를 종료하고 다시 시작하는 경우가 있기 때문에 데이터 관리가 어려웠다. Ex. 여러 Fragment에서 데이터를 공유하려면, 공유하는 하나의 Activity에 데이터를 종속시키고 관리해야 했다. -> Activity의 생명주기에 데이터가 종속됨! 그 이전의 해결책 onSaveInstanceState() -> 직렬화할 수 없는 객체는 저장 X (많은 데이터를 저장하기 위해 디자인 되지 X) Retained Fragm..

Platform/Android 2020.03.18

[Class]

Paraclable 직렬화 interface Serializable보다 Andriod에서 훨씬 빠른 속도를 보여줌 Parcelable.Creator non-null static 필드(필수) Parcel로 부터 값을 읽어 오기 위해서는 Parcelable.Creator Interface 가 필요 public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { @Override public WorkConfig createFromParcel(Parcel source) { return new WorkConfig(source); } @Override public WorkConfig[] newArray(int size) { return new ..

Platform/Android 2020.03.17
반응형