User Interface Android GUI Tool OpenGL API XML Writer Optimized Layout Algorithm WPF Component Inter.

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.
J0 1 Marco Ronchetti - Web architectures – Laurea Specialistica in Informatica – Università di Trento Java XML parsing.
Bruce Scharlau, University of Aberdeen, 2010 Android UI, and Networking Mobile Computing Based on android-sdk_2.2 Unless otherwise stated, images are from.
Android OS : Core Concepts Dr. Jeyakesavan Veerasamy Sr. Lecturer University of Texas at Dallas
Introduction.  Professor  Adam Porter 
Table of Contents This document describes about XML application to control, customize, initiate action of phone. Overview of XML Application Each Function.
 User Interface - Raeha Sandalwala.  Introduction to UI  Layouts  UI Controls  Menus and ‘Toasts’  Notifications  Other interesting UIs ◦ ListView.
Karan Seth Rahul Dureja Salim Ali Khan.  Generate Year based timelines for celebrities.  Freely available Wikipedia datasets are being used.  Sax parser.
Session 6 Server-side programming - ASP. An ASP page is an HTML page interspersed with server-side code. The.ASP extension instead of.HTM denotes server-side.
Android Application Development. Agenda  Android Business Model  Why Android  Android application market space  Market Segments & Target customers.
Android Programming Beomjoo Seo Sep., 12 CS5248 Fall 2012.
Emerging Platform#4: Android Bina Ramamurthy.  Android is an Operating system.  Android is an emerging platform for mobile devices.  Initially developed.
Android UI, and Networking. Can do most networking on Android Bluetooth only on 2.0, Not supported with version 1.6.
Networking Nasrullah. Input stream Most clients will use input streams that read data from the file system (FileInputStream), the network (getInputStream()/getInputStream()),
WaveMaker Visual AJAX Studio 4.0 Training Studio Overview.
JavaScript & jQuery the missing manual Chapter 11
© Keren Kalif Intro to Android Development Written by Keren Kalif, Edited by Liron Blecher Contains slides from Google I/O presentation.
Software Architecture of Android Yaodong Bi, Ph.D. Department of Computing Sciences University of Scranton.
Take a leap towards the most promising technology
Favorite Twitter® Searches App Android How to Program © by Pearson Education, Inc. All Rights Reserved.
Android Info mostly based on Pro Android 3.  User Applications  Java Libraries – most of Java standard edition ◦ Activities/Services ◦ UI/Graphics/View.
Android development basics Introduction,Structure,Development Boncho Valkov.Net Developer.
Tip Calculator App Building an Android App with Java © by Pearson Education, Inc. All Rights Reserved.
Networking: Part 2 (Accessing the Internet). The UI Thread When an application is launched, the system creates a “main” UI thread responsible for handling.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
Mobile Application Development using Android Lecture 2.
DUE Hello World on the Android Platform.
CS378 - Mobile Computing Intents.
16 Services and Broadcast Receivers CSNB544 Mobile Application Development Thanks to Utexas Austin.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
XML Parsers Overview  Types of parsers  Using XML parsers  SAX  DOM  DOM versus SAX  Products  Conclusion.
Asst Prof. Saeed Ahmadi Software Engineering CSF Kabul University 1.
INTRODUCTION TO ANDROID. Slide 2 Application Components An Android application is made of up one or more of the following components Activities We will.
CS378 - Mobile Computing Intents. Allow us to use applications and components that are part of Android System – start activities – start services – deliver.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
ANDROID L. Grewe Components  Java Standard Development Kit (JDK) (download) (latest version)  AndroidStudio.
MAKANI ANDROID APPLICATION Prepared by: Asma’ Hamayel Alaa Shaheen.
Introduction to Android
SAX2 and DOM2 Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Android System Security Xinming Ou. Android System Basics An open-source operating system for mobile devices (AOSP, led by Google) – Consists of a base.
When we create.rtf document apart from saving the actual info the tool saves additional info like start of a paragraph, bold, size of the font.. Etc. This.
HW#9 Clues CSCI 571 Fall, HW#9 Prototype
1 Introduction JAXP. Objectives  XML Parser  Parsing and Parsers  JAXP interfaces  Workshops 2.
Recap of Part 1 Terminology Windows FormsAndroidMVP FormActivityView? ControlViewView? ?ServiceModel? Activities Views / ViewGroups Intents Services.
TODAY Android Studio Installation Getting started Creating your 1 st App Beginning to understanding Intents.
7-Mar-16 Simple API XML.  SAX and DOM are standards for XML parsers-- program APIs to read and interpret XML files  DOM is a W3C standard  SAX is an.
Flag Quiz Game App Android How to Program © by Pearson Education, Inc. All Rights Reserved.
Review IS Overview: Data  Inside the application Collections  Outside the application Database XML  Getting/displaying Swing  Communicating.
Class on Fragments & threads. Fragments fragment is a modular section of an activity, which has its own lifecycle, receives its own input events, and.
CHAPTER 9 File Storage Shared Preferences SQLite.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
6/12/2016 TOPS Technologies- Android training -
The Ingredients of Android Applications. A simple application in a process In a classical programming environment, the OS would load the program code.
Mobile Application Development Data Storage. Android provides several options for you to save persistent application data. The solution you choose depends.
Java for android Development Nasrullah Khan. Using instanceof in Android Development the classes such as Button, TextView, and CheckBox, which represent.
The Flag Quiz app tests your ability to correctly identify 10 flags from various countries and territories.
USING ANDROID WITH THE INTERNET. Slide 2 Lecture Summary Getting network permissions Working with the HTTP protocol Sending HTTP requests Getting results.
Editing a Twitter search. Viewing search results in a browser.
Introduction to Android Programming
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
Lecture 2: Android Concepts
Mobile Applications (Android Programming)
Android Studio, Android System Basics and Git
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
Application Development A Tutorial Driven Course
CA16R405 - Mobile Application Development (Theory)
Emerging Platform#3 Android & Programming an App
XML Programming in Java
Presentation transcript:

User Interface Android GUI Tool OpenGL API XML Writer Optimized Layout Algorithm WPF Component Inter

Middle Data structure manager User Interface APIs Today App(Core) Web World Interface Web Data Analysis Module Timer Module Alarm Module Configuration Manager User World Dismiss Snooze Time (MM/DD HH:MM) Info display1 Home / Setting (Tab layout) Info display2 Info display3 Info display4 Interface

Middle Data structure manager User Interface APIs Today App(Core)Web World Web DB server Web-pages in Website Open APIs Interface Time Check Thread HTML Parser XML Parser Web Data Analysis Module Timer Module Parsing Data Structure Interface User World Alarm Event Notification Alarm Module Configuration Manager Setup App Module Configuration Data Storage(for setup) 1. Request Registered Task Structure Registered Task Structure 2. Run Registered Task 3. Change Activity & Run Parser 4. HTTP Request & Respond 5. Save Web data 6. Show data In app

Docum ent BuilderFactory (SAX Parser) XML Parser HTML Parser HttpURLConnection Request Response Request Response Input Stream Document class NodeList ArrayList Get XML file Ask to run get Element by Name Return all data In String Get Web Data that a user needs Get Start Point Get End Point StringTokenizer String Result Get HTML file Remove unnecessary Data StringBuilder class

담 당담 당내 용내 용 박세범 Timer Module 구현 시스템 통합 & 디버깅 박세범 Alarm Module 구현 박세범 XML(RSS) Parser 구현 및 Data 추출 박세범 Module Layout Mapping 작업 진주영 HTML Parser 구현 진주영 DKU Web Data 분석 및 추출 진주영 Setup App Module 구현 진주영 각 Module 별 자료 구조 접근 API 구현 조대영 Android SDK 학습 조대영 Layout Prototype 생성 조대영 Custom View 작업 조대영 세부 Layout 구현 김민화회의록 및 문서 작업 김민화형상 관리

담 당담 당내 용내 용 박세범 Timer Module 구현 시스템 통합 & 디버깅 박세범 Alarm Module 구현 박세범 XML(RSS) Parser 구현 및 Data 추출 박세범 Module Layout Mapping 작업 진주영 HTML Parser 구현 진주영 DKU Web Data 분석 및 추출 진주영 Setup App Module 구현 진주영 각 Module 별 자료 구조 접근 API 구현 조대영 Android SDK 학습 조대영 Layout Prototype 생성 조대영 Custom View 작업 조대영 세부 Layout 구현 김민화회의록 및 문서 작업 김민화형상 관리

Configuration Manager Setup App Module Configuration Data Storage(for setup) Alarm Module Time Check Thread Ring & Vibration Creator Task Executor Note module DataBase Accessor Note Creator & Editor Web Data Analysis Module XML Parser HTML Parser Thread Creator Thread Handler TODAY Manager(CORE) Serialize & Deserialize Module Object Serializer Object Deserializer Item Maker Mapping Resource Set Custom Class Set Web World Data Storage DB SharedPreference FileSystm Data Manufacturer User World Interface Request & Response Interface

XML Parser NEWS Parsing Handler Weatjer Parsing Handler HTML Parser Notice Handler Food Handler TimeTable Handler Thread Creator Thread Handler

전체 Package 에 대한 설명을 한다.

Alarm Module Time Check Thread Ring & Vibration Creator Task Executor Note module DataBase Accessor Note Creator & Editor Web Data Analysis Module XML Parser HTML Parser Thread Creator Thread Handler TODAY Manager(CORE) Serialize & Deserialize Module Object Serializer Object Deserializer Item Maker Mapping Resource Set Custom Class Set Web World Data Storage DB SharedPreference FileSystm Data Manufacturer User World 1. Run registered Task 2. Request & Response 3. Get FileStream 2. Request to access DB 3. Run Query 2.2 Return String 3. Get

Alarm Module Time Check Thread Ring & Vibration Creator Task Executor Note module DataBase Accessor Note Creator & Editor Web Data Analysis Module XML Parser HTML Parser Thread Creator Thread Handler TODAY Manager(CORE) Serialize & Deserialize Module Object Serializer Object Deserializer Item Maker Mapping Resource Set Custom Class Set Web World Data Storage DB SharedPreference FileSystm Data Manufacturer User World 1. Run registered Task 4. Parsing 6. Show Activities 2. Request to access DB 3. Run Query 4. Return String 5. Shot String

HTTP Parser 부분이 들어가야 할 자리

Docum ent BuilderFactory (SAX Parser) XML Parser HTML Parser HttpURLConnection Request Response Request Response Input Stream Document class NodeList ArrayList Get XML file Ask to run get Element by Name Return all data In String Get Web Data that a user needs Get Start Point Get End Point StringTokenizer String Result Get HTML file Remove unnecessary Data StringBuilder class

Local Event? Global Event? Use Global Event Android Mechanism Running task As Service

1. BraodCaset Sender 생성 2. System Service 등록 3. BroadcastReceiver 생성 4. 사용자가 정의한 작업 수행

Service Broadcast 등록 BroadCast Receiver Dialog 띄우기 Vibration Bell Creator Main_Activity 띄우기

Android ListView Mechanism

ListView1 ListView2 ListView3 3 개의 ListView 들에 각각의 Item 들을 동적으로 추가하는 방식으로 설계되어 있다.

Dankook_Notice.java Food.java Memo.java News.java TimeTable.java Weather.java Dankook_Notice.java Food.java Memo.java News.java TimeTable.java Weather.java Main Activity Object Handling Package 1. Create Object Web & DB 2. parsingInfo() 3. ArrayList Notice_Adapter.java Food_Adapter.java Memo_Adapter.java TT_Adapter.java Weather_Adapter.java Notice_Adapter.java Food_Adapter.java Memo_Adapter.java TT_Adapter.java Weather_Adapter.java Adapter Package 4. Create Adapter Register Adapter into ListViews

아래와 같이 BaseAdapter 를 상속받은 형태이다

R.Java XML Data Mapping DataStructure TreeMap & HashMap 위 과정을 통하여, 동적으로 Layout Resource 에 접근할 수 있다. 동적 Layout 접근을 위한 Resource Mapping

Android Activity Communication Mechanism Intent putExtra method Serialization Byte of Stream

intent.putExtra("FoodArray", ObjectSerializer.serialize((ArrayList )food.getArrayList())); … intent.putExtra("TimeTableArray", ObjectSerializer.serialize((ArrayList )timeTable.getArrayList())); …. intent.putExtra("NewsArray", ObjectSerializer.serialize((ArrayList )news.getArrayList())); ….. Intent Intent 를 활용하여 Parsing 된 ArrayList 를 넘긴다

SQLiteSharedPreference SharedPreference : 안드로이드 내부에 저장, 비교적 간단한 자료들을 저장 SQLite : Android SDK 에서는 SQLite 를 사용하여 DB 를 생성, 수정, 삭제 할 수 있음

이전 Category 정보를 저장하기 위하여 SharedPreference 에 categoryInfo 라는 Key 를 가지는 String value 를 저장한다.

SQLite 를 활용하여 구현한 Memo Module

어려웠던 점 1. 성능 최적화 문제

DOM Parser VS SAX Parser XML 문서 … startDocument() startElement() characters() endElement() endDocument() XML 문서 … SAX 와 DOM 처리 방식 비교 – DOM 처리 방식 ( 트리 기반 API) – SAX 처리 방식 ( 이벤트 기반 API) 파싱 이벤트를 callback 을 통해서 애플리케이션에 직접전달하는 구조

구분 DOMSAX 파싱 기반트리 기반이벤트 기반 데이터 접근 방 식 랜덤순차 메모리 사용 방 식 데이터 크기에 비례해 서 증가 데이터 크기와 상관없이 일정한 메모리 사용 적합한 데이터경량 데이터경량 / 대용량 데이터 데이터 재사용가능불가능 ( 재파싱해서 사용할 수 있 음 )

Thread thread[3] Thread 1 Thread 2 Thread 3 Run() Thread 1 Thread 2 Thread 3 Start at the Same time Parsing() completedTaskNum++; if(completedTaskNum == 3) { for(int i=0;i<3;i++) { listView[i].setAdapter(baseAdapter[i]) listView[i].setOnItemClickListener(onclickEventClass);} completedTaskNum = 0; mainLayout.setVisibility(View.VISIBLE); completedTaskNum++; if(completedTaskNum == 3) { for(int i=0;i<3;i++) { listView[i].setAdapter(baseAdapter[i]) listView[i].setOnItemClickListener(onclickEventClass);} completedTaskNum = 0; mainLayout.setVisibility(View.VISIBLE); Handler completed 메시지 큐 ( Message Queue ) : 메시지가 저장되는 장소. 메시지나 Runnable 객체는 일단 큐에 저장되고 들어온 순서대로 순차적으로 처리된다. 루퍼 ( Looper ) : 메시지 큐에서 메시지를 꺼내어 핸들러로 전달한다.

Thread 1 Thread 2 Thread 3 Start thread in order 평균적으로 3 배 이상의 시간이 소요된다

Event 발생 -> Handling 본 함수들은 SAX Parser 안에 Interface 형태로 정의되어 있다. Handler 에서 본 함수들을 정의 해줘야 한다. Weather Handler News Handler

코드와 Layout 이 분리되어 있다. Native Java 와 C# C++ 에 익숙한 우리에게는 그리 친숙하지 않다.

본 LifeCycle 을 정확히 이해하고 있어야만 우리가 원하는 Activity 를 실행 시킬 수 있다. ex) Back 을 눌러 다시 예전 Activity 로 돌아올 경우 onCreate() 는 실행되지 않고 onResume() 이 실행된다.

어려웠던 점 Android SDK Mechanism Layout Mechanism : xml 과 source 파일 분리 Data Trasfer Mechanism : 왜 항상 Intent 를 써야 하는가 ? API : 다양한 API 를 적절히 적용하기 쉽지 않음 해결방법 : 안드로이드 프로그래밍 학습 -> 익숙해질 때까지 코딩

실행화면 Screen shot