Difference between revisions of "MAP524/DPS924 Lecture 1"
(→Assignment expectations) |
(→Devices) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
= Course Overview = | = Course Overview = | ||
+ | * Course outline is [https://scs.senecac.on.ca/course/map524 here]. | ||
* The course is a 50/50 split of lectures and labs. One lab isn't worth much but it's critical that you do all the labs, and do them on time. Not only will that get you 20% of your final grade but it's a sure way to make sure that you'll do well on the test, assignments, and the final exam. | * The course is a 50/50 split of lectures and labs. One lab isn't worth much but it's critical that you do all the labs, and do them on time. Not only will that get you 20% of your final grade but it's a sure way to make sure that you'll do well on the test, assignments, and the final exam. | ||
* I will do my best to make sure this course isn't about your ability to memorize stuff, but rather it's about building real applications in a realistic way. That means you'll be able to bring your labbook (and a textbook if you have one) with you to the test and exam. | * I will do my best to make sure this course isn't about your ability to memorize stuff, but rather it's about building real applications in a realistic way. That means you'll be able to bring your labbook (and a textbook if you have one) with you to the test and exam. | ||
− | + | * Speaking of textbooks - one is not required for this course. All the material you'll need is available for free on the web. I'll collect links to material and tutorials I think are most relevant for each week into the notes for that week. | |
− | * Speaking of textbooks - | ||
== Professor's policies == | == Professor's policies == | ||
Line 18: | Line 18: | ||
<li>You may use '''online''' resources to learn, including code examples from documentation and from forums, but all the code you use must have attribution, for example:</li> | <li>You may use '''online''' resources to learn, including code examples from documentation and from forums, but all the code you use must have attribution, for example:</li> | ||
<ul> | <ul> | ||
− | <li>< | + | <li><source lang="java">// Code copied from: http://bla.bla.bla/bla</source></li> |
− | <li>< | + | <li><source lang="java">// Inspiration from: http://bla.bla.bla/bla</source></li> |
− | <li>< | + | <li><source lang="xml"><!-- Code in this XML file from a combination of sources: |
http://bla.bla.bla/bla1 | http://bla.bla.bla/bla1 | ||
http://bla.bla.bla/bla2 | http://bla.bla.bla/bla2 | ||
− | http://bla.bla.bla/bla3 --></ | + | http://bla.bla.bla/bla3 --></source></li> |
</ul> | </ul> | ||
<li>Any code you submit that wasn't written by you or generated by the development tools must have correct attribution. If it doesn't - you'll end up with plagiarism on your record.</li> | <li>Any code you submit that wasn't written by you or generated by the development tools must have correct attribution. If it doesn't - you'll end up with plagiarism on your record.</li> | ||
Line 39: | Line 39: | ||
* Labs need to be checked by me in person, I will sign your labbook if it looks good. | * Labs need to be checked by me in person, I will sign your labbook if it looks good. | ||
* Don't email me files over a megabyte in size. In fact if you're using Seneca email don't bother trying to send attachments at all - use storage on matrix if you need a way to send me an assignemnt other than the final submission on Blackboard. | * Don't email me files over a megabyte in size. In fact if you're using Seneca email don't bother trying to send attachments at all - use storage on matrix if you need a way to send me an assignemnt other than the final submission on Blackboard. | ||
+ | |||
+ | = Android History = | ||
+ | |||
+ | * Android Inc. founded in 2003 | ||
+ | * Google acquired Android in 2005 | ||
+ | * [https://en.wikipedia.org/wiki/Open_Handset_Alliance Open Handset Alliance] formed in 2007 | ||
+ | * First Android smartphone was HTC Dream in 2008 (vs first iPhone in 2007) | ||
+ | * [https://en.wikipedia.org/wiki/Google_Nexus Nexus series] launched in 2010 | ||
+ | |||
+ | == Versions == | ||
+ | |||
+ | <table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> <tr> <td style="vertical-align: top;" align="center">API<br> </td> <td style="vertical-align: top;" align="center">Version<br> </td> <td style="vertical-align: top;">Name<br> </td> <td style="vertical-align: top;">Date<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">1<br> </td> <td style="vertical-align: top; text-align: center;">1.0<br> </td> <td style="vertical-align: top;">APPLE PIE<br> </td> <td style="vertical-align: top;">Oct 2008<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">2<br> </td> <td style="vertical-align: top; text-align: center;">1.1<br> </td> <td style="vertical-align: top;">BANANA BREAD<br> </td> <td style="vertical-align: top;">Feb 2009<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">3<br> </td> <td style="vertical-align: top; text-align: center;">1.5<br> </td> <td style="vertical-align: top;">CUPCAKE<br> </td> <td style="vertical-align: top;">May 2009<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">4<br> </td> <td style="vertical-align: top; text-align: center;">1.6<br> </td> <td style="vertical-align: top;">DONUT<br> </td> <td style="vertical-align: top;">Sep 2009<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">5<br> </td> <td style="vertical-align: top; text-align: center;">2.0<br> </td> <td style="vertical-align: top;">ECLAIR<br> </td> <td style="vertical-align: top;">Nov 2009<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">6<br> </td> <td style="vertical-align: top; text-align: center;">2.0.1<br> </td> <td style="vertical-align: top;">ECLAIR<br> </td> <td style="vertical-align: top;">Dec 2009<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">7<br> </td> <td style="vertical-align: top; text-align: center;">2.1<br> </td> <td style="vertical-align: top;">ECLAIR<br> </td> <td style="vertical-align: top;">Jan 2010<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">8<br> </td> <td style="vertical-align: top; text-align: center;">2.2<br> </td> <td style="vertical-align: top;">FROYO<br> </td> <td style="vertical-align: top;">May 2010<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">9<br> </td> <td style="vertical-align: top; text-align: center;">2.3<br> </td> <td style="vertical-align: top;">GINGERBREAD<br> </td> <td style="vertical-align: top;">Dec 2010<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">10<br> </td> <td style="vertical-align: top; text-align: center;">2.3.3<br> </td> <td style="vertical-align: top;">GINGERBREAD<br> </td> <td style="vertical-align: top;">Feb 2011<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">10<br> </td> <td style="vertical-align: top; text-align: center;">2.3.4<br> </td> <td style="vertical-align: top;">GINGERBREAD<br> </td> <td style="vertical-align: top;">May 2011<br> </td> </tr> <tr> <td style="vertical-align: top; text-align: center;">11<br> </td> <td style="vertical-align: top; text-align: center;">3.0<br> </td> <td style="vertical-align: top;">HONEYCOMB - Tablet Only Features<br> </td> <td style="vertical-align: top;">Feb 2011<br> </td> </tr> <tr> <td align="center" valign="top">12<br> </td> <td align="center" valign="top">3.1<br> </td> <td valign="top">HONEYCOMB<br> </td> <td valign="top">May 2011<br> </td> </tr> <tr> <td align="center" valign="top">13<br> </td> <td align="center" valign="top">3.2<br> </td> <td valign="top">HONEYCOMB<br> </td> <td valign="top">July 2011<br> </td> </tr> <tr> <td align="center" valign="top">14<br> </td> <td align="center" valign="top">4.0<br> </td> <td valign="top">ICE CREAM SANDWICH - Combined Phone and Tablet Features<br> </td> <td valign="top">Oct 2011<br> </td> </tr> <tr> <td align="center" valign="top">15<br> </td> <td align="center" valign="top">4.0.3<br> </td> <td valign="top">ICE CREAM SANDWICH<br> </td> <td valign="top">Dec 2011<br> </td> </tr> <tr> <td align="center" valign="top">16<br> </td> <td align="center" valign="top">4.1<br> </td> <td valign="top">JELLY BEAN<br> </td> <td valign="top">July 2012<br> </td> </tr> <tr> <td align="center" valign="top">17<br> </td> <td align="center" valign="top">4.2<br> </td> <td valign="top">JELLY BEAN<br> </td> <td valign="top">Nov 2012<br> </td> </tr> <tr> <td align="center" valign="top">18<br> </td> <td align="center" valign="top">4.3<br> </td> <td valign="top">SWEETER JELLY BEAN<br> </td> <td valign="top">July 2013<br> </td> </tr> <tr> <td align="center" valign="top">19<br> </td> <td align="center" valign="top">4.4<br> </td> <td valign="top">KITKAT<br> </td> <td valign="top">Oct 2013<br> </td> </tr> <tr> <td align="center" valign="top">20<br> </td> <td align="center" valign="top">4.4<br> </td> <td valign="top">KITKAT with Wearable Extensions<br> </td> <td valign="top">July 2014<br> </td> </tr> <tr> <td align="center" valign="top">21<br> </td> <td align="center" valign="top">5.0<br> </td> <td valign="top">LOLLIPOP<br> </td> <td valign="top">Oct 2014<br> </td> </tr> | ||
+ | <tr><td align="center" valign="top">22<br></td><td align="center" valign="top">5.1<br></td><td valign="top">LOLLIPOP<br></td><td valign="top">Mar 2015<br></td></tr> | ||
+ | <tr><td align="center" valign="top">23<br></td><td align="center" valign="top">6.0<br></td><td valign="top">MARSHMALLOW<br></td><td valign="top">Oct 2015<br></td></tr> | ||
+ | |||
+ | </table> | ||
+ | |||
+ | * [https://en.wikipedia.org/wiki/Android_version_history Android version history on Wikipedia.] | ||
+ | * [https://developer.android.com/about/dashboards/index.html?utm_source=suzunone#Platform Official version distribution data from Google.] | ||
+ | |||
+ | == Architecture == | ||
+ | |||
+ | [[Image:System-architecture.jpg ]] | ||
+ | |||
+ | == Devices == | ||
+ | |||
+ | * Phones | ||
+ | * Tablets | ||
+ | * e-Readers | ||
+ | * Netbooks | ||
+ | * Internet TV | ||
+ | * Watches | ||
+ | * Glasses | ||
+ | * Cars | ||
+ | * Game consoles | ||
+ | |||
+ | == Applications Stores == | ||
+ | |||
+ | * [https://play.google.com/store/apps?hl=en Google Play] formally called Android Market | ||
+ | * [https://f-droid.org/ F-Droid] Open Source Store for Android apps | ||
+ | * [http://www.amazon.com/mobile-apps/b?node=2350149011 Amazon App Store] | ||
+ | * [http://www.1mobile.com/ 1mobile] Alternative to Google Play | ||
+ | |||
+ | == Alternatives to Google's Android == | ||
+ | |||
+ | * [https://source.android.com/ Android Open Source Project (AOSP)] | ||
+ | * [http://www.cyanogenmod.org/ Cyanogenmod] | ||
+ | * [https://www.tizen.org/ Tizen] | ||
+ | * [http://www.ubuntu.com/phone Ubuntu for Mobile] | ||
+ | * [https://www.mozilla.org/en-US/firefox/os/ Firefox OS] | ||
+ | * [http://jolla.com/ Jolla] | ||
+ | |||
+ | == Android Market Share == | ||
+ | |||
+ | [http://www.idc.com/prodserv/smartphone-os-market-share.jsp Current data] | ||
+ | |||
+ | = Our Development Environment = | ||
+ | |||
+ | The primary Android application devlopment tools can be set up on any operating system, you are free to use whatever operating system you like, but I'll recommend using the [[ICT_USB_Sticks | ICT USB Stick]] or having your own Linux installation on your own laptop. | ||
+ | |||
+ | That will give you a consistent development environment that will be troule-free, especially compared to using our lab windows images. | ||
+ | |||
+ | If you choose to host your work on Windows or OSX I'll do my best to help when problems happen but it may take longer to figure out what's wrong. | ||
+ | |||
+ | 'Before the lab this week' make sure that you purchase a 32GB USB3 memory stick and [[ICT_USB_Sticks | install the image]] on it. Desktops in our lab doesn't have internal harddrives so you'll need to do that in the open lab or on a laptop or at home. |
Latest revision as of 22:38, 10 January 2016
Welcome to the course! Android programming is a complex topic with so much material that changes so often that the learning never ends. But in this course you'll learn enough to start you on your way to becoming an expert if that's your plan, or just enough to be able to create an application if that's all you need.
Your professor this semester is Andrew Smith.
Contents
Course Overview
- Course outline is here.
- The course is a 50/50 split of lectures and labs. One lab isn't worth much but it's critical that you do all the labs, and do them on time. Not only will that get you 20% of your final grade but it's a sure way to make sure that you'll do well on the test, assignments, and the final exam.
- I will do my best to make sure this course isn't about your ability to memorize stuff, but rather it's about building real applications in a realistic way. That means you'll be able to bring your labbook (and a textbook if you have one) with you to the test and exam.
- Speaking of textbooks - one is not required for this course. All the material you'll need is available for free on the web. I'll collect links to material and tutorials I think are most relevant for each week into the notes for that week.
Professor's policies
- The best way to contact me is via email. Most questions can be answered that way and I'm reasonably good at replying to reasonable emails. If the question is too complex for email - we can work on your prolem in the lab or you can come see me during office hours.
- Plagiarism will not be tolerated.
- You may use online resources to learn, including code examples from documentation and from forums, but all the code you use must have attribution, for example:
// Code copied from: http://bla.bla.bla/bla
// Inspiration from: http://bla.bla.bla/bla
<!-- Code in this XML file from a combination of sources: http://bla.bla.bla/bla1 http://bla.bla.bla/bla2 http://bla.bla.bla/bla3 -->
- Any code you submit that wasn't written by you or generated by the development tools must have correct attribution. If it doesn't - you'll end up with plagiarism on your record.
- Working with your classmates
- Late work will be penalized as specified in the assignment/lab.
Assignment expectations
Other than the notes on plagiarism above (use whatever online resources you find but always provide attribution) you should also:
- Follow the instructions for naming files and projects.
- Submit assignments on Blackboard.
- Labs need to be checked by me in person, I will sign your labbook if it looks good.
- Don't email me files over a megabyte in size. In fact if you're using Seneca email don't bother trying to send attachments at all - use storage on matrix if you need a way to send me an assignemnt other than the final submission on Blackboard.
Android History
- Android Inc. founded in 2003
- Google acquired Android in 2005
- Open Handset Alliance formed in 2007
- First Android smartphone was HTC Dream in 2008 (vs first iPhone in 2007)
- Nexus series launched in 2010
Versions
API | Version | Name | Date |
1 | 1.0 | APPLE PIE | Oct 2008 |
2 | 1.1 | BANANA BREAD | Feb 2009 |
3 | 1.5 | CUPCAKE | May 2009 |
4 | 1.6 | DONUT | Sep 2009 |
5 | 2.0 | ECLAIR | Nov 2009 |
6 | 2.0.1 | ECLAIR | Dec 2009 |
7 | 2.1 | ECLAIR | Jan 2010 |
8 | 2.2 | FROYO | May 2010 |
9 | 2.3 | GINGERBREAD | Dec 2010 |
10 | 2.3.3 | GINGERBREAD | Feb 2011 |
10 | 2.3.4 | GINGERBREAD | May 2011 |
11 | 3.0 | HONEYCOMB - Tablet Only Features | Feb 2011 |
12 | 3.1 | HONEYCOMB | May 2011 |
13 | 3.2 | HONEYCOMB | July 2011 |
14 | 4.0 | ICE CREAM SANDWICH - Combined Phone and Tablet Features | Oct 2011 |
15 | 4.0.3 | ICE CREAM SANDWICH | Dec 2011 |
16 | 4.1 | JELLY BEAN | July 2012 |
17 | 4.2 | JELLY BEAN | Nov 2012 |
18 | 4.3 | SWEETER JELLY BEAN | July 2013 |
19 | 4.4 | KITKAT | Oct 2013 |
20 | 4.4 | KITKAT with Wearable Extensions | July 2014 |
21 | 5.0 | LOLLIPOP | Oct 2014 |
22 | 5.1 | LOLLIPOP | Mar 2015 |
23 | 6.0 | MARSHMALLOW | Oct 2015 |
Architecture
Devices
- Phones
- Tablets
- e-Readers
- Netbooks
- Internet TV
- Watches
- Glasses
- Cars
- Game consoles
Applications Stores
- Google Play formally called Android Market
- F-Droid Open Source Store for Android apps
- Amazon App Store
- 1mobile Alternative to Google Play
Alternatives to Google's Android
Our Development Environment
The primary Android application devlopment tools can be set up on any operating system, you are free to use whatever operating system you like, but I'll recommend using the ICT USB Stick or having your own Linux installation on your own laptop.
That will give you a consistent development environment that will be troule-free, especially compared to using our lab windows images.
If you choose to host your work on Windows or OSX I'll do my best to help when problems happen but it may take longer to figure out what's wrong.
'Before the lab this week' make sure that you purchase a 32GB USB3 memory stick and install the image on it. Desktops in our lab doesn't have internal harddrives so you'll need to do that in the open lab or on a laptop or at home.