/
Project Manager: 		Kathy Sun Project Manager: 		Kathy Sun

Project Manager: Kathy Sun - PowerPoint Presentation

luanne-stotts
luanne-stotts . @luanne-stotts
Follow
420 views
Uploaded On 2016-03-13

Project Manager: Kathy Sun - PPT Presentation

Language Guru Toni Ma System Architect Mark Florian System Integrator Kim Ly System Tester Madhavan Somanathan COMS W4115 Spring 2012 Professor Alfred Aho TA Melanie Kambadur Introduction ID: 254514

cyborg android code linearlayout android cyborg linearlayout code java xml wrap files content height event development software source file

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Project Manager: Kathy Sun" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Project Manager: Kathy SunLanguage Guru: Toni MaSystem Architect: Mark FlorianSystem Integrator: Kim LySystem Tester: Madhavan Somanathan

COMS W4115 Spring 2012

Professor Alfred Aho

TA: Melanie KambadurSlide2

IntroductionSlide3

Android is a software stack for mobile devicesincludes an OS, middleware and key applicationsWhat is Android?

This software stack includes a Dalvik VM on top of which an Android application can be run.

Graph Source: http

://blog.appbrain.com/2011/03/new-android-market-statistics-overload.html

Why do people develop Android apps?Slide4

Android DevelopmentSimpleAdd Program:

4 files to keep track of:SimpleAddActivity.java

main.xml

strings.xml

AndroidManifest.xml

108 lines of codeSlide5

<head name="SimpleAdd" api="10“/><LinearLayout id="defaultLayout"> <LinearLayout id="row1“

height="wrap_content"> <EditText id="box 1“

width="wrap_content“ height="1" />

</LinearLayout>

<LinearLayout id="row2“

height="wrap_content">

<Button id="add"

height="wrap_content"

text="add">

<event type="onClick">

result.setText(Double.parseDouble(box1.getText()) + Double.parseDouble(box2.getText()));

</event>

</Button>

</LinearLayout>

<LinearLayout id="row3“ height="wrap_content">

<TextView id="result"

width="wrap_content"/>

</LinearLayout>

</LinearLayout>

Cyborg Development

Yay!

!

1 file to keep track of

:

SimpleAdd.cy

28 lines of codeSlide6

hybrid between an imperative language and a mark-up languagehas two contexts:XML context: used for GUI elementsJava: used for defining functions What is Cyborg?

<

Button id=“myButton

”>

<

event type=“onClick

”>

t.setText

(“

Hello, Cyborg!”);

</

event

>

</

Button>Slide7

Why use Cyborg?Cyborg aims to simplify Android programmingallows GUI elements & event handlers to be written in the same place

complicated & unintuitive Android file structure

XML files for GUI elements are located in res (resources)

Java files for functional computations are located in src (source)

No natural connection between these twoSlide8

Translator ArchitectureJFLEX

Preprocessor

JAVACUP

Lexer.java

Sym.java

Parser.cup

Parser.java

Lexical Analysis

Syntax Analysis

Symbol Table

Front End

Semantic Analyzer

Token Stream

Semantic Analysis

Syntax Tree

Android File Structure

*.apk

Android Abstract Syntax Tree

*.java

Intermediate Code Gen.

Target Source Code

Back End

Cyborg Source Program

*.xml

*.java Slide9

Run-Time FrameworkCyborg target program

Cyborg run-time environment

Dalvik Virtual Machine: The process virtual machine in the Android OS

compile to bytecode

convert to .dex files

.apk

JVM-compatible .class files

.dex files along with resources, assets, certificates, and manifest file

Cyborg target code

Android deviceSlide10

Software Development Environment & ToolsSlide11

Test PlanBottom-up Testing Methodology

Test the five components individually: preprocessor

lexical analyzer

syntax analyzer

semantic analyzer

code generator

Developed test cases for integrated systemsSlide12

Project ManagementMet weekly to discuss compiler ideas

Kept meeting logsS

ent weekly emails discussing progress and schedule

Software:

U

sed Github.com for version control and easier code management Slide13

Glad to build a language that solves a problem we care about.Difficult to integrate two separately working modules of code!Every group member should be able contribute to any other part of the development (regardless of their own task).Do research about what development tools to use. Unfamiliar tools and software are very hard to use without good documentation.Bond and learn to love your team, it makes the even the hardest tasks enjoyable!

Our Takeaways