Android Application Development android.cs.uchicago.edu

Preview:

Citation preview

Android Application Development

android.cs.uchicago.edu

Adam Gerber, PhD, SCJP

Some of my mobile work:

Introductions:NameWhere are you from?Your experience with mobile and java?What you want to get out of this class?

Unit00: Setup

1/ Install required software:java-sdk 7, Android Studio, git, sourcetree

2/ Set-up steps (projects and labs)

3/ A tour of the course website and policies: android.cs.uchicago.edu

4/ A tour of git-bash and SourceTreea) add, reset, commit, F5, foldersb) amendc) branchd) push/remotes

5/ A tour of Android Studio (shortcuts, VCS, etc.)

http://www.perforce.com/product/components/perforce-visual-merge-and-diff-http://www.perforce.com/product/components/perforce-visual-merge-and-diff-toolstools

Lab 2g

Lab 2g

Lab 2g

Lab 2m

Your laptopYour laptop

bitbucket.org/jstudent/labJavabitbucket.org/jstudent/labJava

Lab 2m

Projects

Projects

Projects

Projects

Download and install required software:

Java SDK (7): www.oracle.com/technetwork/java/javase/downloads/index.html

Android Studio: developer.android.com/sdk/installing/studio.html

Git: git-scm.com

SourceTree: www.sourcetreeapp.com

GIT architecture

git config --global user.name "Your Name"git config --global user.email "your_email@whatever.com"

add/reset/commit:

move files from working-dir to stage-dir(aka index)git add .git add res/.git add src/.git add res/values/strings.xml

move files from stage-dir(aka index) to working-dirgit reset HEAD .git reset head res/.git reset head src/.git reset head res/values/strings.xml

git commit -m “your commit message.”

Amending:

Every commit is associated with a sha-1 hash. That hash is derived from 1/ the file changes in that commit and 2/ the previous commit.

You can not change any commit unless that commit is at the head. Since no other commits depend on the head, you may safely change the head.

To change the head, usegit commit --amend -m “your message”git commit --amend --no-edit

Branching: To list the branches in a project:git branchgit branch -r git branch --all To create a branch: git checkout -b branchName c39bgit checkout -b branchName

To delete a branch:git branch -D branchName

To checkout a branch:git checkout 7afegit checkout master

Pushing to remotes:

To see the remotes:git remote -v show To push to a remote:git push origin mastergit push --all

To clear all local changes since last pushgit reset --hard origin/master

Reverting (does the exact opposite)

git revert 0da8 --no-editgit revert head --no-editgit revert head~3 --no-edit

To clear all local changes since last pushgit reset --hard origin/master

To delete a remote branchgit push origin :branchName

Android Studio

Default keymap:http://android.cs.uchicago.edu/content/slides/keymap.pdf

File || settings || keymap

Unit01: The Android Computing Platform

Android• Comprehensive open-source platform for mobile

devices

• Owned by Open Handset Alliance http://en.wikipedia.org/wiki/Open_Handset_Alliance

• Championed by Google

• Stated goal: "accelerate innovation in mobile and offer consumers a richer, less expensive, and better mobile experience."

Vision for Android

Android is NOT just phones

Tablets

Readers

Televisions

Game consoles

AR-Devices

Android Wear

Android is open-source, which means any manufacturer of mobile devices can drop Android onto it.

6/9/12

Android Version Distribution

Using the compatability (support) libraries, you can develop in 4.2 and min-build-target to 1.6.

Android Version History

http://en.wikipedia.org/wiki/Android_version_history

Code/Version/API map

http://source.android.com/source/build-numbers.html

Mods (skins) HTC Motorola Samsung | HTC Motorola Samsung

Open Handset Alliance

http://en.wikipedia.org/wiki/Android_(operating_system)

http://en.wikipedia.org/wiki/Open_Handset_Alliance

The OHA was established on 5 November 2007, led by Google with 34 members including mobile handset makers, application developers, some mobile carriers and chip makers.

Android, the flagship software of the alliance, is based on an open source license and competes against mobile platforms from Apple, Microsoft, Nokia (Symbian), HP (formerly Palm), Research In Motion, and Samsung Electronics (bada).

Headquarters: South Korea

iOS versus Android Revenue at POP

Android Architecture

6/9/12

Stock apps, all of which can be replaced; modular architecture.

Managers (APIs to OS). You will use these APIs in your apps.

SQLite and WebKit are in iOS as well. libc is from c. OpenGL is graphics, etc.

kernel components; you won't touch these.

android dex files are like java class files - they're bytecode, but they've been optimized for a resource constrained environment.

Android is modular

Building Blocks of an App• Activities (you can see an activity, activities

have views.)

• Intents (shuttle messages)

• Services (background services)

• Content Providers (api abstraction to datastore)

• Broadcast Receivers (capture OS broadcasts; such as battery-low, reboot, sms-received, headphone-plugged-in, etc. )

Some Developer Resources

Resources

Android Developer's Guide : developer.android.com/guide/index.html

Stack Overflow: stackoverflow.com/questions/tagged/android

Asset Studio: android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html

Android Views: www.androidviews.net

Recommended