cosc 5/4730 information, resources, and basic gui concepts

25
Cosc 5/4730 Information, Resources, and basic GUI concepts.

Upload: evangeline-lane

Post on 25-Dec-2015

226 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Cosc 5/4730 Information, Resources, and basic GUI concepts

Cosc 5/4730

Information, Resources, and basic GUI concepts.

Page 2: Cosc 5/4730 Information, Resources, and basic GUI concepts

Java.

• If you don't already have java SDK installed– http://java.sun.com• Get the Java SE SDK v7 64 version. V8 may work, but

not tested. • Install it.

Page 3: Cosc 5/4730 Information, Resources, and basic GUI concepts

Android Studio.

• http://developer.android.com/sdk/index.html – If you already have the sdk installed, then get the stand

alone version– You should have java in the path variable

• Start menu > Computer > System Properties > Advanced System Properties. Then open Advanced tab > Environment Variables

• If you android SDK installed separately, it should also be in the path variable as well.

– And JAVA_HOME set as well• JAVA_HOME=C:\Program Files\Java\jdk1.7.0_71 as an

example

Page 4: Cosc 5/4730 Information, Resources, and basic GUI concepts

Android SDK

• In the SDK manager install, all the tools, 5.X, 4.4, (and maybe all the 4.X), and all the extras.

Page 5: Cosc 5/4730 Information, Resources, and basic GUI concepts

Signing Keys

• Studio creates a debug key for you, it is good for 1 year. For this class, that is all you will need.– A note, that is one different key on each machine

you use. Which can cause you issues, so you can copy it around all the development environments you use.• C:\users\<username>\.android\debug.keystore and

default.keyset files

• If you plan to release you app to android market then you will need to get a real developer key.

Page 6: Cosc 5/4730 Information, Resources, and basic GUI concepts

Department machines.

• Windows– Andriod studio and both SDKs are already installed

• c:\phone is the directory where everything is stored, if eclipse does not automatically find it.

• If should find the SDK, in c:\phone\android\

• Linux– Command: Studio– It may not find the android sdk.

• /usr/local/android-sdk-linux/ is the directory.• DON’T install into your ~/SDK directory. Waste of space!

Page 7: Cosc 5/4730 Information, Resources, and basic GUI concepts

Android

• Remember, Android is the OS and not the hardware manufacture.– http://developer.samsung.com/develop for Samsung’s

developer site.– http://www.motorola.com/

• http://developer.motorola.com/?WT.mc_id=us_mdc developers site. For android tools, click the SDK add-ons link.

– http://www.htc.com/ • http://developer.htc.com/ with very limited developers, but you

can get the some source code

– Others: http://www.andro-phones.com/all-android-phones.php

Page 8: Cosc 5/4730 Information, Resources, and basic GUI concepts

Android General info

• While there are a lot of sites covering android, I’ve found http://www.androidcentral.com/ gives good coverage, forums, a lots of information and tutorials.– Includes information on “rooting” an android phone.

• Remember Android is based on the linux kernel.

• There seems to be a number of android app stores – Amazon: http://

www.amazon.com/mobile-apps/b?node=2350149011 • and http://www.appbrain.com/ but I’ve never used

this one.

Page 9: Cosc 5/4730 Information, Resources, and basic GUI concepts

Android Emulators

• Much of the code can be run on the emulators (but not all, we need the actual devices as well).– The newer emulators have a lot of problems and

crash often. Which is why I’m using a device in class most of the time.

• Read up on how to control the emulators, there is a ton of information.– http://developer.android.com/tools/devices/emulat

or.html

Page 10: Cosc 5/4730 Information, Resources, and basic GUI concepts

Desktop software

• Motorola and other provide desktop software to sync media files. – I haven’t seen anything that allows you to backup or “sync”

with your computer.– The gmail account syncs your contacts and calendar with

gmail.com.

– There is backup software• JS backup will back the device and store the file local or in the cloud

(such as dropbox).

– Clockworld Recovery and Titanium can be used, but not free.• Some require that you root your phone.

Page 11: Cosc 5/4730 Information, Resources, and basic GUI concepts

OTA app install

• Using Cosc’s web servers• Howto create web pages:

http://www.cs.uwyo.edu/policies/web.html

– Create a .htaccess file• Add one or more of the following:

– AddType application/vnd.android.package-archive .apk

Page 12: Cosc 5/4730 Information, Resources, and basic GUI concepts

OTA app install (2)

• Create a html file– Copy the apk file to web server and link to it– <a href="app.apk">app</a>

• Android phone– Settings->Applications Settings• Check unknown sources

– otherwise you can only install from the android market place.

Page 13: Cosc 5/4730 Information, Resources, and basic GUI concepts

Android APIs

• Developer pages have lot of examples and reference guides– api reference guide:

http://developer.android.com/reference/android/app/package-summary.html

– Resources and tutorials (where the helloworld example came from)• http://developer.android.com/resources/index.html

– StackOverflow.com has numerous Q&A and examples as well.• I’ll try and reference the websites I use in the slides and

examples.

Page 14: Cosc 5/4730 Information, Resources, and basic GUI concepts

Android and Versions.

https://developer.android.com/about/dashboards/index.html

Page 15: Cosc 5/4730 Information, Resources, and basic GUI concepts

Android and Version (2)

• There are some pretty major differences between 2.3.X (we are skipping 2.2 and 3.X Honeycomb) and 4.X

• There are also differences between 4.0 (ics), 4.1, 4.2, 4.3 (jelly Bean), and 4.4 (Kitkat)– And huge difference in Android 5.0.X( lollipop)

• I’m going to teach relatively current material with the support libraries so we use the new APIs (with minor differences) on 2.3.3+

– Not everything will look the same, but it will function similarly.

Page 16: Cosc 5/4730 Information, Resources, and basic GUI concepts

Android and Version (3)

• Lastly, Android is a moving target– You will need to keep in mind what version you

are compiling too• The support library is updated (randomly) as well to fix

errors and there is not necessary an announcement.

– At some point, 5.1 will likely come out. They are a 3 month schedule for minor version.

– Last year, android discounted the map API v2 (and associated necessary keys) during the semester.• So v3 is now the standard…

Page 17: Cosc 5/4730 Information, Resources, and basic GUI concepts

My First Android Project• Android Studio -> Start a new Android Studio Project• Enter an Application name (not necessary the title) and company domain,

example: cs4730.edu – Click Next

• Go with the default, Phone and Tablet, API 15 (or whatever one you want). – Click next.

• Select a Blank Activity, click next– https://developer.android.com/tools/projects/templates.html

• Activity name is the class name, layout name is xml, menu is the for the menu– Title is what you will actually see as the name on the device.– Click finish.

• Let studio do it’s work. This may take several minutes.– You now have a runnable app. You can click the play button and it will load into the

emulator and/or device.

Page 18: Cosc 5/4730 Information, Resources, and basic GUI concepts

My First Android Project (2)

• Depending on the selected template a lot of code maybe written for you, Now:– Edit the res/layout/activity_main.xml and add

Views as needed.• You may want to change the layout from a Relative to

LinearLayout (Vertical)

– In the activity/fragment add java code to control you views.

Page 19: Cosc 5/4730 Information, Resources, and basic GUI concepts

GUI CONCEPTS

Page 20: Cosc 5/4730 Information, Resources, and basic GUI concepts

GUI Concepts

• Android phone programming:– the primary class is an Activity. It has access to the screen

and can display things on it. • This is our Main/UI thread as well.• We create and display objects on the screen and then wait for the

user to interact with them.• Likely using the xml document for the screen layout.

• It is also the only class (mostly) that can update the screen.

– Setup is done in the OnCreate method.– Or constructor if you have a java class you are using in the Activity

– Listeners have code that is called when the user interacts with an object.

Page 21: Cosc 5/4730 Information, Resources, and basic GUI concepts

GUI Concepts (2)

• The objects will have listeners.– For each object you set any number of listeners.

• A listener is the method the is called when the user "does something"– like presses a button or enters text in a text box. – This includes external events such as sensor

information.• If you don't set a listener, then nothing will happen

when the user interacts with that object– This maybe what you want to happen.

Page 22: Cosc 5/4730 Information, Resources, and basic GUI concepts

Examplepublic class MainActivity extends Activity {

Button btn1;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

btn1 = (Button) findViewById(R.id.button1); //get access to the button btn1.setOnClickListener( new View.OnClickListener(){ // set listener

@Override public void onClick(View v) { btn1.setText("You Did!"); // change the text when the button is push

} });

}

Page 23: Cosc 5/4730 Information, Resources, and basic GUI concepts

GUI Concepts (3)

• Objects have many listeners– You only set the ones you want to deal with– So the Button in the previous example• There is also setOnFocusChangeListener that is called

whenever the button loses or gains focus.

• One listener can be used for many objects as well. But it must be declared differently.– In previous example the View parameter allows

you to determine which object "changed".

Page 24: Cosc 5/4730 Information, Resources, and basic GUI concepts

Event Programming In Summary.

• You code will break down into two main sections• Not that the code has to be written that way.

• Setup– All the code needed display information on the screen– setup the listeners

• Response/listeners– That code that deals with whatever interaction with the user.

• This code may also add new objects to the screen as well, depending what is going on.

– Some listeners will be separate threads.– It’s important to know when you are on a separate thread or the UI

thread.

Page 25: Cosc 5/4730 Information, Resources, and basic GUI concepts

QA&