This action might not be possible to undo. Are you sure you want to continue?
#1 Android Versioning
· So good they named it three times
· Code name (for Joe Bloggs). Ìce Cream Sandwich, Froyo, Honeycomb
· PIatform Version
· API Version (Links Android platform -> Software SDK version)
· Project has min/target and max SDKs
· Conditional/runtime checks are possible.
· Ìf (Build.VERSÌON.SDK < Build.VERSÌON_CODES.FROYO)
· Each SDK has an associated Google SDK
#2 Screen Sizing
· Android runs on many devices
· Screen Size (Physical)
· Screen Resolution (Pixels)
· Each device classified by screen size AND screen
· Screen Size ÷ 2 inches (small) . 10 inches (xlarge)
· Screen Resolution ÷ 426 x 320 (small) . 960 x 720 (xlarge)
· Android provides two ways to handle this.
· Ìmage density independence via image handling
· Screen size independence via multiple layouts
· DÌPs and SÌPs!? WTF.
#3 Embrace XML
· Defacto mechanism for defining non-code
· XML as it should be ÷ easily read/edited
· XML Resource identifiers used to identify layouts
· All resources stored under /res subdirectories
· res/drawable, res/layout, res/xml, res/anim
· Avoid Eclipse Add-on for building Ui
#4 Memory Is Precious
· Unlike iOS Android provides runtime garbage
· Memory is limited (16Mb heap in 2.0)
· Garbage Collection isn't an insurance against leaks
· Always consider the implications of code on
· Be a good citizen ÷ help your collector.
· Null out object references ASAP
· Use SoftReference and WeakReference
#5 Beware Java Libraries
· Wealth of Open Source Java libraries
· But most are enterprise level
· Some wont work ÷ missing packages
· Others not optimized for low-level
· And worse yet ÷ subtle bugs i.e. Rome
· All applications have a single main thread
· Main thread processes UÌ events and should
NOT be blocked
· For responsive UÌ you will need.
· AsyncTask<Params, Progress, Update>
#7 Test, test, test.
· Android provides Junit integration out of the
· Support for unit and functional testing
· AcitivityTestCase (functional (activity))
· ÌnstrumentationTestCase (unit (model))
· With support for mocks!
· Tests are written in a separate project
Party Libraries too ÷ Robotium (black box)
#8 TooI Up
· Android provides powerful platform tools
· Hidden in the Android installation dir
· Not as well integerated as Xcode
· Special note.
· adb logcat
· Monkey (Chaos Monkey)
· All apps MUST be signed with a private
· Debug key for local deployment/testing
· ReIease key for publishing to the store
· No provisioning portal!
· Much more pleasant experience than iOS
#10 Expand Your Mind
· There is a wealth of online resources for
· Official Developers Guide ÷ fantastic
resource for explanations of core
· Official JavaDocs ÷ code level documentation
of Android packages. Concise and very
· Official Sampe Projects ÷ example projects
for many OS and device level features.
© your company name. All rights reserved. Title of your presentation