본문 바로가기

안드로이드/고급

[PAAD] 2장 시작하기 정리


inflation(인플레이트) 
: XML 레이아웃에 정의된 내용을 분석하여 해당 xml이 표현하고 있는 View 객체들로 구성된 실제 트리로 변환하는 작업

코드 레이아웃 템플릿

 public class TestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       
       
        // 직접 TextView의 인스턴스를 생성합니다. 파라미터는 Context입니다.
        TextView myTextView = new TextView(this);
        myTextView.setText("Hello World, HelloWorld by code.");
       
        LinearLayout.LayoutParams textViewLP; // TextView의 레이아웃 파라미터를 생성합니다.
        textViewLP = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,  // 넓이는 꽉 채웁니다.
                                                   LayoutParams.WRAP_CONTENT); // 높이는 텍스트 내용의 크기입니다.
       
        LinearLayout ll = new LinearLayout(this); // 액티비티 전체 루트 레이아웃인 LinearLayout 객체를 생성
        ll.setOrientation(LinearLayout.VERTICAL); // 방향은 세로 방향으로 자식 뷰를 배치할 것입니다.
       
        LinearLayout.LayoutParams lp; // LinearLayout 자체의 레이아웃 파라미터는 넓이와 높이 모두 전체

        lp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
                                           LayoutParams.FILL_PARENT);
       
        ll.addView(myTextView, textViewLP); // LinearLayout 루트에 TextView 위젯을 추가합니다.
        
        this.addContentView(ll, lp); // 이제 액티비티의 콘텐츠로 LinearLayout을 루트로 설정합니다.

       
    }
}


효율적인 안드로이드 코드 작성
- http://developer.android.com/guide/practices/design/performance.html
- 스택과 힙은 어떻게 사용할지, 객체 생성은 어떻게 제한할지, 
  변수의 유효범위가 메모리 사용에 미치는 영향을 어떻게 파악할지

- 모든 사용자 동작에 대해 반드시 5초 이내로 반응
- 브로드캐스트 리시버는 자신의 onReceive 핸들러에서 반드시 10초 이내에 리턴해야 한다
- 무반응 유발  -> 쓰레드로 처리(9장)
 : 네트워크, 복잡한 처리, 파일IO