Winxp ; 윈도우즈\시스템32\드라이버\host.txt

유닉스 : etc/hosts

파일 수정

저녁 먹고 와서 테스팅 할려고 하니 자바소스에서 에러가 수르르룩!

머가 문제인가 봤더니 R.java 파일 미생성으로 인한 에러...

머가 문제 일까 찾다 찾다 ...
원인은

drawable 에 카피 해놓은 png 이미지파일 명....

소문자만 인식 하는걸 뼈져리게 느꼈다 ㅠㅠ

대문자로 표기 되어 있는 이미지 파일명을 소문자로 변경하니 정상으로 원상복귀 ㅠ

그러나 그것도 잠시...

또 다시 에러 ....

음.... 나인패치 에러 일수도 있다는 생각이 번쩍인다..

내가 나인패치도 손봐야 하나;;;
안드로이드 시작은 AndroidManifest.xml로 부터 시작한다.
일단, app 컴포넌트(activity, service, intents, content provider, broadcast receivers, notification, resource manager)의 구조 및 메타데이터를 정의를 알아 보자.
또한 Intent filter와 permissions을 사용해 다른 컴포넌트와 application과 어떻게 상호 작용 하는지 알아보겠다.

1.application package와 version
 1) <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="com.microjobsinc.mhandroid"
       android:versionCode="1"
       android:versionName="1.0">

xmlns : AndroidManifest.xml을 구성하는 xml의 tag element정의
-첫 Linearlayout 꼭 정의 되는데.. 두번째에도 쓰이는 경우는 무엇일까?
 예)
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"

검색결과: 특별한 이유에 대해 검색은 못했으나, 이클립스에서 그래픽콜 레이아웃에서 생성시 자동으로 정의 되는것으로 짐작됨.

*package="application" 이 참조하는 기본 source package 시작점
*versionCode : 마켓/인스톨러/런처 등에서 app이 최신인지를 판단해서, upgrade 하는 기준
*revision code : 정수 1로 시작.
*versionName: app의 통상적인 version 이름, m.n.o형식이 일반적(major, minor, point)

<uses-permission ...>
app이 동작하는 device 의 components 사용을 허가함.
1. <!--location information from GPS -->
       <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
           
           2. <!-- Dialer로 전화 걸기 -->
        <uses-permission android:name="android.permission.CALL_PHONE" />

           3.<!--TEST할 수 있는 GPS 좌표 가능 ddms -->
            <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

       

싱글톤은 무엇인가?

Program_Language/Java 2011. 2. 1. 17:34 Posted by Request

package foms.common;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Vector;

/*
 2011.02.01 작성
 각종 코드 리스트들을 추출하여 쓰기 위해 ( DB트랜잭션 최소화) 만듦
 작성자 : 나도몰라
 Singleton pattern 으로 제작.
*/
public class codeList {
 private static codeList instance = new codeList();
 private static HashMap codeListData =new HashMap();
 
 final static String fileUrl ="C:/program1/KDN/Forms/WebContent/test/inspection_list.txt";
 
 /*Creator*/
 private codeList(){
  System.out.println("Creat Object ~");
 }
 
 /*싱글톤 패턴 : 메모리에 단 한번 올라가고 올라간후에는 계속 재사용을 한다. 상단 해쉬맵 포함.*/
 public static codeList getInstance(){
  if(null==instance){
   instance = new codeList();
  }
  return instance;
 }
 
 /* 순시종류 출력을 위한 메쏘드*/
 public static String getCodeName(String codeValue){
  String codeName ="";
  try{
     commonFileAccess(fileUrl);
        codeName = (String) codeListData.get(codeValue);
  }catch(Exception ex){
   ex.printStackTrace();
  }
  return codeName;
 }

 /*공통파일처리 메쏘드*/
 protected static HashMap commonFileAccess(String fileLink){
  
  try{
   if(codeListData.isEmpty()){
    System.out.println("FILE READING Start~~~~");
    FileInputStream fis = new FileInputStream(fileLink);
          BufferedReader br = new BufferedReader(new InputStreamReader(fis));
          String buff = null;
          int index = 0;
          while((buff = br.readLine()) != null){
              String[] items = buff.split(",");
              for (String item : items) {
               codeListData.put(items[0],items[1]);
              }
          }
   }
  }catch(Exception e){
   e.printStackTrace();
  }
    
  return codeListData;
 }
}

synchronized(this) 에 대해..

Program_Language/Java 2011. 2. 1. 12:28 Posted by Request

synchronized()... 일종의 하나의 쓰레드만 사용하기위해 다른 쓰레드에 대해서는
lock를 걸어 주기 위해 사용 한다고 하는데..

그만큼 느려질수도 있는 단점이 있다는군...

보통 어느 때 주로 사용 될까?

안드로이드 Context 이해

SMART_Phone/Android 2011. 2. 1. 11:58 Posted by Request

Context는 크게 두가지 역할을 수행하는 Abstract 클래스 이다.

1)어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근하기
2)안드로이드 시스템 서비스에서 제공하는 API를 호출 할수 있는 기능

Context 인터페이스에서 제공하는 API 중, 대표적인 것은?
getPackgeName(), getResource() - 첫번째 역할을 수행하는 메소드
- 'get' 이라는 접두어로 시작하는 메서드
startActivity(), bindService()와 같은 메서드들은 두번째 수행하는 메소드


왜 Context 클래스가 필요할까?
 -안드로이드에서는 Context라는 인스턴스화된 매개체를 통해야만 어플리케이션 연관된 시스템 기능 수행, 시스템 함수 호출이 가능함.

안드로이드 시스템에서 어플리케이션 정보를 관리하고 있는 것은 시스템이 아닌,
ActivityMamagerService라는 일종의 또 다른 어플리케이션임.
당연히 정보를 얻고자 하는 어플리케이션이 어떤 어플리케이션인지에 관한 키 값도 필요해집니다.

즉,
자신이 어떤 어플리케이션을 나타내고 있는지 알려주는 ID 역할
ActivityManagerService에 접근 할 수 있도록 하는 통로 역할

마무리
결 론! 결국, 안드로이드 Context 는 여러가지 이유로 기존 플랫폼과는 다른 방식으로 어플리케이션을 관리하고 있고, 때문에 기존 플랫폼들에서는 단순하게 시스템 API 를 통해 할 수 있는 일들을, Context 인스턴스라는 조금은 귀찮지만 강력한 녀석을 통해 대행 처리하고 있다고 할 수 있겠습니다.

[내용 정리]
참고사이트 :
http://androidside.com/bbs/board.php?bo_table=B46&wr_id=11977




AlertDialog 예제

SMART_Phone/Android 2011. 1. 31. 22:41 Posted by Request


public AlertDialog getFinishAlertDialog() {
  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  String msg1 = getResources().getText(R.string.upload_cancel_msg1).toString();
  String msg2 = getResources().getText(R.string.upload_cancel_msg2).toString();
  builder.setTitle(getResources().getString(R.string.upload_cancel_title));
  String msg = uploadData.size() + msg1 + " " + (uploadFileCount) + msg2;
  builder.setMessage(msg);
  builder.setPositiveButton(R.string.Yes,
    new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int which) {
      isCanceled = true;


      UploadStatusActivity.this.finish();
     }
    });
  builder.setNegativeButton(R.string.No,
    new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int which) {
      isCanceled = false;
      resumeUpload();
     }
    });

Code Coverage (코드 커버리지) -JAVA

카테고리 없음 2011. 1. 28. 18:01 Posted by Request

이런 녀석도 있구나...

어떻게 연동 되는지는 보긴 했는데... 할려니 잘 모르겠다.

아무튼 소스에 대한 클래스와 메소드의 사용 여부 체크하여

수치 및 그래프로 보여준다는 것과 암호화 된 파일로 저장된다는 것.
 

Dell 노트북 F1~F12 기본 만들기

카테고리 없음 2011. 1. 28. 16:32 Posted by Request
F1~F12키가 단독키로 안되어 있어 불편 하던 찰라에
검색해보니 설정하면 되는거였군..

제어판 - 윈도우 모바일센터 들어가셔서 Fn키 설정이 '멀티미디어' > '기능키로 바꾸면 됨.

INFLATION 의 이해.

카테고리 없음 2011. 1. 27. 23:11 Posted by Request

INFLATION 기능
1.XML 문서에 정의된 레이아웃과 차일드 뷰의 속성을 읽어 실제 뷰 객체를 생성해 내는 동작.
2.레이아웃의 정보대로 객체를 생성하고 속성 변경 메서드를 순서대로 호출 하는것.

Activity화면에서 사용자 인터페이스를 정의한 XML을 View 해줘야 되는데,
이때 Inflate라는 메소드를 통해서 이러한 XML 리소스의 정보를 해석하여 뷰를 생성하고 루트뷰를 리턴합니다.

리턴된 루트뷰를 setContentView() 라는 메소드를 통해 보여 줄수 있습니다.

즉, 핵심은 XML문서를 통채로 사용 할수 없으므로, 컴파일된 리소스를 넘겨줘야 된다는 뜻으로 정리하면 됩니다.

그리고 LayoutInflater 클래스의 용도는 XML 리소스를 전개하여 뷰 객체를 만듭니다.
OnCreate() 내부에서 아래처럼 선언되는 두가지 방법은 동일합니다.
setContentView(R.layout.main);
setContentView(View.inflate(this, R.layot.main, null);

조금 더 들어가자면,
setcontentView(R.layout.main); 과

LayoutInflater inflater =(LayoutInflater)getSystemSetvice(COntext.LAYOUT_INFLATER_SERVICE);
View v=(View)inflater.inflate(R.layout.main, null);
setContentView(v);

동일하다고 볼수 있겠습니다.

참고사이트
http://stbaeya.com/tc/233