Android 개발 관련 정리 및 Tip 모음.
1. signing key 확인
signing key 파일과 apk 가 같은 key 인지 확인할때 아래 명령어 사용
1.1 signing key fingerprint 확인
keytool -list -keystore xxx.jks
1.2 apk fingerprint 확인
keytool -list -printcert -jarfile xxx.apk
위 2가지의 fingerprint 같으면 동일한 key 로 서명이 된것임.
2. Log
Log 출력시, line, method name 포함하여 보여준다.
아래와 같은 식으로, level 별로 각각 만들면 됨.
LOGV_TAG 는 기존 로그와의 호환을 위해 사용.
Log.java
public class Log {
public final static String TAG = "InputCommonTagName";
public static final boolean LOGV = true;
static final boolean LOGV_TAG = true;
static int mLine=0;
static String mName="";
static String mPkg="";
public static void v(String logMe) {
if(LOGV) {
StackTraceElement[] stack = (new Throwable()).getStackTrace();
mLine = stack[1].getLineNumber();
mName = stack[1].getMethodName();
mPkg = stack[1].getFileName();
android.util.Log.v(TAG, ""+mPkg+", "+mLine+" line, "+mName+"(), "+logMe);
}
}
public static void v(String tag, String logMe) {
if(LOGV_TAG) android.util.Log.v(tag, logMe);
}
}
3. Live Templates 연동 (Android Studio)
File -> Settings -> Editor -> Live Templates -> AndroidLog
Add -> 적당한 이름 추가.
3-1. method 에 parameter 같이 출력하기.
3-1-1. android.util.Log 사용시
Template text :
Log.d("TAG_NAME", "$CLASS_NAME$ : $METHOD_NAME$()" : $content$);
$content$ 에 대한 Edit variables 작성 (그림 참고)
groovyScript("def params = _3.collect {it + ' = [\" + ' + it + ' + \"]'}.join(', '); return '\"' + _1 + ' : ' + _2 + '()' + (params.empty ? '' : ' : ' + params) + '\"'", className(), methodName(), methodParameters())
3-1-2. 2번의 Log 사용시
Log.d($content$);
groovyScript("def params = _1.collect {it + '=\"+'+it}.join('+ \"'); return '\"' + (params.empty ? '' : params)", methodParameters())
or
groovyScript("def params = _1.collect {it + ' = [\" + ' + it + ' + \"]'}.join(', '); return '\"' + (params.empty ? '' : params) + '\"'", methodParameters())
3-2. return value 같이 출력하기
3-2-1. android.util.Log 사용시
Template text :
Log.d("TAG_NAME", "$CLASS_NAME$ : $METHOD_NAME$() returned: " + $result$);
$content$ 에 대한 Edit variables 작성 (그림 참고)
variableOfType(methodReturnType())
3-2-2. 2번의 Log 사용시
Log.d("returned : $result$=" + $result$);
$result$ 에 대한 Edit variables 작성
variableOfType(methodReturnType())