360 likes | 633 Views
Android Application Development android.cs.uchicago.edu. Adam Gerber, PhD, SCJP Some of my mobile work: http://www.flickr.com/photos/89831807@N02/show/. Unit00: Setup. 1/ Install required software: java-sdk 7, Android Studio, git, sourcetree 2/ Set-up steps (projects and labs)
E N D
Adam Gerber, PhD, SCJP Some of my mobile work: http://www.flickr.com/photos/89831807@N02/show/
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 SourceTree a) add, reset, commit, F5, folders b) amend c) branch d) push/remotes 5/ A tour of Android Studio (shortcuts, VCS, etc.)
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 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-dir git 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, use git commit --amend -m “your message” git commit --amend --no-edit
Branching: To list the branches in a project: git branch git branch -r git branch --all To create a branch: git checkout -b branchName c39b git checkout -b branchName To delete a branch: git branch -D branchName To checkout a branch: git checkout 7afe git checkout master
Pushing to remotes: To see the remotes: git remote -v show To push to a remote: git push origin master git push --all To clear all local changes since last push git reset --hard origin/master
Reverting (does the exact opposite) git revert 0da8 --no-edit git revert head --no-edit git revert head~3 --no-edit To clear all local changes since last push git reset --hard origin/master To delete a remote branch git push origin :branchName
Android Studio Default keymap: http://android.cs.uchicago.edu/content/slides/keymap.pdf File || settings || keymap
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."
Android is NOT just phones Tablets Readers Televisions Game consoles AR-Devices Android is open-source, which means any manufacturer of mobile devices can drop Android onto it.
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 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 http://en.wikipedia.org/wiki/Open_Handset_Alliance http://en.wikipedia.org/wiki/Android_(operating_system)
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.
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. )
Resources Android Developer's Guide : developer.android.com/guide/index.html Stack Overflow: stackoverflow.com/questions/tagged/android AssetStudio: android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html Android Views: www.androidviews.net