2. WHO AM I?
• Software developer working with Android since
the beta days
• Started working in Node.js and Coffeescript for
the past year.
• Software Engineer at Kobo
• Co-Author Flex 3 in Action
• Entrepreneur, Author, Teacher & Developer
Faisal Abid @faisalabid
www.faisalabid.com
3. ABOUT THIS TALK
• Learn some of the tips and tricks I’ve learnt over the years
• Working at Kobo and building an Android tablet, you pick
up on a few cool things.
• I want to share these things with you!
Faisal Abid @faisalabid
www.faisalabid.com
4. 1. AppStackNavigation
• Up and Back are two different things now. As if things
weren’t bad enough.
• Up means going up to the next page in the app.
• Back means going back irrespective of where you are.
• You can control this stuff in code but it gets messy.
• Android Jellybean introduces the new ParentActivity tag
in the manifest
Faisal Abid @faisalabid
www.faisalabid.com
5. 2. Getting Media Thumbnails
• Getting thumbnails from Android videos is very weird.
• ICS’s new MediaMetadataRetriever makes it easy
private Bitmap getThumbnailForVideoUri(Context cx, Uri contentURI) {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(cx, contentURI);
return retriever.getFrameAtTime();
} catch (Exception e) {
// exception
}
}
Faisal Abid @faisalabid
www.faisalabid.com
6. 3. Set Alarm Programmatically
• I honestly had no idea you could do this!
• Set an alarm programmatically. Not an AlarmManager
alarm, but an actual alarm.
Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
Faisal Abid @faisalabid
www.faisalabid.com
7. 4. Handle Bitmap OOM Errors
• Lots and lots of ways exist.
• Tried many solutions
• This one worked the best
Faisal Abid @faisalabid
www.faisalabid.com
8. 5. Handling Awesome progress animations
• I love progress loaders. Really set the app apart
• WhereIsMyBus has a cool progress loader
• AnimationDrawable will give you OOM.
• AnimationDrawable loves to load up all the items in
memory.
• Solution is by “Yar” from StackOverFlow
http://bit.ly/OsGSsb
Faisal Abid @faisalabid
www.faisalabid.com
9. 6. ActivityAnimations
• Simple but cool. In Jellybean Android added
new activity animation.
• Take advantage of them!
Faisal Abid @faisalabid
www.faisalabid.com
10. 7. Animation keeps getting better
• With Project Butter. Android Animation keeps getting
better.
• Use the built-in .animate() class to get full performance.
• No need to learn OpenGL or anything else for
trivial animations.
Faisal Abid @faisalabid
www.faisalabid.com
11. 8. ContentProvider with custom methods!
• Honeycomb introduced this.
• Not widely known.
• call() you can add all the cool stuff you want.
• Built system wide image cache on the Arc.
Faisal Abid @faisalabid
www.faisalabid.com
12. 9. Monkey
• Still not used as much as you should
• Simple as running monkeyrunner.
Faisal Abid @faisalabid
www.faisalabid.com
13. 10. Async Tasks have changed!
• ICS, AsyncTasks run in a single threaded threadpool now.
• To change it run it on an executor.
Faisal Abid @faisalabid
www.faisalabid.com
14. 11. Security Changes to Android
• More of a PSA
• Soon android users will be required to allow the app to
Read SD card.
• Read_External_storage is a good permission to have,
Start thinking about it.
• You’ll get a filenotfound exception if you don’t have it.
• If you have Write_External_storage you are good
Faisal Abid @faisalabid
www.faisalabid.com
15. 11.5. More security changes
• As of Android 3.1, no BroadcastReceiver will work until
the user has manually launched an activity
Faisal Abid @faisalabid
www.faisalabid.com