강사컴퓨터 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버젼
RECENT COMMENT