강사컴퓨터 id \\203.236.209.131

톰캣서버 구동
http://203.236.209.131:8080/
http://203.236.209.131:8080/index.html
http://203.236.209.131:8080/data/emp.xml
  String path="http://203.236.209.131:8080/data/emp.xml";
  URL url = new URL(path);
xpp2.setInput( url.openStream( ) , "UTF-8"); NETWORK연결
xpp.setInput( new StringReader("<foo>HW</foo>"); 자체

C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\data
C:/Program Files/Apache Software Foundation/
                         Tomcat 8.0/webapps/data폴더에서 emp.xml문서

http://docs.oracle.com/javase/7/docs/api/

자바기초의  java.Net팩키지
URL, HttpURLConnection

자바기초의  java.io팩키지
InputStream is = url.openStream( )
InputStreamReader클래스(InputStream클래스)
BufferedReader클래스(Reader클래스)

371페이지 단위설명
363페이지 칼라지정
241페이지 Button
242페이지 ImagView
      TextView, GridView, ListView, VideoView
     Spinner,   


io처리및 network처리 => 톰캣서버 응용
쓰레드

File메뉴=>Close Project한후 새로운문서작성
플젝: ADT0303
         |--io처리및 network처리=> URL, HttpURLConnection
                                            쓰레드개념

<LL1 수직>
  <LL2 수평> 버튼1,버튼2,버튼3 =>onClick=move </LL2>
   ET MM
</LL1>


class Game 상속 Activity implements Runnable, View.OnClickListener {
  public void onCreate(Bundle){ start(); }
  public void run(){무한루프처리  위젯관련속성변경 runtime에러발생 }
  public void onClick(View v) {
    //1번째버튼 클릭할때마다 20씩증가 tv1.setText(40)
    //2번째버튼 클릭할때마다 5씩증가  tv2.setText(15)
    //3번째버튼 1초간격으로  1씩증가 tv3.setText(6)
  }
}//class END

 

 


File메뉴=>Close Project한후 새로운문서작성
플젝: ADT0302
         |--ListView=>전화번호, 카톡에 리스트목록
         |--Spinner=>콤보박스형태
 android:theme="@style/AppTheme">

 android:theme="@android:style/Theme.Holo.Light.DarkActionBar" >
 


"boy", "coffee", "dog", "donald", "rabbit", "test"

class  First   상속 Activity{  }
class  AAA   상속 Fragment{ aaa.xml }
class  BBB   상속 Fragment{ bbb.xml }
class  CCC   상속 Fragment{ ccc.xml }

class  MyAdapter   상속 BaseAdapter{  }
class  MyView   상속 View{  }

www.apache.org=>Tomcat=> 다운로드 8버젼
tomcat.apache.org

http://127.0.0.1:8080/
http://localhost:8080/

ADT0229플젝
  class  First  상속 Activity{ }
 <LL1  방향=수직>
    <LL2 방향=수평>
       안내=tv, 입력=et, 버튼=등록, 버튼=삭제
    </LL2>
    <ListView  ~~~/>
 </LL1>
 

_________________________________________________________________
ADT0229플젝
  class  First  상속 Activity{ }

첫번째 sd카드에 그림파일 읽어서 출력
  storage/external_SD/test폴더에 그림파일추가
  class  myPictureView 상속 View {
   onDraw(cs){ cs.drawBitmap(1,2,3,4) }
  }
 
  activity_main.xml문서에서 맨마지막
  <com.hb.adt0229.myPictureView ~~~>
  
  MainActivity.java문서에서  myPictureView연결
  MainActivity.java문서에서  SD카드경로접근해서 파일
 


카메라, 캡쳐, 주사위게임숫자를 음성센서
========아래코드는 기술하지 마세요============
  class  MyPicture 상속 View { sd카드에 있는 그림로드} =>layout레이아웃문서등록
  class  MainActivity 상속 Activity{ }

각종센서 android.hardware팩키지 참고
버튼배열, 버튼이
여러일때 xml문서에 android:onClick="move"

CheckBox박스는 interface상속받아서 메소드재정의
여러분폰 경로및 SDcard확인....
 
쓰레드관련-Thread, Runnable인터페이스
class First 상속 Activity , Thread{ } 에러입니다

 

______________________________________________________________
ADT0225플젝
Two.java문서
class Two 상속 Activity {
   버튼처리를 배열로 응용, tvNumber숫자표시
}
 체크박스 CheckBox, 인터페이스

AndroidManifest.xml문서 각종 permision권한
제조사폰 각종 센서 활용


_______________________________________________________________
ADT0224플젝
Last.java문서
class Last 상속 Activity {
   class MyView 상속 View{
      public void onDraw( Canvas canvas) { 그림, shape }
      //터치이벤트 마우스down, 마우스up이벤트 동작  { onDraw메소드호출 } 
   }
} //clas END

레이아웃=배치실습
 LinearLayout제외한 GridLayout, TableLayout, RelativeLayout
 Interface활용 CheckBox체크박스 확인

______________________________________________________________________________________
첫번째 안드로이드에서 보여주는  틀=Activity=>생성될때 onCreate(Bundle){ }
          액티비티 이동, 사용할때 AndroidManifest.xml등록
          classs First 상속 Activity { MyPicture클래스, MyPicture클래스  }
두번째  class MyPicture 상속  View{ onDraw(1){ } }
           class MyAdapter  상속  BaseAdapter{ View getView(1,2,3){ } }

안드로이드 4대구성
1.Activity
2.BR
3.CP=Content Provider=>여러분 전화번호 데이타번호 =>ListView출력
4.Service

세번째 class First 상속 Activity{  Intent클래스도움 }
          class Two  상속 Activity{ }


Object최상위클래스
 |-Context추상클래스
    |-ContextWrapper클래스
       |-ContextThemeWrapper클래스
          |-Activity클래스
             |--Three 상속 Activity클래스
class Three 상속 Activity{ public void onCreate(1){ }  }
class MyAdapter 상속 BaseAdapter{배열 ,생성자, 4개추상메소드기술 }

 눈에 보이는 비주얼한 위젯=widget(Button, ImageView,BaseAdapter)
 반드시 Activity~Context클래스랑 연결
 즉 Activity아닌 다른클래스 상속받으면 생성자를 통해서 연결

================참고하면 좋아요==================
Log.v(... , ...);
Log.d("가짜" , 메세지);
Log.i(... , ...);
Log.w(... , ...);
Log.e(... , ...);
 
v,d,i,w,e 로 로그가 구별이 되는데 이것을 무엇을 의미하는 것일까?
v ==> Verbose (다양한 정보를 출력하기 위한 Level)
d ==>Debug (문제 발생시 문제 발생된 원인을 디버깅 하기 위한 상태 로그 Level)
i ==> Info (각종 클래스,변수의 정보나, 프로그램의 상태 정보를 출력하기 위한 로그 Level)
w ==> Warning (프로그램의 상태에 문제가 발생할 소지가 있는 부분을 알리기 위한 경고 로그 Level)
e ==> Error (프로그램의 치명적인 문제 발생을 알리는 로그 Level)


ADT0224플젝
  First.java = activity_first.xml
  Two.java = activity_two.xml
 
  res
   |--drawable=>그림 4개 먼저 복사한후 붙여넣기
_____________________________________________________________________________
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FFFF00"
        android:gravity="center"
        android:textSize="20pt"
        android:textColor="#FF0000"
        android:text="안내문변경 Test" />

</LinearLayout>
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

안드로이드 프로젝트이름 ADT0223
 app최상위 가상디렉토리생성
  |--manifests
      |--AndroidManifest.xml=>앱어플정보, Activity등록
  |--java
      |--com.hb.adt0223팩키지
           |--First.java=>activity_first.xml연결
  |--res==> R.java기록=>각각 category별 static화 상수 클래스등록
      |--drawable
      |--layout
           |--activity_first.xml
      |--menu
      |--values

안드로이드 4대구성요소
1)Activity=>반드시 틀이 있어야 사용자가 눈으로확인
  class First 상속  Activity{
     public void onCreate(Bundle bun) {
         super.onCreate(bun);
         this.setContentView(R.layout.activity_first);

         Two.java문서이동 Intent it = new Intent(First.this, Two.class);
         it.startActivity( );

         //현재,부모클래스주소를 참조하는 키워드 this
          MyPicture mp = new MyPicture(this);
     }//end

      class  MyPicture 상속 View { 생성자,드로잉메소드  }//내부클래스생성
   }//First class END


  class Two 상속  Activity{
     public void onCreate(Bundle bun) {  }
  }//Two class END

2)BR=BroadcastReceiver=>알람, 메세지,밧테리
3)CP=ContentProvider=>여러분폰 주소록으로 실습
4)Service=뒷단에서 안보이면서 돌아가는 서비스


Object최상위클래스
 |-Context추상클래스
    |-ContextWrapper클래스
       |-ContextThemeWrapper클래스
          |-Activity클래스
             |--First 상속 Activity클래스
     class First 상속 Activity{ public void onCreate(1){ }  }
     class MyPicture 상속 View{ 생성자, Draw(1){ } }

여러분 소유 안드로이폰
제조사USB드라이브

________________________________________________________________________________________

안드로이드 디렉토리 구조
 app최상위 가상디렉토리생성
  |--manifests
      |--AndroidManifest.xml=>앱어플정보, Activity등록
  |--java
      |--com.hb.adt0216팩키지
           |--First.java=>activity_first.xml연결
           |--Two.java=>activity_two.xml연결
  |--res==> R.java기록=>각각 category별 static화 상수 클래스등록
      |--drawable
      |--layout
           |--activity_first.xml
           |--activity_two.xml
      |--menu
      |--values

안드로이드 4대구성요소
1)Activity=>반드시 틀이 있어야 사용자가 눈으로확인
  class First 상속  Activity{
     public void onCreate(Bundle bun) {
         super.onCreate(bun);
         this.setContentView(R.layout.activity_first);
         btn1=(Button)this.findViewById(R.id.btnImage);
         //현재,부모클래스주소를 참조하는 키워드 this
          MyPicture mp = new MyPicture(this);
          MyAdapter dap = new MyAdapter(this);
     }//end

      class  MyPicture 상속 View { 생성자,드로잉메소드  }//내부클래스생성
      class  MyAdapter 상속 BaseAdapter{ 생성자,대량데이타표시메소드 }
   }//First class END

 


   물리적으로 새로운 클래스 생성하든 전혀 상관없어요
   class  MyPicture 상속 View { //그림,shape드로잉
     public void onDraw(Canvas  cv){  드로잉,shape작업 }
   }//class END

   class  MyAdapter 상속 BaseAdapter{ //GridVew, ListView, Gallery, Spinner
           4개추상메소드정의
   }//class END

 

 

2)BR=BroadcastReceiver=>알람, 메세지,밧테리
3)CP=ContentProvider=>여러분폰 주소록으로 실습
4)Service=뒷단에서 안보이면서 돌아가는 서비스

 

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
import java.io.File;

public class Seven 상속 Activity {
  public void onCreate(Bundle bun){
       String path="C:/CookAndroid/mypage폴더";
       new File(path).mkdir( ); //anonymous익명의 개체
      btn1.setOnClickListener(new View.OnClick리스너( ){
        public void onClick(View v){ this는 익명의개체를 가르킴}
      });
  }//end

   public class Game {  
     반드시 생성자를 기술해서 Seven에 있는 Activity연결되어야함
   } //내부클래스end
}//Seven외부class END


Object최상위클래스
 |-Context추상클래스
    |-ContextWrapper클래스
       |-ContextThemeWrapper클래스
          |-Activity클래스
             |--First 상속 Activity클래스
     class First 상속 Activity{ public void onCreate(1){ }  }
     class Game 상속 View{ public void onDraw(1){ } }

1) this키워드로  Activity~Context까지 접근가능해요
2) res에 자원을 추가하면 R.java등록 카테고리별로static 상수화final
     |-drawable=>그림추가 R.java등록 drawable클래스 static 상수화final 생성됨
3) id찾는 메소드  findViewById(숫자상수)   


class Naver {
  public static void main(String[ ] args) {
      //미녀는 석류를 좋아해요, static은 static만좋아해요
     //Daum da = new Daum( );
     Daum.display( "구글플레이어" ); 직접접근하기위해서는 static
  }//main end
}//class END

class Daum {
  public  static void display( String gg){중요한내용기술 }//end
}//class END

Toast.makeText(First.this, "안내문", 1000) ;
String data="1200";
int b =Integer.parsetInt(data);

class Three 상속 Activity {
  Three클래스 MyAdapter클래스

}//class END

public class MyAdapter 상속 BaseAdapter{  }

안드로이드에서 Adapter는 대량데이타 관리및 취급
그림을 표시하는 GridView, Gallery, Spinner, ListView
ListView위젯에  여러분폰에 저장된 전화번호데이타 꺼내서 출력


class First 상속 Activity {
  public void onCreate(Bundle bun){
    Activity에 접근하는 키워드 this
  }//end
}//class END

|--Context최상위
     |-ContextWrapper
        |-ContextThemeWrapper
          |-Activity클래스
              |-First클래스에서 this키워드

Button btn1=(Button)this.findViewById(R.id.btnImage);
Button btn5= new Button( this ); //저장
모든위젯의 99%는 반드시 Activity참조해야함

xml문서의 id값에 접근하는 메소드 findViewById(상수)
View  findViewById(상수)

Activity클래스의 중요메소드
 findViewById(id), finish(X), setContentView(레이아웃)

android.widget팩키지.   Button클래스
android.widget팩키지.   ImageView클래스
android.view팩키지.      View클래스
android.widget팩키지.   Toast클래스
android.app팩키지.       Activity클래스
android.content팩키지.  Content클래스

 

안드로이드 도움말
http://developer.android.com/reference/android/app/Activity.html#pubmethods
왼쪽상단 android.app
왼쪽하단 Activity클릭 조상관계


   class Two extends Activity {
     public void  onCreate(Bundle saveInstanceState){
          double avg=78.9;  //실수형 8Byte=표준타입
          String data="1200"; //문자열String클래스
          int a=(int)avg;
          int b=Integer.parseInt(data); //int표준타입=primitive type
     }//end
  }//class END

______________________________________________________________________
  class Game {   static키워드A메소드~~~,  static필드3~~}
  자바,안드로이드에서 static키워드가 있으면
  클래스이름직접접근.메소드( )

  안드로이드에서 id찾는 메소드
   findViewById(R.id.btnImage);
   View ew = findViewById(int형); 정답
   Button btn1 = (Button)findViewById(int형);

____________________________________________________________________________________
자바언어의 특징
1. 클래스상속 extends, interface상속 implements

public abstract class  Father{
  //추상메소드가 하나라도 있으면 자동 추상클래스
  public abstract void bank(); //메소드를 선언만=추상메소드
  public void bc(){  구현및기술=내용이 없어요 }
}//classs END

class  Son  extends Father{
  public void game( ){
    this키워드 부모껏, 내껏 메소드및 필드에 접근
  }//game함수=메소드

 반드시 bank( )추상메소드 재정의
  @Override  //키워드는 삭제해도 에러없어요.
  public void bank( ){  내용이없어도 재정의=overriding }
}//class END

***** 안드로이드 단축키워드 *****
 단어,키워드를 모를때 Ctrl키 + space
 클래스임포트 alt + enter


안드로이드 디렉토리 구조
 app최상위 가상디렉토리생성
  |--manifests
      |--AndroidManifest.xml=>앱어플정보가 xml기록
  |--java
      |--com.hb.adt0216팩키지
           |--First.java=>activity_first.xml연결
           |--Two.java=>activity_two.xml연결
  |--res==>자원은  R.java기록=>layout.java=>전부static상수
      |--drawable=>그림파일복사후 붙여넣기
      |--layout
           |--activity_first.xml=> R.layout.activity_first
           |--activity_two.xml
      |--menu
      |--values
____________________________________________________________________________________
  class Young {   static키워드A메소드~~~,  static필드3~~}
  안드로이드에서 id찾는 메소드
   findViewById(R.id.btnImage);
   View ew = findViewById(int형); 정답
   Button btn1 = (Button)findViewById(int형);

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

</LinearLayout>

자바도움말 api함수
http://docs.oracle.com/javase/7/docs/api/
http://docs.oracle.com/javase/8/docs/api/
왼.상 java.util팩키지
왼.하 Calendar클래스


class  Activity{
  public void bank(){300억}
}//classs END

class  Son  extends Activity{
  //당연히 main함수기술X
  public void game( ){
    this키워드 부모껏, 내껏 메소드및 필드에 접근
    super.bank(); 조상님껏=부모껏접근
    this.bank();내껏=자식클래스메소드
  }//game함수=메소드
  public void bank(){제로상태}
}//class END


____________________________________________________________________________________
이름: 김영림(강사)
강사컴퓨터 ip
\\203.236.209.131

C:\CookAndroid

수업시작및 종료시간
7:15~10:15
10시 5분 이후에 지문

수업과목
스트럿츠 & 스프링 프레임워크

우리의 작업은 CookAndroid 입니다
C:\CookAndroid

SDK설치시작시간 8:34
_________________________________________________________________
1. 자바언어특징
1)대소문자를 철처히 구별
2)문장마지막 세미콜론 있음
3)한줄주석 //  여러줄/*  */
4)클래스이름 저장이름 동일
   class Test{ } test.java에러 Test.java

2. 안드로이드입장에서 클래스설명
 안드로이드는 기본틀 Activity클래스
  public class First extends Activity {
    public void onCreate(Bundle icicle){
       super.onCreate(icicle);//꼭 있어야 함
       setContentView(R.layout.activity_first); //xml레이아웃문서
    }//onCreate end
  } //class END


http://developer.android.com/reference/android/widget/Button.html

3. xml문서와  Java문서 연결원리
자원=Resources(레이아웃,그림,테마,스타일,기타등등)
자원은 자동으로 R.java클래스파일에 등록
결론 public static final키워드 자동등록
R.layout.first
R.drawable.

epp212.exe=>실행=>확인=>예=>복사시작
=> 확인=>확인=>바탕화면에 빨간수첩아이콘

4. 안드로이드교재 118~119페이지 레이아웃배치도
   안드로이드교재 258페이지 자바에서
    기본화면은 Activity상속


구글에서 안드로이드버젼 A~Z
a: apple pie
b: banana bread
c: cupcake
d: donut
e: eclair
f: froyo
g: ginder bread =>API 10버젼
h: hony com
i: ice cream
j: jerry bean
k: kit kat
l: lollipop
m: marshmallow =>6.0버젼 API 23버젼

 

 

 


 

'앱프로그래밍 > android' 카테고리의 다른 글

android thread  (0) 2016.03.07
android 채팅  (0) 2016.03.07
fragment app 예제  (0) 2016.03.03
xml 파일읽기  (0) 2016.03.02
android  (0) 2016.02.26
by 메렁키키 2016. 3. 3. 21:53