안드로이드 키보드 입력 모드 설정.


안드로이드 키보드 Window soft input mode 설정.


1. 설정이 없는 경우 : adjustUnspecified 와 stateUnspecified 가 적용 된다.


2. adjustPan : 키보드가 올라오면 EditText에 맞춰 화면 UI가 실종 됩니다. (위 아래로 잘림)


3. adjustResize : 키보드가 올라와도 EditText와 UI가 화면에 보이도록 Activity를 resize 한다.


3. adjustUnspecified : 시스템이 알아서 상황에 맞는 옵션을 설정 한다. 키보드 조정에 대한 디폴트 값이다.


4. stateHidden : Acitivty 실행 시 키보드가 자동으로 올라오는 것을 방지 한다.


5. stateAlwaysHidden : Acitivty 실행 시 항상 키보드가 자동으로 올라오는 것을 방지 한다. (액티비티 이동 포함)


6. stateVisible : Acitivty 실행 시 키보드가 자동으로 올라 온다. (EditText에 포커스 맞춰짐)


7. stateAlwaysVisible : Acitivty 실행 시 항상 키보드가 자동으로 올라 온다. (EditText에 포커스 맞춰짐) (액티비티 이동 포함)


8. stateUnchanged : 키보드를 마지막 설정 상태로 유지 한다.


9. stateUnspecified : 키보드의 상태가 설정이 안된 상태이다. 시스템이 적절한 키보드를 상태를 설정해 주거나 테마에 따라 설정 해준다. 키보드 상태의 디폴트 값이다. 




출처: http://arabiannight.tistory.com/entry/277 [아라비안나이트]

Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

firebase 연동시 Firebase에 구글 계정 권한을 추가하여야 한다.


개헤맸네.

Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

안드로이드 Multidex


안드로이드는 하나의 앱이 가지거나 참조할 수 있는 총 메쏘드의 갯수가 65536개로 제한되어 있다.


이는 하나의 Dalvik Executable (dex) 파일이 참조하여 호출할 수 있는 최대 갯수이다.


혼자 뚝딱뚝딱 만들어보는 프로젝트라면 사실 별 상관이 없겠지만, android support library 나, 여러 오픈소스 library 를 추가하여 빌드할 경우, 이 갯수는 안전한 갯수가 아니고, 빌드 시 아래와 같은 에러가 발생할 수 있다.


UNEXPECTED TOP-LEVEL EXCEPTION:


com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536




구글에서는 이 문제를 해결하기 위해 세가지 방안을 제시하고 있다.


1. 경량의 라이브러리를 사용하거나 리팩토링을 잘 해서 메쏘드의 수를 줄일 것


2. Proguard 기능을 사용하여 사용하지 않는 코드를 없앨 것


3. Multidex 기능을 사용할 것




여기서는 Multidex 기능을 사용해서 문제를 회피하는 방법을 사용할 것이다.


Multidex 는 여러개의 dex 파일을 사용하도록 해서, 65536 개 이상의 메쏘드를 참조할 수 있도록 해준다.


gradle 파일에 아래와 같이 추가해주면 된다.


android {

    defaultConfig {

        ...

 

        // Enabling multidex support.

        multiDexEnabled true

    }

    ...

}


ART가 반영된 5.0 버전 (SDK Version 21) 이상에서는 위와 같이 사용하면 된다. 하지만 그 이전 버전이라면? 예를 들어 minSdkVersion 이 21 보다 작다면 구글에서 제공하는 multidex support library 를 사용해야 한다.


android {

    compileSdkVersion 21

    buildToolsVersion "21.1.0"

 

    defaultConfig {

        ...

        minSdkVersion 14

        targetSdkVersion 21

        ...

 

        // Enabling multidex support.

        multiDexEnabled true

    }

    ...

}

 

dependencies {

  compile 'com.android.support:multidex:1.0.0'

}


또, application 을 android.support.multidex.MultiDexApplication 을 상속받도록 구현한다.


Manifest 파일을 아래와 같이 고치거나,


<!--?xml version="1.0" encoding="utf-8"?-->


<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication">


    <application ...="" android:name="android.support.multidex.MultiDexApplication">


        ...


    </application>


</manifest>


Application 파일을 아래와 같이 수정한다.


public class MyApplication extends android.support.multidex.MultiDexApplicatoin {

// ...

}


Multidex Support Library 를 사용할 경우, 부작용이 하나 있는데, 빌드 속도가 상당히 느려진다. 짧게는 몇십초부터 길게는 수 분에 이르기까지 시간이 지연된다.


안드로이드 5.0 이상아리면 큰 문제가 없지만, 그 이전 버전을 지원하는 앱이라면 이는 속터지는 문제일 수 있다.


하지만 이는 별다른 수는 없는 것 같고, 그저 테스트시는 minSdk 를 21 이상, 릴리즈 시는 그 이전 버전으로 설정하는 수 밖에 없다. 


이는 Gradle 스크립트로 처리할 수 있지만, 확인해야 하는 단말의 OS 가 5.0 이전 버전이라면 확인하기 위해 오래 기다리는 수 밖에 없다.



출처: http://bbulog.tistory.com/41 [뿔로그]


Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부

안드로이드 생명 주기, 라이프 사이클 입니다.




1. 최초 실행시

  - onApplyThemeResource

  - onCreate

  - onStart

  - onPostCreate

  - onTitleChanged

  - onResume

  - onPostResume

  - finalize


# 액티비티 이동시(Intent 등)

  - onUserLeaveHint

  - onSaveInstanceState

  - onPause

  - onStop


3. 백키 클릭시

  - onActivityResult

  - onRestart

  - onStart

  - onResume

  - onPostResume


4. 종료시

  - onPause

  - onStop

  - onDestroy



Tip> Override 함수 별 추천 기능.

  - onResume : 데이터 호출 및 Binding.

  - onSaveInstanceState : 상태 변화 일시 저장(Preference).

  - onRestoreInstanceState : 상태 변화 저장값 호출(Preference).

  - onPause : 데이타 저장.

  - onStop : 스레드 종료 및 DB 연결 종료 및 메모리 해제.


감사합니다.

Posted by 경제/부동산/프로그래머/안드로이드/PHP/mysql/asp 당양부부
이전버튼 1 이전버튼

블로그 이미지
경제를 좋아하는 일산의 행복한 프로그래머입니다. 감사합니다.
당양부부
Yesterday54
Today26
Total113,516

달력

 « |  » 2018.10
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

최근에 달린 댓글

최근에 받은 트랙백

글 보관함