Android Overview - Nc State University

3y ago
44 Views
4 Downloads
555.27 KB
24 Pages
Last View : 18d ago
Last Download : 3m ago
Upload by : Vicente Bone
Transcription

Android OverviewDongsu Han1

Outline Java network programming overviewAndroid OverviewAndroid Emulator OverviewProject OverviewGetting Started2

Java Network Programming Java.net.* programming model– Blocking model, you wait until work is done, maybeforever– One thread required per connection– Socket exposes input and output stream Java.nio.* programming model– Introduced in Java 1.4, non-blocking IO– New Interface: SocketChannel (in java.nio.channels)– Reading/writing via Buffer objects rather thaninput/output streams– Select() implemented3

Java.net.* Socket API Part of the java.net package– import java.net.*; Provides two classes of sockets for TCP– Socket : client side of socket– ServerSocket : server side of socket Provides one socket type for UDP– DatagramSocket4

Java.net.Socket Making a connectionSocket s new Socket(“hostname”, port); The constructor not only creates a socket, butmakes a TCP connection. Socket exposes input and output stream.s.getOutputStream()s.getInputStream() Most of the time you'll chain the input/outputstream to some other input/output stream orreader object to more easily handle the data.5

Java.net.Socket Create a print stream for writing– OutputStream rawOut socket.getOutputStream();– PrintStream pout new PrintStream(rawOut); Create a data output stream for writing– BufferedOutputStream buffOut newBufferedOutputStream(rawOut);– out new DataOutputStream(buffOut); Create a data input stream for readingDataInputStream din new DataInputStream(socket.getInputStream());6

Java.net.ServerSocket Server Side socket To support multiple clients servers haveat least one thread per clientServerSocket svr new ServerSocket(port);while (Socket s svr.accept()){new EchoThread(s).start();}7

Java.net and Threadclass EchoThread extends Thread {EchoThread(Socket s) { . }public void run() {// waits for data and reads it in until connection dies// readLine() blocks until the server receives a new line from clientString s;while ((s in.readLine()) ! null) {out.println(s);}}}8

Reference for Java NetworkProgramming /sockets/index.html9

Android Software platform on mobile device by OpenHandset Alliance (Google) Developing language is Java Linux kernel (Open Source) Provides a development kit (SDK) Emulator support with some limitation10

Developing Android Application There are four building blocks to an Androidapplication:– Activity– Service– Broadcast Intent Receiver– Content Provider 1

Developing Android Application Activity– Controls a single screen– Usually starts up with an app, multiple Activity(screen) isassociated to an app– Intent is used to move from screen to screen Service– A Service is code that is long-lived and runs without a UI– E.g. Network I/O, playback of media files Not using these components correctly can result in the system killingthe application's process while it is doing important work.12

Project 1 Description– Develop a file sharing application where updates getsynchronized when users come across withincommunication range Checkpoint– Implement service discovery– Establish a TCP connection between every pair ofnodes in range– Due Feb 5. 2 weeks from now.13

Getting Started Setting up the environment (Installation)– Section 3.1 of the project document– Use the pre-installed binaries on AFS– Copy the binaries from AFS– Install yourself Need eclipse, Java SDK 1.5/1.6, android SDK,eclipse plug-in14

Getting Started Starting the project on Eclipse– Download project file– Open the project in Eclipse (read the documentation) Running the local server– Local server controls the connection between Androidemulators– Implemented in Ruby binds port 10001 10010– Need eventmachine Ruby lib– setenv android/eventmachine-0.12.2/lib15

Emulator16

Emulator Running the emulator– Stand-alone (./emulator)– Eclipse Plug-in (Just ‘Run’ it as Android application) Binds to port 5554 5580– Don’t run on shared machines adb (Android Debugging Bridge)– Using adb, we can connect to android’s shell– Logcat (demo)17

Running multiple emulators Manual mode will let you do this– Menu: Run Run Configurations– Go to Android Applications on the left tab andselect FileSharerActivityProject– Click on Target tab and select “maunal” mode– When you run you can specify to launch a newemulator or use existing ones to run the app To use adb you have to specify the emulatordevice name if there are multiple emulators #adb –s emulator-5554 shell18

Configurations XML file defines a connectivity ?xml version "1.0" encoding "UTF-8" ? connectivity time "2" nodes "2" connect node1 "0" node2 "1" at "1" / /connectivity 19

Project API Broadcast Interface– BroadcastReceiveCallBack– CS446Bcast Socket API (blocking IO)– CS446ServerSocket– CS446Socket Util– getMyID() returns the ID of the emulator20

Broadcast Interface BroadcastReceiveCallBack– BcastMsgReceived(byte []msg, int srcID) getscalled when a broadcast message is received fromsrcID. Msg is the byte array of the content. CS446Bcast– open() : returns CS446Bcast– send(byte [] msg): sends a broadcast message21

Socket CS446ServerSocket– There can be only one server socket. ServerSocketalways binds to port 0.– open(): returns a CS446ServerSocket– accept(): Listens for a incoming connection andreturns a CS446Socket when a connection isestablished– close(): closes the socket– isClosed(): returns boolean22

Socket CS446Socket– CS446Socket(int peerID): opens a socket and makes aconnection to peerID, always use local port 1 remoteport 0 when making a active connection– void close()– int getLocalPort()– int getPort()– int getPeerID()– int getLocalID()– OutputStream getOutputStream()– InputStream getInputStream()23

2nd part of project 1 You will be given a workload of users updatingfile. You will need to keep a version vector andsynchronize the content. Details will be posted soon24

Java network programming overview Android Overview Android Emulator Overview Project Overview Getting Started 2. Java Network Programming Java.net.* programming model –Blocking model, you wait until work is done, maybe forever –One thread required per connection –Socket exposes input and output stream Java.nio .

Related Documents:

Android Studio IDE Android SDK tool Latest Android API Platform - Android 6.0 (Marshmallow) Latest Android API emulator system image - Android 6.0 Android Studio is multi-platform Windows, MAC, Linux Advanced GUI preview panel See what your app looks like in different devices Development environment Android Studio 9

Navigate to https://developer.android.com/studio/index.html and download Android Studio for your appropriate OS. The Android SDK should be included with Android Studio. Make sure you do not choose an Android Studio installation that excludes the Android SDK. Standard download option for Windows OS (above). Alternative

Overview of CS 282 and Android D. C. Schmidt 19 Developing Android Apps Android is a software stack for mobile devices that provides an operating system, middleware, & key services/applications The Android SDK contains libraries & development tools for creating applications Android uses the Eclipse Integrated

ADT (Android Development Tool) bundle or ! Eclipse ADT plug-in Android SDK or ! Android studio ! Download earlier SDK versions using SDK manager if needed . Android Virtual Device (AVD) ! Android emulator allows . Android App Essentials ! Layout ! View objects: UI widgets such as buttons, text box etc. .

Android Development Tools ADT A plug-in for Eclipse (see Eclipse) to develop Android applications. Android Operating system for smartphones. Android Market The Android distribution service of mobile applications. Android Lifecycle A model Android uses to handle the lifecycle of an activity in applications.

Dial91 Android Edition User Guide 1 About Dial91 Android Edition Dial91 Android Edition is a SIP- based phone for an Android phone. With Dial91 Android Edition (Dial91), you can use the Wi-Fi internet connection on your Android phone to make and receive calls without using your mobile

ANDROID QUICK START GUIDE WELCOME TO ANDROID 1 1 Welcome to Android About Android 5.0, Lollipop Android 5.0, Lollipop is the latest version of Android, the oper-ating system that powers not just phones and tablets, but also wearables, TVs, and even cars. Android 5.0 features a bold and bright new design, 3D graphics

2010 - May: Android 2.2 / Froyo 2010 - Dec: Android 2.3 / Gingerbread 2011 - Jan : Android 3.0 / Honeycomb - Tablet-optimized 2011 - May: Android 3.1 - USB host support 2011 - Nov: Android 4.0 / Ice-Cream Sandwich - merge Gingerbread and Honeycomb 2012 - Jun: Android 4.1 / Jelly Bean - Platform Optimization