Developing for Amazon Kindle Fire

amazon kindle fire

Kindle Fire development could be a little bit tricky. There are five different device configurations available.
One device has a little bit strange config. It is sw533dp (smallestWidth) because of 1280×800 resolution with hdpi density.

I’ve summarized info to the table:

resolution dpi size sw
Kindle Fire HDX 8.9″ 2560×1600 xhdpi xlarge sw800
Kindle Fire HDX 7″ 1920×1200 xhdpi large sw600
Kindle Fire HD 7″ (2nd/3rd gen) 1280×800 hdpi large sw533
Kindle Fire HD 8.9″ 1920×1200 hdpi xlarge sw800
Kindle Fire (1st/2nd gen) 1024×600 mdpi large sw600
Nexus 7 1280×800 tvdpi large sw600
Nexus 10 2560×1600 xhdpi xlarge sw800
So you may consider to have something like drawable-sw533dp or layout-sw533dp in your project.

How to generate unique device id

android device id

At some point of time you will need seamless user/device identification for your application.

It is not so simple to generate unique device id on Android because of:

  1. multiple Android versions
  2. Google bugs
  3. root
  4. custom ROM modifications with bad Build.SERIAL or ANDROID_ID
  5. multiuser support (4.2 and up)

First of all you can start with this:

  1. Google blog post “Identifying App Installations” http://android-developers.blogspot.ru/2011/03/identifying-app-installations.html
  2. Read stack overflow discussions http://stackoverflow.com/questions/2785485/is-there-a-unique-android-device-id
  3. Read Samsung documentation http://developer.samsung.com/android/technical-docs/How-to-retrieve-the-Device-Unique-ID-from-android-device

Be aware that ANDROID_ID could be changed after user switch (multiuser in 4.2)

Continue reading

VK Stream

We’ve created the new Android and iPhone applications for Russian vk.com social network.
If you understand Russian language – you can try:)






Encrypted SQLite

If you keep sensitive data in your Android application SQLite database – you probably want to keep in save and encrypted. Here is SQLCipher for Android to help you with it.

SQLCipher is an open source library that provides transparent, secure 256-bit AES encryption of SQLite database files.

One small problem – your APK size will increase for another… 3Mb:)


Wanna Key Lime Pie?



Android UI components and libraries

Nice collections of Android UI components and libraries!



Presentations from Omsk, Moscow and Voronezh DevFest 2012

Android: Quick Dive
Android: Make Your App Social

Omsk G+ event
Moscow G+ event
Voronezh G+ event


Concurrency in Android

All you want to know about concurrency in Android in Blake Meike presentation from OSCON 2012

UDP: one more good presentation http://www.slideshare.net/andersgoransson/efficient-android-threading


DEBUG variable in Eclipse

In case you missed cool feature of ADT v.17

“Added a feature that allows you to run some code only in debug mode. Builds now generate a class called BuildConfig containing a DEBUG constant that is automatically set according to your build type. You can check the (BuildConfig.DEBUG) constant in your code to run debug-only functions such as outputting debug logs.”

Can help a lot:) Everybody forgets to disable debug in release at least one time in life.


Dashboard is dead:)

Not sure this is most convenient way to navigate on Android. But more and more applications are using “side navigation” pattern for their UI.

Nice article about  this: http://www.androiduipatterns.com/2012/06/emerging-ui-pattern-side-navigation.html

have fun!

Update: some interesting articles about implementation


© 2020 Android Tales

Theme by Anders NorenUp ↑