Share
Embed
Transcript
16 slides
-
Faisal Abid @faisalabid www.faisalabid.com • 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 WHO AM I? -
Faisal Abid @faisalabid www.faisalabid.com 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 • 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 1. AppStackNavigation -
Faisal Abid @faisalabid www.faisalabid.com • Getting thumbnails from Android videos
is very weird. • ICS’s new MediaMetadataRetriever makes it easy 2. Getting Media Thumbnails 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 • I honestly had no idea
you could do this! • Set an alarm programmatically. Not an AlarmManager alarm, but an actual alarm. 3. Set Alarm Programmatically Intent i = new Intent(AlarmClock.ACTION_SET_ALARM); -
Faisal Abid @faisalabid www.faisalabid.com • Lots and lots of ways
exist. • Tried many solutions • This one worked the best 4. Handle Bitmap OOM Errors -
Faisal Abid @faisalabid www.faisalabid.com • 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 5. Handling Awesome progress animations -
Faisal Abid @faisalabid www.faisalabid.com • Simple but cool. In Jellybean
Android added new activity animation. • Take advantage of them! 6. ActivityAnimations -
Faisal Abid @faisalabid www.faisalabid.com • 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. 7. Animation keeps getting better -
Faisal Abid @faisalabid www.faisalabid.com • Honeycomb introduced this. • Not
widely known. • call() you can add all the cool stuff you want. • Built system wide image cache on the Arc. 8. ContentProvider with custom methods! -
Faisal Abid @faisalabid www.faisalabid.com • Still not used as much
as you should • Simple as running monkeyrunner. 9. Monkey -
Faisal Abid @faisalabid www.faisalabid.com • ICS, AsyncTasks run in a
single threaded threadpool now. • To change it run it on an executor. 10. Async Tasks have changed! -
Faisal Abid @faisalabid www.faisalabid.com • 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 11. Security Changes to Android -
Faisal Abid @faisalabid www.faisalabid.com • As of Android 3.1, no
BroadcastReceiver will work until the user has manually launched an activity 11.5. More security changes