Application Framework 어플리케이션 프레임워크 발표자 : 김 준 섭

Slides:



Advertisements
Similar presentations
6 장 객체 - 지향 설계 ③. 목차 GUI 레이아웃  전화기 키 패드 전화기 키 패드 전화기 키 패드 모양의 GUI 를 만드는 Telephone.java, TelephonePanel.java 를 완성해 보자.  주석을 참고하여 TelephonePanel.java.
Advertisements

임직원 APP 설치 가이드 경영전략처 정보기획 TF 팀. 임직원 App- 운영체제 구분  안드로이드 갤럭시, 갤럭시노트, 갤럭시 S4 [ 삼성전자 ] 옵티머스 [LG 전자 ] 베가 [ 팬텍 모토로이 [ 모토롤라 ]  ios 아이폰 [ 애플.
Unlocking Android 안드로이드 패키지 (1/2) 2 Unlocking Android 안드로이드 패키지 (2/2) 3.
2016 유성환 Hybrid MOBILE.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
CHAP 10. 액티비티와 인텐트.
CHAP 19. 구글맵.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Contents 학습목표 Canvas와 Paint 객체를 통해 화면에 원하는 도형을 그리고 속성을 변경하는 기본적인 방법에 대해 소개한다. 토스트로 메시지를 출력하는 방법과 스피커를 통해 소리를 출력하는 방법에 대해서도 알아본다. 학습내용 캔버스 그리기 객체 쉐이더 그외.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
최윤정 Java 프로그래밍 클래스 상속 최윤정
제4강 노티피케이션,메뉴,고급위젯 안드로이드 앱 개발 강좌.
Java Seminar 6.
PUzzleAlarm 컴퓨터 응용과학부 최범모.
Ch.07-5 xml-rpc 사용하기 김상엽.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
윤 홍 란 다이알로그(대화상자) 윤 홍 란
CHAP 24. nfc와 앱위젯.
CHAP 11. 액티비티와 인텐트.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
07. 메뉴와 대화상자 제목. 07. 메뉴와 대화상자 제목 메뉴를 작성하고 사용하는 방법을 배운다. 토스트의 다양한 출력 방법을 알아본다. 대화상자의 사용법을 익힌다.
7주차 Android Application.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
CHAP 8. 그래픽.
NJM Messenger 박상원 박연호.
D / K / I / T / E / C / H / N / O / L / O / G / Y
Power Java 제14장 배치 관리자.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
10장. 예외처리.
CHAP 12. 리소스와 보안.
Eclipse 를 이용한 네트워킹 퍼즐 게임 “Scrambled Net” 담당 교수님 전진우 교수님 최은아.
13. 연산자 오버로딩.
KNOW WHERE 시각적 보조자료 3 폰트 아이콘 템플릿.
CHAP 13. 방명록 만들기 실습.
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
영상처리 실습 인공지능연구실.
CHAP 5. 레이아웃.
Lesson 2. 기본 데이터형.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
CHAP 13. 서비스와 방송 수신자.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
[그림 1-1] 안드로이드 전용 어플리케이션 설치 방법
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
자바 5.0 프로그래밍.
안드로이드 서비스.
JA A V W. 06.
PMIS 서버 설정 환경설정 작성자 : 배경환.
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
11. 어댑터뷰 제목. 11. 어댑터뷰 제목 리스트뷰와 그리드뷰 활용법을 배운다. 갤러리와 스피너의 사용법을 익힌다.
( Windows Service Application Debugging )
STS 에서 웹 서버 설치 방법.
OpenCV 설정 2.21 만든이 딩딩.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
3. 모듈 (5장. 모듈).
Tensorboard in Windows
MIDP 네트워크 프로그래밍 ps lab 김윤경.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
무선랜 사용자 설명서 (Windows Vista 사용자).
SEARCH SEARCH RE RE PORT PORT RE 제목을 입력하세요. 나눔고딕 B, 21pt
Power Java 제14장 배치 관리자.
1. SNMP Setting IP 설정 NetAgent Mini 카드에 제공된 CD의 Netility 프로그램을 설치하여 프로그램을 실행시킨다. Netility 프로그램을 실행하면 네트워크에 있는 SNMP 카드를 찾게 됩니다. “Configure”를 선택하면 IP 설정.
CHAP 5. 메뉴와 대화상자.
7 생성자 함수.
6 객체.
JAVA 프로그래밍 16장 JNLP.
Presentation transcript:

Application Framework 어플리케이션 프레임워크 발표자 : 김 준 섭 발표자 : 김 준 섭 이 문서는 나눔글꼴로 작성되었습니다. 다운받기

Application Framework. 목차 Application Framework. 통지 관리자(Notification Manager) 리소스 관리자 (resource manager) 레이아웃 인플레이터 매니저 (Layout Inflater Manager)

Notification Manager

Notification Manager. 개요 주요 기능 설명 사용 예제

Notification (int icon, CharSequence tickerText, long when) 통지관리자(Notification Manager) 개요 Notification Manager. Notification? Notification (int icon, CharSequence tickerText, long when) Icon tickerText

Notification Manager. 2. 통지관리자(Notification Manager) 주요 기능 설명 Main functions.  필드  설명   number  통지 아이콘에 겹쳐서 출력될 숫자를 지정한다. 예를 들어 새로운 메시지가 10개 도착했으면 아이콘과 같이 10이라는 숫자가 표시된다.   sound  통지와 함께 출력할 소리를 Uri객체로 지정한다.   vibrate  진동방식을 지정한다. 진동할 시간과 멈출 시간을 배열로 전달함으로써 진동의 패턴을 지정한다.   ledARGB  불빛의 색상을 지정한다.    lenOnMs, lefOffMs  LED를 켤 시간과 끌 시간을 1/1000초 단위로 지정한다.  defaults  디폴트로 취할 통지 전달 방식을 지정한다.   flags  통지의 동작 방식을 지정한다. 

Notification Manager. Context Context – 통지를 발생시킨 주체와 제목 Main functions. Context Context – 통지를 발생시킨 주체와 제목 CharSequence contentTitle – 메시지 큰글씨 CharSequence contentText – 메시지 텍스트 PendingIntent contentIntent – 통지 뷰를 탭했을 때 호출할 인텐트 PendingIntent 클래스는 인텐트를 래핑하며 다른 응용프로그램으로 전달하여 실행 권한을 준다는 점에서 보통의 인텐트와 다르다. 생성자가 따로 정의되어 있지 않으므로 아래 세개의 정적 메소드 중 하나로 생성한다. PendingIntent getActivity (Context context, int requestCode, Intent intent, int flags) PendingIntent getBroadcast (Context context, int requestCode, Intent intent, int flags) PendingIntent getService (Context context, int requestCode, Intent intent, int flags) intent는 사용자가 통지 객체를 탭했을 때의 동작을 지정한다. 주로 Activity를 띄우는데 이경우 인텐트에는 FLAG_ACTIVITY_NEW_TASK 플래그를 지정해야 한다. void setLastestEventInfo (Context context, CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent) PendingIntent

getSystemService (NOTIFICATION_SERVICE) 2. 통지관리자(Notification Manager) 주요 기능 설명 Notification Manager. Main functions. 통지 객체가 준비되었으면 통지관리자로 등록한다. 통지관리자는 시스템이 제공하는 서비스이므로 객체를 직접 생성할 필요없이 아래 메소드로 구한다. getSystemService (NOTIFICATION_SERVICE) 통지관리자는 아래 세개의 메소드를 제공한다. void notify (int id, Notification notification) void cancel (int id) void cancelAll()

Notification Manager. 3. 통지관리자(Notification Manager) 사용 예제 NapAlarm.java --------------------------------------------- public class NapAlarm extends Activity {      static final int NAPNOTI = 1;      NotificationManager mNotiManager;     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);                  // 통지관리자를 가져온다.         mNotiManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);                 Button btn = (Button)findViewById(R.id.start);         btn.setOnClickListener(new Button.OnClickListener() {             public void onClick(View v) {                 Toast.makeText(NapAlarm.this, "안녕히 주무세요", 0).show(); . .                               // 잠시 후에 실행하게 함.                 v.postDelayed(new Runnable() {                     public void run() {                         // 상단 상태란에 나타날 메시지를 지정한다.                         Notification noti = new Notification(R.drawable.icon, "일어나세요", System.currentTimeMillis());                         noti.defaults |= Notification.DEFAULT_SOUND;                         noti.flags |= Notification.FLAG_INSISTENT;              //사용자가 통지를 탭 했을때 출력할 창을 설정한다.                         Intent intent = new Intent(NapAlarm.this, NapEnd.class);                         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                         PendingIntent content = PendingIntent.getActivity(NapAlarm.this, 0, intent, 0);                         // 상태란을 확장시켰을때 보여지는 메시지 지정.                         // 클릭했을 때 실행할 Intent 지정.                         noti.setLatestEventInfo(NapAlarm.this, "기상 시간", "일어나! 일할 시간이야.", content);                                      mNotiManager.notify(NapAlarm.NAPNOTI, noti);                    }                }, 5*1000);            }         });             } }getSystemService (NOTIFICATION_SERVICE) NapEnd.java  public class NapEnd extends Activity {      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.napend);             NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);          nm.cancel(NapAlarm.NAPNOTI);             Button btn = (Button)findViewById(R.id.end);          btn.setOnClickListener(new Button.OnClickListener() {              public void onClick(View v) {                   finish();              }         });     } }

3. 통지관리자(Notification Manager) 사용 예제 실행화면.

Connectivity Manager

Connectivity Manager. 개요 사용 예제 (네트웍을 사용할 시점에서의 체크)

Connectivity Manager. 1. 연결 관리자(Connectivity Manager)개요 1. 사용 가능한 네트워크에 대한 정보를 조사한다. 2. 각 연결 방법의 현재 상태를 조사한다. 3. 네트워크 연결 상태가 변경될 때 모든 응용 프로그램에게 인텐트로 알린다. 4. 한 연결에 실패하면 대체 연결을 찾는다.

Connectivity Manager. 사용 예제 (네트웍을 사용할 시점에서의 체크) 사용 예제 (네트웍을 사용할 시점에서의 체크) Connectivity Manager. 먼저 permission 을 설정한다. 네트웍을 사용하기 위한 permission 은 아래와같다. 이 내용을 AndroidManifest.xml 에 추가한다. INTERNET 만 추가하면 안된다. ACCESS_NETWORK_STATE 도 추가하기 바란다. <uses-permission android:name="android.permission.INTERNET"> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"> </uses-permission></uses-permission> 다음은 ConnectivityManager 객체를 통해 WIFI 와 3G 상태를 체크할수 있는 객체를 반환해서 상태를 체크한다 ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

Connectivity Manager. 사용 예제 (네트웍을 사용할 시점에서의 체크) 사용 예제 (네트웍을 사용할 시점에서의 체크) Connectivity Manager. WIFI, 3G 인지 구분없이 네트웍 연결상태가 제대로 되었는지에 대한 소스는 아래와 같다. isConnectionted 함수를 써서 확인한다. //연결매니저와 3G,wifi정보를 받아올 객체 선언 ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mobile.isConnected() || wifi.isConnected()){ // WIFI, 3G 어느곳에도 연결되지 않았을때 Log.d(TAG, "Network connect success"); }else{ Log.d(TAG, "Network connect fail"); }

사용 예제 (네트웍을 사용할 시점에서의 체크) Connectivity Manager. 결과화면 3G WiFi

Layout Inflater Manager

Layout Inflater Manager. 개요 주요 기능 설명 사용 예제

Button b = new Button(this) // this 는 Context 를 의미 레이아웃 인플레이터 관리자 개요 Layout Inflater Manager. Layout Inflater Manager? 안드로이드에서  어떤 뷰가 화면에 보일려면 반드시 객체화(인스턴스) 되어 있어야 하는데, 안드로이드에서 뷰 객체를 생성하는 과정은 크게 2가지가 있음. 직접 코드상에서 생성하는 방법이 있고 그리고 xml 파일을 통해서 객체를 생성하는 방법이 있습니다. 즉 인플레이트 라는 것은 xml 파일을 통해서 객체화를 시키는 것을 말합니다. Button b = new Button(this)   // this 는 Context 를 의미

Layout Inflater Manager. 2. 레이아웃 인플레이터 관리자 주요기능 Layout Inflater Manager. 인플레이터로 기본적으로 레이아웃을 얻어오는 방식은 두가지가 있음. 각각 차이점은 inflater는 system에서 얻어 오는 방법이고, inflater2는 Activity에서 제공하는 메소드를 이용해 얻어 오는 방법임. - LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); - LayoutInflater inflater2 = getLayoutInflater();

Layout Inflater Manager. 2. 레이아웃 인플레이터 관리자 주요기능 Layout Inflater Manager. inflater는 View객체를 반환 해주는 4가지 메소드가 존재함. // 리소스(R.layout.xxx), root inflater.inflate(resource, root); 리소스는 프로젝트/res/layout 폴더에 들어 있는 xml 파일을 지정 하면됨 // XMLparser, root inflater.inflate(parser, root); XMLparser는 잘 안쓰인다고 함. // 리소스(R.layout.xxx), root, attach 조건(보통 false) inflater.inflate(resource, root, attachToRoot); root는 내가 지정한 리소스(xml 파일)이 어디에 붙을 껀지 지정하는 것임(없으면 null 넣으면됨) // XMLparser, root, attach 조건(보통 false) inflater.inflate(parser, root, attachToRoot); attach 조건 이게 좀 복잡한데 이해 하려면  LayoutParams 이란 걸 알아야함. LayoutParams은 xml 상에서 (android:layout_width, android:layout_height) 을 code로 정의 해주는 녀석인데 이녀석에 대한 생성 기준을 어디로 설정 할 것이냐 묻는 것이다.

Layout Inflater Manager. 3. 레이아웃 인플레이터 관리자 예제 Layout Inflater Manager. show_item.xml 파일을 list라는 LinearLayout 에다가 add 하고 싶다고 한다면? //  LinearLayout 객체 생성 //  LinearLayout 객체 초기화  //  LayoutInflater 객체 생성 //  View 객체 생성 //  LinearLayout 객체에 View 객체 추가  LinearLayout list = (LinearLayout)findViewById(R.id.list); list.removeAllViews(); LayoutInflater inflater = getLayoutInflater(); View view =inflater.inflater(R.layout.show_item, list(View를 붙일 녀석), false(붙일 조건)); list.add(view);

감사합니다 thank you. 이 문서는 나눔글꼴로 작성되었습니다. 다운받기