Fingerprint Authentication 지문인식 마시멜로 6.0에 등장

지문인증은 앱마다 각각 해줘야 함 

구글 샘플 FingerDialog / FingerprintDialog / AsymmetricFingerprintDialog 


비대칭 키 사용 tech16/FingerprintManagerCompatSample

1. 비대칭키 쌍 생성 2. 서버 쪽 공개키 등록 3. 사용자에게 지문인증 요청 

4. 사용자의 지문인증 5. 비밀키로 서명한 데이터 서버 전송 

6. 공개키 서명 데이터 검증


퍼미션 사용 android.permission.USE_FINGERPRINT


FingerprintManagerCompat


잠금화면에 보안락이 설정돼 있는가? KeyguardManager.isKeyguardSecure()

지문이 등록돼 있는가 FingerprintManager.hasEnrolledFingerprints()


ConfirmCredential 잠금화면을 앱 내에서 사용 가능 / 구글 샘플 동일이름

1. 키를 생성 2. 미인증 상태로 키에 액세스 예외 감지 인증 실행여부 선택 

3. 시스템에 인증처리 위임 4. 인증 결과 수신

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

인앱빌링 https://developer.android.com/google/play/billing/

Android Studio->Preferences->System Settings->Android SDK->SDK Tools->

Google Play Billing Library 설치


SDK/extras/google/play_billing에 IInAppBillingService.aidl 샘플과 테스트 앱 존재

file->openProject->import and android code sample->Trivial Drive 가능(깃허브도)


퍼미션 사용 추가 com.android.vending.BILLING

aidl은 main/aidl/에 추가


iab 처리 흐름

1. os버전에 따른 iab지원 확인 (IabHelper의 startSetup())

os2.2이상에서 google play 최신인가?

IInAppBillingService에 연결됐나? 연결됐다면 IAB3 지원하는가?

2. 결제 요청 (IabHelper의 launchPurchaseFlow())

3. 결제 응답 검증 (IabHelper의 handleActivityResult()) 공개키는 서버에 둘 것

4. 포인트 부여 서버에서 하는 경우가 많음

5. 소비 (IabHelper의 consume())


미처리 결제 확인 (IabHelper의 queryPurchases())


특정 상품의 ID를 지정해 결제 요청 정적 응답 단위 테스트

테스트 계정으로 결합 테스트(테스트 계정으로 등록)알파 or 베타 실제 기기만 가능

실제 결제 운영 테스트(알파 or 베타) 선불신용카드?나 잔고없는 체크카드 확인

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,
Rail 퍼포먼스 모델
https://developers.google.com/web/fundamentals/performance/rail
(웹의 Idle 제외) 

onCreate에서 StrictMode 사용
if(DEVELOP_MODE) //개발모드에서만 동작하도록
{ StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build()); }
병목현상 StrictMode로 확인 정책위반시 penaltyLog() penaltyDeath() 

프로파일러 간이 스스로 System.nanoTime() 

Traceview 안드로이드 모니터 cpu탭 스톱워치 클릭으로 기록 

Systrace 4.3이상(4.1) 플랫폼툴즈systrace 
$cd android-sdk/platform-tools/systrace
$python systrace.py —time=10 -o /tmp/mynewtrace.html sched gfx view wm 
--app com.github.advanced_android.newgithubrepo
systrace도움말 https://developer.android.com/studio/command-line/systrace 

lint 레이아웃 최적화 lint --show 검사항목 리스트 
레이아웃 오른쪽 클릭->Inspect Code실행 

개발자 옵션 오버드로 활성화 

hierarchyviewer 에뮬레이터나 루팅단말이나 viewserver 도입 
https://github.com/romainguy/viewserver 

안드로이드 모니터 메모리 감시 

LeakCanary를 이용해 메모리 누수 방지 릴리즈와 테스트는 동작안함
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.3.1'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1'
testImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1'
releaseCompile '~~.leakcanary-android-no-op:1.3.1'(no op아무것도 하지않음)
application onCreate에서 LeakCanary.install(this); 
fragment는 RefWatcher 사용 refWatcher = LeakCanary.install(this);
application.refWatcher; 
 
HashMap 대신 ArrayMap SimpleArrayMap 사용해 메모리 최적화
오토박싱(int->Integer)을 피하기 위해 

HashMap 대신 SparseArrayCompat사용 LongSparseArray도 존재


블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,