반응형

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

 

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

 

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

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

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

반응형
반응형

이번 포스팅은 웹 사이트 주소로 IP(아이피)를 알아내는 방법입니다.

#. 웹 사이트 주소로 IP(아이피) 알아내는 방법
1. 시작 > 실행 > cmd
2. nslookup 명령어 입력
ex) nslookup www.naver.com

반응형

'Development > Etc' 카테고리의 다른 글

[Etc] Windows에서 Hash로 파일비교하기  (0) 2023.01.25
[Etc] 금융에서 CMS 정의  (0) 2022.09.28
[Etc] Git에서 HEAD 의미  (0) 2022.09.28
반응형

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라고 할 수 있습니다. 

반응형
반응형

이번 포스팅은 파일 생성 시 발생한 오류에 대하여 알아보도록 하겠습니다.



<Error>



  Invalid file name: must contain only [a-z0-9_.] 오류

 



<Solution>



  파일명 영어소문자 나 0~9까지의 숫자만 허용하는데 그 이외의 문자가 들어간 경우이므로 허용하는 문자를 제외하고 파일명을 수정



반응형
반응형

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

반응형
반응형

이번 포스팅은 JSP 화면에 보이는 데이터를 엑셀 파일로 저장하는 방법에 대하여 알아보도록 하겠습니다.

JSP 화면에서 검색 조건을 제목으로 하여 검색하여 찾은 데이터를 리스트 형태로 조회하는 화면이 있을 때에 <EXCEL 파일 저장>이라는 버튼을 클릭하면 조건으로 들어가는 제목을 파라미터로 갖고 엑셀파일을 보여줄 수 있는 pop-up대용의 JSP화면으로 보내줍니다.

#. list.jsp

<%@ page contentType="text/html;charset=euc-kr" %>
<html>
.....

function toXLS() {
var address = "/jsp/excel.jsp?title=타이틀&file_name=리스트.xls";
location.href = address;
}
.....
<body>
.....
<a href="javascript:toXLS()"><strong>EXCEL 파일저장</strong></a>
.....
</body>
</html>

아래는 중요한 excel.jsp인데 JSP화면의 설정 코드를 눈여겨보아야 합니다.

#. excel.jsp
<%@ page contentType="application/vnd.ms-excel;charset=euc-kr" %>
===> contentType를 반드시 위와 같이 정의해주어야 원하는 결과를 얻을 수 있습니다.
<%
String file_name = request.getParameter("title");
response.setHeader("Content-Disposition", "attachment; filename=""+file_name+"";");
===> 저장할 시에 기본적으로 설정되는 파일명을 지정하고(여기서는 order_list.xls)
반드시 attachment로 설정을 해야 파일 열기, 저장 중에 선택하는 메시지가 뜹니다.
response.setHeader("Content-Description", "JSP Generated Data");
===> 정확히 어떤 정의였는지는 자세히 기억이 나지 않지만 필수적으로 설정해야 합니다.
String title = request.getParameter("title");
... ( title파라미터를 이용하여 DB에서 해당 목록을 ResultSet으로 받아온다. )
%>

<html>
<head>
<title>엑셀파일변환</title>
</head>
<body bgcolor=white>
<table border=1>
<tr bgcolor="#CACACA">
<th>지시일자</th>
<th>완료일</th>
<th>담당자</th>
<th>현 황</th>
<th>제 목</th>
</tr>
<%
while(rs.next()) {
%>
<tr>
<td><%=rs.getString("ord_date")%></td>
<td><%=rs.getString("cmp_date")%></td>
<td><%=rs.getString("charge_name")%></td>
<td><%=rs.getString("state_name")%></td>
<td><%=rs.getString("subject")%></td>
</tr>
<%
}
%>
</table>
</body>
</html>

이렇게 화면이 만들어지고 <EXCEL 파일 저장>을 클릭하게 되면 order_list.xls (지정한 파일명)를 현재 위치에서 열 것인지 저장할 것인지를 묻는 창이 뜹니다.

여기에서 저장을 하게 되면 이름을 바꿔서 저장이 가능하고, 열기를 선택하면 excel.jsp에 구성된 내용들이 현재 화면에 엑셀 형식으로 보이게 됩니다.

처음 참고자료를 뒤졌을 때 excel.jsp의 attachment 부분이 다른 방식으로 지정되면 곧바로 엑셀 파일 열기가 실행되어 난감했던 기억이 납니다.

반드시 attachment을 해야만 저장을 묻는다는 것을 기억해야 합니다.


참고 : http://scblood.egloos.com/2542763

반응형

'Development > Web' 카테고리의 다른 글

[Web] 뷰 컴포넌트 통신  (0) 2022.09.19
[Web] 뷰 컴포넌트  (0) 2022.09.18
[Web] 뷰 인스턴스 라이프 사이클  (0) 2022.09.18
[Web] 뷰 인스턴스  (0) 2022.09.18
[Web] JSP / Servlet/ Java 현재 경로 알아내기  (0) 2020.04.08

+ Recent posts