보통 안드로이드 에서는 Xmlpullparser 를 이용해서 웹페이지의 내용을 파싱 해오는 게 가장 효육적이라고 한다.
하지만, 그 웹페이지에서 RSS를 지원해야 쉽게 이용이 가능하다.
RSS를 지원하지 않는다면 Xmlpullparser 를 이용해서 파싱을 해 오는 것은 아무래도 힘들어 보인다.

이에 RSS를 지원하지 않는 사이트를 파싱해올 수 있는 DOM 이나 Jericho를 사용할 수 있는데,
보통 Jericho를 많이 이용하는것 같다.

위의 소스를 이용하여 파싱해 올 수 있지만, jericho.jar 파일을 import 시켜서 사용해야 하며,
jericho는 원래 한글을 지원하지 않지만,
java에서 한글을 지원하기 때문에 소스를 간단히 수정해 준다면, 이를 이용 가능하다.

source = new Source(new URL(sourceUrlString));

 부분을

 URL sUrl= new URL(sourceUrlString);
 InputStream is = sUrl.openStream(); 
 Source source=new Source(new InputStreamReader(is,"euc-kr"));

물론 "euc-kr" 부분은 사이트의 "charset" 에 맞추어 변경해 주어야 한다. ex> UTF-8 KSC5601..... etc


그렇다면 jericho.jar 파일을 임포트 시키는 방식은 어떠할까?

보통 안드로이드 개발로는 Eclipse를 사용한다. Eclipse 에 Libraries 를 등록하는 절차에 대해 설명한다면,

--------------------------------------------------------------------------------------------
먼저 Project에 라이브러리를 import시킨다.

즉, Project -> import -> General -> File System -> jar파일등록하면 Project에 해당 Library가 추가된다.

 

다음으로는 해당 Library를 Project에서 사용할 수 있도록 설정을 해주어야 한다.

Project선택 후

Properties(Alt + Enter) -> Java Build Path -> Libraries Tab -> Add JARs -> JAR파일 선택

 

 

또는 import 시키지 않고 외부에서 Library를 가져올 수 도 있다.

Project선택 후

Properties(Alt + Enter) -> Java Build Path -> Libraries Tab -> Add External JARs -> JAR파일 선택

 

 

 

*. 추가 확인 사항

Jericho HTML Parser를 설치한 후에 java 소스 상에서 아래와 같이 사용할 경우.

Source source = null;

source = new Source(new URL(sourceUrlString));

Source Import시 두가지 중 import net.htmlparser.jericho.Source; 를 설정해 주어야 한다

---------------------- 출처 : http://dodo4989.tistory.com/106 ----------------------------------


------------------------------------------소스코드-------------------------------------------



 String yourUrl =  "http://www.naver.com/";

  tv = (TextView) findViewById(R.id.tv1);
   tv.setText(getHtmltoText(yourUrl));




public String getHtmltoText(String sourceUrlString) {
  Source source = null;
  String content = null;

  try {
   // HTML을 읽을 URL
   URL sUrl= new URL(sourceUrlString);
    InputStream is = sUrl.openStream();
   source=new Source(new InputStreamReader(is,"UTF-8"));

   

   // 처음부터 끝까지 순차적으로 구문 분석.
   source.fullSequentialParse();

   // HTML MarkUp에서 Text Contents만 가져와서 String으로 변환.
   content = source.getTextExtractor().toString();
  } catch (Exception e) {
   e.printStackTrace();
  }
  return content;
 }

'IT 공부 > 안드로이드' 카테고리의 다른 글

android Thread Counting  (2) 2012.03.03
android 타이틀바 없애기  (0) 2012.03.03
이클립스 느낌표 문제  (2) 2012.02.26
JSON을 활용한 검색기  (2) 2012.02.25
XML을 활용한 RSS리더기  (1) 2012.02.25

간단히 말해서, SRTF는

우선순위로 들어온것을 처리하는 것을 말한다.

<<소스코드>>


////process.java
public class process {
 
 public static void main(String[] args) {
  new Scheduling();
 }
}



//STRF.java
public class STRF {
 private int number;
 private int arrive_time;
 private int wait_time;
 private int burst_time;
 
 public STRF(int number,int arrive,int brust){
  this.number=number;
  this.arrive_time=arrive;
  this.burst_time=brust;
  this.wait_time=0;
 }

 public void addwaittime(){
  wait_time++;
 }
 public void deletetime(){
  burst_time--;
 }
  
 public int getNumber() {
  return number;
 }
 public void setNumber(int number) {
  this.number = number;
 }
 public int getArrivalTime() {
  return arrive_time;
 }
 public void setArrivalTime(int arrive) {
  this.arrive_time = arrive;
 }
 public int getBurstTime() {
  return burst_time;
 }
 public void setBurstTime(int burstTime) {
  this.burst_time = burstTime;
 }

 public int getWaitingTime() {
  return wait_time;
 }

 public void setWaitingTime(int waitingTime) {
  this.wait_time = waitingTime;
 }
 

}




/////Scheduling.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;


public class Scheduling {
 
 private ArrayList<STRF> processList = new ArrayList<STRF>();
 private ArrayList<STRF> waitingList = new ArrayList<STRF>();
 
 Scheduling() {
  System.out.println("���� ����");
  int nextArrival = 0;
  int processIndex = 0;
  int waitingTime = 0;
  STRF currentProcess = null;
  
  try {
   setFile("test\\2.inp.txt");
  }  catch (IOException e) {
   System.out.println("IOException!!");
  }
  
  sortProcess();  
  
  nextArrival = processList.get(0).getArrivalTime();
  int time=0;
  for(time =0;;time++){
   while(time == nextArrival){
    if(currentProcess == null){
     currentProcess = processList.get(processIndex);
    }else {
     waitingList.add(processList.get(processIndex));
    }
    processIndex++;
    if(processIndex == processList.size()){
     nextArrival = 0;
    } else {
     nextArrival = processList.get(processIndex).getArrivalTime();
    }
   }
   if(currentProcess != null) {
    if(waitingList.size() != 0) {
     sortWaitingList();
     if(currentProcess.getBurstTime() > waitingList.get(0).getBurstTime()){
      waitingList.add(currentProcess);
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     }
    }    
    if(currentProcess.getBurstTime() == 0) {
     if(waitingList.size() != 0) {
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     } else if(nextArrival == 0) {
      break;
     } else {
      continue;
     }
    }    
    currentProcess.deletetime();
    waitingTime += waitingList.size();
   }   
   System.out.println("Ÿ�� �÷���");
  }
  
  try {
   printProcess(waitingTime);
  } catch (IOException e) {
   System.out.println("IOException!!");
  }
 }
 
 void setFile(String filename) throws NumberFormatException, IOException{
  
  int count;

  FileReader fr = new FileReader(filename);
  BufferedReader br = new BufferedReader(fr);
  
  count = Integer.parseInt(br.readLine());
  System.out.println("count = "+count);
  for(int i=0;i<count;i++){
   System.out.println("asdf");
   String[] item = br.readLine().split(" ");
   STRF process = new STRF(Integer.parseInt(item[0]), Integer.parseInt(item[1]), Integer.parseInt(item[2]));
   processList.add(process);
  }   
  
  br.close();
  fr.close();
 }
 
 void printProcess(int waitingTime) throws IOException {
  System.out.println("���� ���");
  FileWriter fw = new FileWriter("test\\2.out.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.println(waitingTime);
  System.out.println(waitingTime);
  pw.close();
  bw.close();
  fw.close();
 }
 
 void sortProcess() {
  System.out.println("���μ��� ����");
  for(int i=0;i<processList.size()-1;i++){
   for(int j=0;j<processList.size()-1-i;j++){
    if(processList.get(j).getArrivalTime() > processList.get(j+1).getArrivalTime() ||
     (processList.get(j).getArrivalTime() == processList.get(j+1).getArrivalTime() && processList.get(j).getNumber() > processList.get(j+1).getNumber())){
     STRF temp = processList.get(j);
     processList.remove(j);
     processList.add(j+1, temp);
     
    }
   }
  }  
 }
 
 void sortWaitingList() {
  for(int i=0;i<waitingList.size()-1;i++){
   for(int j=0;j<waitingList.size()-1-i;j++){
    if(waitingList.get(j).getBurstTime() > waitingList.get(j+1).getBurstTime() ||
     (waitingList.get(j).getBurstTime() == waitingList.get(j+1).getBurstTime() && waitingList.get(j).getBurstTime() > processList.get(j+1).getBurstTime())){
     STRF temp = waitingList.get(j);
     waitingList.remove(j);
     waitingList.add(j+1, temp);
    }
   }
  }
 }
}

///////////////////////////////////////////////

이것도 소스가 좀 더럽습니다. 이해 해주시기 바랍니다.^^

'IT 공부 > 자료구조' 카테고리의 다른 글

SSTF Scheduling  (0) 2012.02.28
FCFS  (2) 2012.02.25
SRTF 스케줄링  (0) 2012.02.25
[자료구조] Linked List(링크드리스트)  (0) 2012.02.22

SSTF 스케줄링

-탐색거리가 가장 짧은 요청이 비록 큐의 제일 앞에 있지 않다 하더라도 먼저

 서비스를 받는다.

-특정 요청들을 차별대우 하는 경향이 있다

-고도로 편중되어 안쪽이나 바깥쪽 트랙이 가운데 트랙보다 훨씬 서비스를 덜 받는다.

-FCFS보다 처리량이 더 많고, 보통의 부하에서 평균 응답시간은 짧다

-단점 : 안쪽과 바깥쪽 트랙을 차별대우하기 때문에 응답시간에 큰 편차가 생긴다

■ 일괄처리 시스템에 유용하다.


<<소스 코드>>



///process.java

public class process {
 public static void main(String args[]){
  new Scheduling();
 }
 
}

//SSTF.java
public class SSTF {
 private int number;
 private int arrive_time;
 private int burst_time;
 private int wait_time;
 private int sub;
 
 public SSTF(){
 }
 public SSTF(int arrive,int burst){
  this.arrive_time=arrive;
  this.burst_time=burst;
  this.wait_time=0;
 }
 public int getNumber(){
  return number;
 }
 public int getArrive(){
  return arrive_time;
 }
 public int getBurst(){
  return burst_time;
 }
 public int getWait(){
  return wait_time;
 }
 public int getSub(){
  return sub;
 }
 public void setArrive(int arrive){
  this.arrive_time=arrive;
 }
 public void setBurst(int burst){
  this.burst_time=burst;
 }
 public void setWait(int wait){
  this.wait_time=wait;
 }
 public void setSub(int sub){
  this.sub=sub;
 }
 
}



////Scheduling.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

public class Scheduling {
 private ArrayList<SSTF> processList = new ArrayList<SSTF>();
 private ArrayList<SSTF> copyList = new ArrayList<SSTF>();
 int count;
 int processcount = 0;
 int headcount;
 int current;// ����
 int currentnum = 0;
 int num;
 int temp;
 int plus;
 int waittime = 0;
 int arrive = 0;

 Scheduling() {
  System.out.println("스케줄링 시작");
  try {
   setFile("test\\2.inp.txt");
  } catch (NumberFormatException e) {

  } catch (IOException e) {
   System.out.println("IOException!!");
  }
  sortProcess();
  waittime = processList.get(0).getBurst()+count;// 첫번쨰 자리 이동
  current = processList.get(0).getBurst();// 현재 Burst
  currentnum = 0;
  processList.get(0).setWait(1);
  // ///////////////////
  System.out.println("waittime : " + waittime);

  for (int i = 1; i < processcount; i++) {
   
   sort();
   
  }
  try {
   printProcess(waittime, processList.get(currentnum).getBurst());
  } catch (IOException e) {
   System.out.println("IOException!!");
  }
 }

 private void sort() {
  int temp1=0;
  int temp = 0;
  int num = 0;
  int min = 5000;

  for (int i = 1; i < processcount; i++) {
   if (processList.get(i).getWait() == 0) {
    if (waittime >= processList.get(i).getArrive()) {
     temp = processList.get(i).getBurst()
       - processList.get(currentnum).getBurst();

     if (temp < 0) {
      temp *= -1;
     }

     if (min > temp) {
      min = temp;
      num = i;
     }
     System.out.println("burst : "
       + processList.get(i).getBurst()
       + "  currentburst : "
       + processList.get(currentnum).getBurst()
       + "  arrive : " + processList.get(i).getArrive());
    }

   }
  }// 최소 구하기
  if (num == 0) {
   for (int i = 1; i < processcount; i++) {
    if (processList.get(i).getWait() == 0) {
     if (min > processList.get(i).getArrive()) {
      temp = processList.get(i).getArrive()-waittime;
      temp1=processList.get(currentnum).getBurst()-processList.get(i).getBurst();
      if (temp < 0) {
       temp *= -1;
      }
      System.out.println(processList.get(i).getArrive());
      temp += temp1;
      if (min > temp) {
       min = temp;
       num = i;
      }      
     }
    }
   }

  }
  currentnum = num;
  processList.get(currentnum).setWait(1);

  System.out.println("min : " + min + "num : " + currentnum);

  waittime += min;
  waittime += count;
  System.out.println("waittime : " + waittime);
  System.out.println();
 }

 private void printProcess(int waitingTime, int head) throws IOException {
  System.out.println("프로세스");
  FileWriter fw = new FileWriter("test\\2.out.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.println(waitingTime + " " + head);
  System.out.println(waitingTime + " " + head);
  pw.close();
  bw.close();
  fw.close();
 }

 private void setFile(String filename) throws NumberFormatException,
   IOException {

  String str;

  FileReader fr = new FileReader(filename);
  BufferedReader br = new BufferedReader(fr);
  count = Integer.parseInt(br.readLine());// ��û�ð�(10)
  System.out.println("카운트 = " + count);

  for (int i = 0;; i++) {

   String[] item = br.readLine().split(" ");
   if (Integer.parseInt(item[0]) == -1
     && Integer.parseInt(item[1]) == -1) {// ���� ����
    System.out.println("������");
    break;
   }
   processcount++;
   System.out.println("Arrive//Burst");
   System.out.println(" " + Integer.parseInt(item[0]) + " "
     + Integer.parseInt(item[1]));
   SSTF process = new SSTF(Integer.parseInt(item[0]),
     Integer.parseInt(item[1]));// �Է�
   processList.add(process);
  }
  br.close();
  fr.close();
 }

 private void sortProcess() {
  for (int i = 0; i < processList.size() - 1; i++) {
   for (int j = 0; j < processList.size() - 1 - i; j++) {
    if (processList.get(j).getArrive() > processList.get(j + 1)
      .getArrive()
      || (processList.get(j).getArrive() == processList.get(
        j + 1).getArrive() && processList.get(j)
        .getBurst() > processList.get(j + 1).getBurst())) {
     SSTF temp = processList.get(j);
     processList.remove(j);
     processList.add(j + 1, temp);
    }
   }
  }
  for (int i = 0; i < processList.size(); i++) {
   if (processList.get(i).getWait() == current) {
    num = i;
    break;
   }
  }
 }

}


///////////////////////////////////////////////////////////
급하게 짠거라 소스가 많이 더럽습니다...

수정해서 쓰시면 될꺼 같습니다.^^

좋은 하루 되세요^^

'IT 공부 > 자료구조' 카테고리의 다른 글

SRTF  (2) 2012.02.28
FCFS  (2) 2012.02.25
SRTF 스케줄링  (0) 2012.02.25
[자료구조] Linked List(링크드리스트)  (0) 2012.02.22

가끔, 이클립스 빨간색 느낌표이 폴더위에 떠있을때가 있다

이러한 경우는 A컴퓨터에서 B컴퓨터 옮겨 와서 이런 경우가

대부분인데 해결방안은,

1. Build Path가 맞이 않을 경우입니다.
->프로젝트 오른쪽눌러서 Build Path Setup
   들어가서 X된 라이브러리를 삭제하시고,
   정확한 위치를 잡아주시면 됩니다.
2. JDK가 틀린 경우입니다.
-> 이건,,, JDK를 맞춰야 겟죠..


정안되면 프로젝프 파일을 만들어서 그파일로  Ctrl+C & V하세요^^

'IT 공부 > 안드로이드' 카테고리의 다른 글

android 타이틀바 없애기  (0) 2012.03.03
Parser  (1) 2012.03.03
JSON을 활용한 검색기  (2) 2012.02.25
XML을 활용한 RSS리더기  (1) 2012.02.25
파서(Get)  (1) 2012.02.25


C#을 사용하여 임계값을 주어서 그 값을 상대로 그림을 변환시킵니다.



<<소스>>
OpenFileDialog openFile = new OpenFileDialog();
            openFile.Filter = "All files(*.*)|*.*|jpg(*.jpg)|*.jpg";
            openFile.ShowDialog();

            if (openFile.FileName.Length > 0)
            {
                 Image image = Image.FromFile(openFile.FileName);
                 pictureBox1.Image = image;
                 gBitmap = new Bitmap(image);
                 grBitmap = new Bitmap(image.Width, image.Height);
                 arr = new int[image.Height, image.Width];
                 arr1 = new int[image.Height, image.Width];
                for (int y = 0; y < image.Height; y++)
                 {
                     for (int x = 0; x < image.Width; x++)
                    {
                    //RGB
                         m_color = gBitmap.GetPixel(x, y);
                         brightness = (m_color.R + m_color.G + m_color.B) / 3;
                         arr[y, x] = brightness;
                     }
                 }
                for (int y = 0; y < image.Height; y++)
                {
                    for (int x = 0; x < image.Width; x++)                    
                         if (100 < arr[y, x])//임계치 100
                         {//임계값보다 높으면 255
                             arr1[y, x] = 255;
                         }
                         else
                         {//임계값보다 낮으면 0
                             arr1[y, x] = 0;
                         }
                 }
                 for (int x = 0; x < image.Width; x++)
                 {
                     for (int y = 0; y < image.Height; y++)
                     {
                         //넣어주기
                         gray = Color.FromArgb(arr1[y, x], arr1[y, x], arr1[y, x]);
                         grBitmap.SetPixel(x, y, gray);
                     }
                 }

                 pictureBox2.Image = grBitmap;

             }

아 어려워잉.,.,ㅜㅜ

first-come first-served 선도착 선처리.

선입 선처리 스케줄링 (First-Come, First-Served / FCFS)

- 선입 선처리 정책의 구현은 선입선출(FIFO) 큐로 쉽게 관리할 수 있다. 프로세스가 준비 완료 큐에 진입하면, 이 프로세스의 프로세스 제어 블록(PCB)을 큐의 끝에 연결한다.
- 선입 선처리를 위한 코드는 작성하기 쉽고 이해하기 쉽다. 그러나 선입 선처리 정책 하에서 평균 대기 시간은 종종 대단히 길 수 있다.
- 그러므로 선입 선처리 정책 하에서 평균 대기 시간은 일반적으로 최소가 아니며, 프로세스 CPU 버스트 시간이 크게 변할 경우에는 평균 대기시간도 상당히 변할 수 있다.

- 선입 선처리 스케줄링 알고리즘은 비선점형이다. 이는 특히 시분할 시스템에서 문제가 되는데, 그 이유는 시분할 시스템에서는 각 사용자가 규칙적인 간격으로 CPU의 몫을 얻는 것이 매우 중요하기 때문이다.

소스 코드

public class process {
 public static void main(String args[]){
  new Scheduling();
 }
 
}

///////////////////////////////////////////////////////////

public class FCFS {
 private int number;
 private int arrive_time;
 private int burst_time;
 private int wait_time;
 
 public FCFS(){
 }
 public FCFS(int number,int arrive,int burst){
  this.number=number;
  this.arrive_time=arrive;
  this.burst_time=burst;
  this.wait_time=0;
 }
 public int getNumber(){
  return number;
 }
 public int getArrive(){
  return arrive_time;
 }
 public int getBurst(){
  return burst_time;
 }
 public int getWait(){
  return wait_time;
 }
 public void setArrive(int arrive){
  this.arrive_time=arrive;
 }
 public void setBurst(int burst){
  this.burst_time=burst;
 }
 public void setWait(int wait){
  this.wait_time=wait;
 }
 
}

///////////////////////////////////////////////////////////


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

public class Scheduling {
 private ArrayList<FCFS> processList = new ArrayList<FCFS>();
 int count;
 int processcount=0;
 int headcount;
 Scheduling() {
  System.out.println("생성자 시작");
  int nextArrival = 0;
  int processIndex = 0;
  int waittime = 0;
  
  int temp;
  FCFS currentProcess = null;
  
  try {
   setFile("test\\1.inp.txt");
  }catch(NumberFormatException e){
   
  }catch (IOException e) {
   System.out.println("IOException!!");
  }
  waittime=processList.get(0).getBurst();//첫도착시간
  for(int i=1;i<processcount;i++){
   System.out.println(" "+i);
//   if(processList.get(i).getArrive()==-1)//종료
//    break;
   if(processList.get(i).getArrive()>waittime){
    temp=processList.get(i).getArrive()-waittime;
    if(temp<0)
     temp*=-1;
    waittime+=temp;
    System.out.println("if  temp111  "+temp);
    temp=processList.get(i).getBurst()-processList.get(i-1).getBurst();
    if(temp<0)
     temp*=-1;
    waittime+=temp;
    System.out.println("if  temp222  "+temp);
   }else{
    temp=processList.get(i).getBurst()-processList.get(i-1).getBurst();
    if(temp<0)
     temp*=-1;
    waittime+=temp;
    System.out.println("else  temp"+temp);
   }
   waittime+=count;
   headcount=i;
   System.out.println("head : "+processList.get(headcount).getBurst());
   System.out.println("waittime : "+waittime);
   
  }
  
  try {
   printProcess(waittime, processList.get(headcount).getBurst());
   System.out.println(waittime);
  } catch (IOException e) {
   System.out.println("IOException!!");
  }
 }
 
 private void printProcess(int waitingTime ,int head) throws IOException {
  System.out.println("파일 출력");
  FileWriter fw = new FileWriter("test\\2.out.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.println(waitingTime+" ");
  System.out.println(waitingTime);
  pw.close();
  bw.close();
  fw.close();
 }
  private void setFile(String filename) throws NumberFormatException,IOException {

  
  String str;

  FileReader fr = new FileReader(filename);
  BufferedReader br = new BufferedReader(fr);
  count = Integer.parseInt(br.readLine());//요청시간(3)
  System.out.println("요청시간 = " + count);
  
  for (int i = 0;; i++) { 
    
   String[] item = br.readLine().split(" ");
   if(Integer.parseInt(item[1])==-1 && Integer.parseInt(item[2])==-1){//종료 조건
    System.out.println("끝내라");
    break;
   }
   processcount++;  
   System.out.println("Number//Arrive//Burst");
   System.out.println(""+i+" "+Integer.parseInt(item[1])+" "+Integer.parseInt(item[2]));
   FCFS process = new FCFS(i,Integer.parseInt(item[1]),Integer.parseInt(item[2]));//입력
   processList.add(process);
  }
  br.close();
  fr.close();
 }
}


'IT 공부 > 자료구조' 카테고리의 다른 글

SRTF  (2) 2012.02.28
SSTF Scheduling  (0) 2012.02.28
SRTF 스케줄링  (0) 2012.02.25
[자료구조] Linked List(링크드리스트)  (0) 2012.02.22

JSON문법은 객체로 사용가능하다.

문자열로 이루어져 있다.

소스코드

메니페스트
 <uses-permission android:name="android.permission.INTERNET"/>
중요합니다.





XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="여기야" />

</LinearLayout>





중요소스
try{
   URL url=new URL("http://rlqks132.tistory.com/");
   URLConnection connection=url.openConnection();
   
   String line;
   StringBuilder sb=new StringBuilder();
   
   BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream()));
   while((line=reader.readLine())!=null){
    sb.append(line);
   }
   
   JSONObject json=new JSONObject(sb.toString());
   sb.setLength(0);
   JSONObject resopnseData=(JSONObject)json.get("resonseDta");
   JSONArray results=(JSONArray)resopnseData.get("results");
   
   for(int i=0;i<results.length();i++){
    JSONObject result=(JSONObject)results.get(i);
    sb.append(result.get("title")).append("\n\n");
   }
   TextView tv = (TextView) findViewById(R.id.textView);
   tv.setText(sb.toString());
  }catch(Exception e){}

'IT 공부 > 안드로이드' 카테고리의 다른 글

Parser  (1) 2012.03.03
이클립스 느낌표 문제  (2) 2012.02.26
XML을 활용한 RSS리더기  (1) 2012.02.25
파서(Get)  (1) 2012.02.25
Activity 화면창  (3) 2011.11.03


우선,

RSS란?

RSS는 웹상에 존재하는 정보들을 배급 혹은 배포하기 위해 사용되는 방법 중 하나이다. 기존 W3C의 RDF의 XML을 응용한 형태이며, 최근에는 뉴스나 블로그 등 웹상에서 컨텐츠를 취급하는 경우에 있어서 안쓰이는 일이 없다. (중요하단말..)블라블라블라...





예제 소스
메니페스트
 <uses-permission android:name="android.permission.INTERNET"/>
꼭 추가하세요





XML파일
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>




주요 메인 소스
try {
   StringBuilder sb = new StringBuilder();
   URL url = new URL(
     "http://news.chosun.com/site/data/html_dir/2012/02/25/2012022500120.html?news_top");
   XmlPullParser parser = XmlPullParserFactory.newInstance()
     .newPullParser();
   parser.setInput(url.openStream(), null);

   int eventType = parser.getEventType();
   String tag;
   boolean inTitle = false;

   while (eventType != XmlPullParser.END_DOCUMENT) {
    Log.d("END_DOCUMENT", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    switch (eventType) {
    case XmlPullParser.TEXT:
     tag = parser.getName();
     if (inTitle) {
      sb.append(parser.getText()).append("\n");
     }
     break;
    case XmlPullParser.END_TAG:
     Log.d("END", "EEEEEEEEEEEENNNNNNNNNNNNNNNNDDDDDDDDDDDDDD");
     tag = parser.getName();
     if (tag.compareTo("titile") == 0) {
      inTitle = false;
     }
     break;
    case XmlPullParser.START_TAG:
     Log.d("START",
       "SSSSSSSSSSSTTTTTTTTTTTTAAAAAAAAAAAAAARRRRRRRRRRRRRTTTTTTTTTTT");
     tag = parser.getName();
     if (tag.compareTo("title") == 0) {
      inTitle = true;
     }
     break;
    }
    eventType = parser.next();
   }
   TextView tv = (TextView) findViewById(R.id.textView);
   tv.setText(sb.toString());
  } catch (Exception e) {

  }

하 오늘도 가는구나

'IT 공부 > 안드로이드' 카테고리의 다른 글

이클립스 느낌표 문제  (2) 2012.02.26
JSON을 활용한 검색기  (2) 2012.02.25
파서(Get)  (1) 2012.02.25
Activity 화면창  (3) 2011.11.03
Animation effect  (1) 2011.11.03

HTTP REST
웹서버 구축시 사용되는 웹서비스 이다.

Get요청
우선 메니페시트 파일에
 <uses-permission android:name="android.permission.INTERNET"/>
꼭 추가하시고!!

 try{
         HttpClient client=new DefaultHttpClient();
         HttpGet get=new HttpGet();
         get.setURI(new URI("http://rlqks132.tistory.com/"));
         HttpResponse resp=client.execute(get);
         BufferedReader br=new BufferedReader(new InputStreamReader(resp.getEntity().getContent()));
         
         String str=null;
         StringBuffer sb=new StringBuffer();
         while((str=br.readLine())!=null){
          sb.append(str).append("\n");
         }
         br.close();
         TextView tv=(TextView)findViewById(R.id.textView);
         tv.setText(sb.toString());
        }catch(Exception e){
        }

예제 입니다.^^

'IT 공부 > 안드로이드' 카테고리의 다른 글

JSON을 활용한 검색기  (2) 2012.02.25
XML을 활용한 RSS리더기  (1) 2012.02.25
Activity 화면창  (3) 2011.11.03
Animation effect  (1) 2011.11.03
화면 변화  (1) 2011.11.02


오늘... 시간을 다 버린 주요인 소스!! ㅠㅠ

SRTF 스케줄링....

디스크 스케줄링....

아직도 잘 몰라 ㅠㅠ

그러나 어찌저찌해서 제출.. 아 공부 하자.
//메인 소스
public class process {
 
 STRF STRF[];
 public static void main(String[] args) {
  new Scheduling();
 }
}

//설정
public class STRF {
 private int number;
 private int arrive_time;
 private int wait_time;
 private int burst_time;
 
 public STRF(int number,int arrive,int brust){
  this.number=number;
  this.arrive_time=arrive;
  this.burst_time=brust;
  this.wait_time=0;
 }

 public void addwaittime(){
  wait_time++;
 }
 public void deletetime(){
  burst_time--;
 }
  
 public int getNumber() {
  return number;
 }
 public void setNumber(int number) {
  this.number = number;
 }
 public int getArrivalTime() {
  return arrive_time;
 }
 public void setArrivalTime(int arrive) {
  this.arrive_time = arrive;
 }
 public int getBurstTime() {
  return burst_time;
 }
 public void setBurstTime(int burstTime) {
  this.burst_time = burstTime;
 }

 public int getWaitingTime() {
  return wait_time;
 }

 public void setWaitingTime(int waitingTime) {
  this.wait_time = waitingTime;
 } 

}

//주요소스
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;


public class Scheduling {
 
 private ArrayList<STRF> processList = new ArrayList<STRF>();
 private ArrayList<STRF> waitingList = new ArrayList<STRF>();
 
 Scheduling() {
  System.out.println("생성자 시작");
  int nextArrival = 0;
  int processIndex = 0;
  int waitingTime = 0;
  STRF currentProcess = null;
  
  try {
   setFile("test\\2.inp.txt");
  }  catch (IOException e) {
   System.out.println("IOException!!");
  }
  
  sortProcess();  
  
  nextArrival = processList.get(0).getArrivalTime();
  int time=0;
  for(time =0;;time++){
   while(time == nextArrival){
    if(currentProcess == null){
     currentProcess = processList.get(processIndex);
    }else {
     waitingList.add(processList.get(processIndex));
    }
    processIndex++;
    if(processIndex == processList.size()){
     nextArrival = 0;
    } else {
     nextArrival = processList.get(processIndex).getArrivalTime();
    }
   }
   if(currentProcess != null) {
    if(waitingList.size() != 0) {
     sortWaitingList();
     if(currentProcess.getBurstTime() > waitingList.get(0).getBurstTime()){
      waitingList.add(currentProcess);
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     }
    }    
    if(currentProcess.getBurstTime() == 0) {
     if(waitingList.size() != 0) {
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     } else if(nextArrival == 0) {
      break;
     } else {
      continue;
     }
    }    
    currentProcess.deletetime();
    waitingTime += waitingList.size();
   }   
   System.out.println("타임 플러스");
  }
  
  try {
   printProcess(waitingTime);
  } catch (IOException e) {
   System.out.println("IOException!!");
  }
 }
 
 void setFile(String filename) throws NumberFormatException, IOException{
  
  int count;

  FileReader fr = new FileReader(filename);
  BufferedReader br = new BufferedReader(fr);
  
  count = Integer.parseInt(br.readLine());
  System.out.println("count = "+count);
  for(int i=0;i<count;i++){
   System.out.println("asdf");
   String[] item = br.readLine().split(" ");
   STRF process = new STRF(Integer.parseInt(item[0]), Integer.parseInt(item[1]), Integer.parseInt(item[2]));
   processList.add(process);
  }   
  
  br.close();
  fr.close();
 }
 
 void printProcess(int waitingTime) throws IOException {
  System.out.println("파일 출력");
  FileWriter fw = new FileWriter("test\\2.out.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.println(waitingTime);
  System.out.println(waitingTime);
  pw.close();
  bw.close();
  fw.close();
 }
 
 void sortProcess() {
  System.out.println("프로세스 시작");
  for(int i=0;i<processList.size()-1;i++){
   for(int j=0;j<processList.size()-1-i;j++){
    if(processList.get(j).getArrivalTime() > processList.get(j+1).getArrivalTime() ||
     (processList.get(j).getArrivalTime() == processList.get(j+1).getArrivalTime() && processList.get(j).getNumber() > processList.get(j+1).getNumber())){
     STRF temp = processList.get(j);
     processList.remove(j);
     processList.add(j+1, temp);
     
    }
   }
  }  
 }
 
 void sortWaitingList() {
  for(int i=0;i<waitingList.size()-1;i++){
   for(int j=0;j<waitingList.size()-1-i;j++){
    if(waitingList.get(j).getBurstTime() > waitingList.get(j+1).getBurstTime() ||
     (waitingList.get(j).getBurstTime() == waitingList.get(j+1).getBurstTime() && waitingList.get(j).getBurstTime() > processList.get(j+1).getBurstTime())){
     STRF temp = waitingList.get(j);
     waitingList.remove(j);
     waitingList.add(j+1, temp);
    }
   }
  }
 }
}


하.. 답답하네 ㅠㅠ 이거 엄청 오래 했네요 ㅠㅠ

내일부터 FCFS하고 SSTF 공부해서 올릴께요

'IT 공부 > 자료구조' 카테고리의 다른 글

SRTF  (2) 2012.02.28
SSTF Scheduling  (0) 2012.02.28
FCFS  (2) 2012.02.25
[자료구조] Linked List(링크드리스트)  (0) 2012.02.22

+ Recent posts