■ Android

[안드로이드] Android를 처음 시작하려는 분께 선별한 암기사항 (2)

해당 포스팅은 안드로이드를 처음시작하지만 프로그래밍 언어에 대해 어느정도 아시는 분을 위해서 작성되었습니다.
아주 기본적인 내용입니다.

 

1. inflate : XML레이아웃을 aapt를 활용하여 파싱후 View객체로 변환시키는 것.

2. 리소스 : 안드로이드에서 리소스란 코드가 아닌 모든 데이터를 의미. (이미지, XML 등등)

3. Context : Activity는 Context의 서브클래스이다.

4. Getter / Setter 설정 (안드로이드 스튜디오기준) : Preferences -> Code Style -> Java -> Code Generation -> Naming에서 field, static field등에 접두어를 입력함 -> Control + Enter (맥기준) -> 선택.

5. onCreate : onCreate는 액티비티 생성시 OS에서 호출하고 필수 번들을 먼저 설정해야 하기 때문에 반드시 super클래스의 생성자를 제일 먼저 호출해야한다. 다른 생명주기 관련 메소드는 상관없음.

6. 액티비티생명주기 심화 : 액티비티 생명주기에서 Stashed(보존)라는 상태가 있다. 이는 OS가 임의로 오래되거나 필요없는 액티비티를 제거하는데, 이때 완전히 제거 하는 것이 아니고 “액티비티레코드”란 곳에 해당 액티비티의 주소값을 들고 언제든 되살릴수 있도록 만든다. 현재 액티비티가 액티비티레코드에 저장된 상태를 Stashed상태라고 한다. 이때는 onDestory가 호출되지 않는다. 따라서 번들객체를 위해서 onSaveInstanceState() 메소드를 오버라이딩 하고, onPause()에서 그밖에 어떤 처리를 한다.

7. 액티비티 생명주기 :

 

41

 

안드로이드는 로봇이다. 그래서 딱 만들어 놓으면 멈춰진 상태이다. (stopped) 이후 로봇을 시작(start)시킨다. 하지만 이놈은 구글이 만들어 거만해서 그런지 한번 바로 멈춰버린다. (paused, 밀당의고수) 그리고 잘 달래서 “다시좀잘해바” 라고 말해야(resume) 드디어 구동된다. 정지는 이것을 반대로 하면 된다.

 

8. 런타임 구성변경 : 화면전환, 언어변경 등 실제 디바이스가 새로 어플을 위해 새로 로드해야할 필요가 있는 액션들. 이때 onDestroy()가 호출되고 다시 onCreate가 호출된다.

 

9. onSaveInstanceState() : onPause, onStop, onDestroy 전에 호출.

 

10. startActivity() : 액티비티를 새롭게 시작시키는 함수이다. 이때 함수를 실행한 액티비티는 OS에 Activity Manager에 액티비티를 보낸다. 그리고 Activity Manager는 Intent정보를 통해 올바른 신규 액티비티를 실행시킨다. (즉 앱내에서 바로 실행하는 것이 아니고 OS 를 한번 거친다.) 이렇게 하는 이유는 다른앱과 액티비티를 연동 혹은 공유하기 위해서이다.

 

11. Intent Extra : Intent에 데이터를 전달할때 사용한다. (k-v 형태) 호출하는 액티비티가 데이터를 다른 액티비티에 넘길때 필요한 데이터를 넣기 위해 사용. 보통 패키지 이름을 사용하여 다른 앱과의 충돌을 피한다.

 

12. startActivityForResult() : 새로 만들어진 액티비티로부터 호출하는 액티비티가 결과값을 받을 필요가 있을때 사용.

 

13. setResult() : 신규 액티비티가 호출한 액티비티에 결과값을 보내기 위해 사용.

 

14. onActivityResult() : 해당 메소드를 오버라이딩 하여 신규액티비티를 호출한 기존액티비티에서 결과값을  이용할 수 있다.

Standard
■ Android

[안드로이드] Android를 처음 시작하려는 분께 선별한 암기사항

해당 포스팅은 안드로이드를 처음시작하지만 프로그래밍 언어에 대해 어느정도 아시는 분을 위해서 작성되었습니다.
아주 기본적인 내용입니다.

 

1. 위젯 : User Interface를 위한 모든 구성요소. 모든 위젯은 View 클래스의 인스턴스 이거나 View의 서브클래스 중 하나의 인스턴스다. 즉 화면에 보여지는 요소를 위젯이라고 보면된다.

 

2. 위젯속성 : android:layout_* : layout_로 시작하는 것은 레이아웃의 속성이다. 즉 ViewGroup을 상속받은 위젯들만 갖고 있는 속성이다. 이밖에도 다양한 속성이 있으며 이러한 속성들로 인해 화면구성요소의 시각적인 것을 조작할 수 있다.

 

3. ‘@’의 의미 : 안드로이드의 레이아웃을 위한 XML에서 @를 갖고 있으면 상수를 참조하는 것이다. 그리고 @+로 시작하면 즉석으로 상수를 추가한다는 의미이다. (@id+, @+id가 안드로이드를 처음 코딩할시 헷갈렸는데, @+ 이렇게 기호들이 먼저 다오고 id라는 식별자가 온다고 생각하면 된다.)

 

4. 리스너 : 안드로이드에서 사용하는 일종의 콜백리스너이다. 여러가지 이벤트가 발생할때 해당 리스너로의 콜백함수가 호출된다. 여러가지 방식이 있지만

btn.setOnClickListener(new View.OnClickListener() {   
    @Override
    public void onClick(View v){
        // todo
    }  
});

의 형식을 선호함. (간단하고, 구현을 원하는 곳에 배치하며, 작명을 위해 고민하지 않아도 되기 때문.)

 

5. 토스트 : 웹에서 alert가 있다면 안드로이드에서는 토스트가 있다. 간단한 코드니 반드시 암기하고, 래핑해 놓을것.

Toast.makeText(Activity.this, msg, Toast.LENGTH_SHORT).show();

 

6. 빌드 절차 : 제일 처음 메니페이스 파일과 함께 Asset Packaging Tool (aapt)가 리소스들을 컴파일한다. (이때 XML의 경우 따로 객체가 될수있도록 컴파일한다. 오히려 파싱이랑 더 비슷함.) 다음으로 자바파일을 (*.java) 자바 바이트 코드로 변환(*.class)하고 달빅 JVM코드로 컴파일 한 이후 달빅 바이트 코드인 덱스 파일로 변환(*.dex) 이후 빌드와 서명을 거쳐 안드로이드 어플리케이션 파일(*.apk) 이 만들어 진다. (aapt는 일종의 파서 프로그램임.)

 

7. 서명 : 다바이스로 바로 보낼땐 Debug Key, 구글플레이로 보낼땐 Public Key를 생성.

Standard