cosc 5/4730
DESCRIPTION
Cosc 5/4730. Information and Resources. Java. If you don't already have java SDK installed http://java.sun.com Get the Java SE SDK v7 (not v8 as of July) Install it. Eclipse . http://www.eclipse.org/downloads Download the Eclipse Standard (v4.4 is current) - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Cosc 5/4730](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/1.jpg)
Cosc 5/4730
Information, Resources, and basic GUI concepts.
![Page 2: Cosc 5/4730](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/2.jpg)
Java.
• If you don't already have java SDK installed– http://java.sun.com• Get the Java SE SDK v8 64 version. • Install it.
![Page 3: Cosc 5/4730](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/3.jpg)
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.8.0_61 as an example
![Page 4: Cosc 5/4730](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/4.jpg)
Android SDK
• In the SDK manager install, all the tools, 6.X, 5.X, 4.4, (and maybe all the 4.X), and all the extras.
![Page 5: Cosc 5/4730](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/6.jpg)
Department machines.
• Windows– Andriod studio and both SDKs are already installed
• c:\phone is the directory where everything is stored, if studio does not automatically find it.
• If should find the SDK, in c:\phone\
• 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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/14.jpg)
Android and Versions.
https://developer.android.com/about/dashboards/index.html
![Page 15: Cosc 5/4730](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/19.jpg)
GUI CONCEPTS
![Page 20: Cosc 5/4730](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022081520/568165a5550346895dd8899e/html5/thumbnails/25.jpg)
QA&