반응형

이번 포스팅은 가비지 컬렉션 로그 메시지와 해결방법에 대하여 알아보도록 하겠습니다.

 

 
  04-10 15:54:53.515: D/dalvikvm(14465): GC_CONCURRENT freed 535K, 38% free 10769K/17287K, paused 2ms+2ms 

 

=> Heap 영역에 메모리가 차 오르는 순간 자주 보이는 가비지 컬렉션 로그로 정산 동작.

     많으면 많을수록 가비지 컬렉션으로 PAUSE 되는 시간 때문에 RUNTIME에 영향을 주게 됩니다.

     해당 메시지가 나오지 않게 하려면, 짧은 시간에 발생하는 객체 생성을 줄여야 합니다.

반응형
반응형

1. Context의 정의


Application 환경에 관한 글로벌 정보를 접근하기 위한 인터페이스, Abstract 클래스이며 실제 구현은 Android 시스템에 의해 제공이 됩니다. Context를 통해 Application에 특화된 Resource 클래스에 접근할 수 있을 뿐만 아니라, 추가적으로, Application 레벨의 작업 - Activity 실행, Intent 브로드 캐스팅, Intent 수신 등을 수행하기 위한 API를 호출할 수 있습니다.

 

2. Context의 역할


- 어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근하기

- 안드로이드 시스템 서비스에서 제공하는 API를 호출할 수 있는 기능

 

Context 인터페이스가 제공하는 API 중, getPackageName(), getResource() 등의 method들이 첫 번째 역할을 수행하는 대표적인 method입니다. 보통 'get'이라는 접두어로 시작하는 method입니다. 그 외에, startActivity() 나 bindService()와 같은 method들이 두 번째 역할을 수행하기 위한 method라고 할 수 있습니다. 

반응형
반응형

InformationInput .java

 

package com.androidhuman.IntentTest;

 

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class InformationInput extends Activity {

 

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

final Button requestInfo = (Button)findViewById(R.id.requestInfo);

 

// 버튼을 클릭할 경우

requestInfo.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){

Intent intent = new Intent(InformationInput.this,InformationProc.class);

 

// Sub_Activity 호출

startActivityForResult(intent, 1); 

}

});

}

 

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data){

super.onActivityResult(requestCode, resultCode, data);

TextView name_view = (TextView)findViewById(R.id.name_view);

TextView digit_view = (TextView)findViewById(R.id.digit_view);

 

// 액티비티가 정상적으로 종료되었을 경우

if(resultCode==RESULT_OK) {

// InformationInput에서 호출한 경우에만 처리합니다.

if(requestCode==1) {

// 받아온 이름과 전화번호를 InformationInput 액티비티에 표시name_view.setText(data.getStringExtra("data_name"));

digit_view.setText(data.getStringExtra("data_digit"));

}

}

}

}

 

InformationProc .java

 

package com.androidhuman.IntentTest;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

public class InformationProc extends Activity {

 

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.informationproc);

Button input_info = (Button)findViewById(R.id.inputinfo);

input_info.setOnClickListener(new OnClickListener(){

 

//버튼을 클릭하면

public void onClick(View v) { 

// 이 액티비티를 시작하게 한 인텐트를 호출

Intent intent = getIntent(); 

EditText name_input = (EditText)findViewById(R.id.name_input);

EditText digit_input = (EditText)findViewById(R.id.digit_input);

intent.putExtra("data_name",name_input.getText().toString());

intent.putExtra("data_digit", digit_input.getText().toString());

 

// 추가 정보를 넣은 후 다시 인텐트를 반환합니다.

setResult(RESULT_OK,intent);

// 액티비티 종료 

finish(); 

}

});

}

}

 

참고 : http://androidhuman.tistory.com/125

반응형

+ Recent posts