This page contains answers to the most frequently asked questions about SkySafari for Android.
Where can I buy it? Can I get a free copy?
SkySafari is not shareware or freeware. If you downloaded our app from a warez site and you did not pay for it, please know that you are pirating our work, which is very discouraging for us. Please consider that we are a 3 person company; we work hard to develop and support top-notch software on the Android platform, and that we make a living from our products.
We hope that our apps provide you with geat value for the very few dollars you've invested in them.
I tried to buy your app, but Google Play says my Android tablet or phone is incompatible. Is there any other way I can install your app on my device? Can you give me a copy?
No. There are thousands of different kinds of Android devices out there. Google probably doesn't know about yours yet; that's why it's listed as incompatible. But the problem is larger than that. We do most of our testing on "mainstream" Android devices, such as sold by Google, Samsung, Motorola, and HTC. If you stick with mainstream brands, our apps will probably work well on your device.
We receive the vast majority of our problem reports from people using cheap off-brand Android devices. The bottom line is that you get what you pay for, and if Google Play doesn't support your device, we won't either.
If I buy the basic version now, can I upgrade to the Plus (or Pro) version later for just the difference in cost?
No. These are separate apps on Google Play. Google does not credit the purchase of any app toward the purchase of any other. Remember - you're actually buying the app from Google, not from us. If you want a refund for your purchase, you need to contact google - we cannot issue Google Play refunds directly.
It's for this reason that we've kept the basic version of SkySafari as inexpensive as it is. If you decide that you want to upgrade to Plus or Pro later, make sure you know which one you want. This is a purchase decision which we cannot make for you, and which we cannot reverse.
I own more than one Android device (or I bought a new one). Do I have to re-purchase it for each device?
No. SkySafari uses standard Google Play licensing. You can install it on as many Android devices as you have linked to your Google Play account.
When the app starts up, I get a message that says "License Verification Failed," then the app exits. Can you fix this?
No, we can't. We're using Google's own license verification library code; unfortunately, sometimes Google's servers are just flaky. If you are having this problem, our best advice is simply to wait a few minutes, or up to an hour, and try again later. Or to try it from a different internet or Wi-Fi connection. Make sure your Android device is connected to the internet when you run the app for the first time! Bill says:
This problem seems to affect a small number of folks. Usually this is caused by either:
Occasionally, you may need to uninstall and reinstall the app for license verification to proceed. We are not sure why this happens, but it seems to be something amiss in Google Play.
The other possible solution is to delete the Data for the Google Play app using the Android Settings app. Then run the Google Play app again and let it rebuild its data correctly. You will need to re-accept Google Play's license agreement when doing so. This seems to fix many of the license verification problems.
Please let us know if the problem persists. It does seem to eventually work correctly for all users.
No. SkySafari for Android is a complete rewrite of app, written in a different programming language, running on a device with a different kind of processor, under a separate operating system with a different user interface. Our Mac and iOS apps are sold through different app stores. Even if we could offer you discount, there's no way we can do so.
We hope that this won't dissuade you from purchasing our Android version separately. Most desktop astronomy programs competing at SkySafari's level of sophistication cost hundreds of dollars - ours is priced, like our iPhone apps, at the cost of a pizza. At these very low prices, we hope that SkySafari for Android will provide you with tremendous value, in spite of being a separate purchase.
What Android OS version do you require? What are your hardware requirements?
SkySafari for Android requires Android version 2.2 ("Froyo") or later, running on an Android phone or table with a 1 GHz or faster processor. It may run on slower devices, but performance will be extremely sluggish.
SkySafari requires a Google Play account, and will not run on devices (like the Kindle Fire) which do not have Google Play access.
Will it run on Android tablets?
Yes, SkySafari for Android will run on tablets as well as phones, and will use the entire tablet screen at full resolution. Some functions - e.g., ability to provide a live view of the sky using the compass and accelerometer - may not work on low-end Android tablets (e.g. the Kindle Fire) or other Android devices which are missing the required hardware.
How about the Kindle Fire?
No. SkySafari will not run on the Kindle Fire, because Amazon does not provide the Kindle with access to Google Play. If Amazon allows Kindle devices to access Google Play in the future, SkySafari will support the Kindle Fire.
Alternately, we may sell SkySafari on the Amazon Appstore in the future, but we have no plans to do so at this time.
Does it have the same features as your iOS version?
For the most part, yes. All major functions and features in the iOS version are also be available in the Android version. As per above, some features may not be supported on low-end Android devices which lack the hardware required to support them. Some "look-and-feel" touches - animations, panning to objects, pulsing selected object markers, etc. - may not be present in the Android version, since iOS devices generally have superior graphics hardware, and Android OS lacks the API support required to implement these kinds of animations.
The general layout and organization of SkySafari for Android is very similar to SkySafari for iOS. But our Android version has an Android "look-and-feel", and conforms to Android OS standards. For example, the hardware Menu button on Android phones brings up the functions that are listed in the iPhone toolbar, and the hardware Search button will bring up the function accessible from the Search button on the iPhone version's toolbar.
How is your app different from Google SkyMap? Why should I pay for it when Google SkyMap is free?
For starters, even the basic version of SkySafari includes ten times more star data than Google SkyMap. Our deep sky database contains thousands of NGC/IC objects, not just the 110-object Messier catalog. Our Pro version contains 550,000 solar system objects - including every known moon, asteroid, and comet in the solar system - not just the Sun, Moon, and nine planets (we're sentimentally still counting Pluto!)
Our apps contain hundreds of built-in images, and include thousands of object descriptions, written by professional astronomers. Google SkyMap gives you Wikipedia links - which don't do you much good when you're out in the field, away from Wi-Fi or data network connections.
Our Plus and Pro versions can control telescopes; Google SkyMap cannot - nor can any other Android app, as far as we know.
Google SkyMap cannot reproduce basic astronomical phenomena like lunar eclipses and Jovian satellite shadow transits. That's OK - Google SkyMap is a publicity tool for a company (Google) that makes nearly all of its revenue by selling on-line advertising. Our apps, by contrast, were developed by passionate astronomers with a penchant for quality and accuracy. We make a living from our products, and we stand by them.
If these things don't matter to you, or if $3 seems too high a price for them, then by all means, get Google SkyMap.
Why do your Android apps have to download additional data in order to be fully functional?
A large part of our apps are their on-board star catalogs, deep sky databases, image galleries, etc. In our basic version, this is about 40 MB worth of data; in our Pro version, it adds up to more than 400 MB! Unfortunately, Google Play rules prohibit application packages (.APK files) larger than 50 MB. So, our apps have to fetch the additional data separately. Apple's iTunes Store has no such restriction; all of the additional data is bundled into our iOS apps, and is included automatically when you download them from the iTunes Store.
PLEASE NOTE: Our Android apps can run without the additional data - they'll just show naked-eye stars and planets, Messier objects, and none of the fancy deep sky object or horizon panorama images. But everything else should work.
How come you only let me download the data over Wi-Fi? My 4G network is just as fast!
4G may be just as fast, but unlike Wi-Fi, it's not free. Data usage charges may apply to 4G network downloads, and those charges can add up quickly, especially for multiple 400+ MB downloads. And as much as we might like to pay your data charges, we're not quite rich enough to do that, yet!
If all else fails, you can download the additional data file to your computer, then transfer it over a USB cable to your Android's SD card. Our data download page contains instructions that tell you how.
My Andoid device's SD card is nearly full, but my device has another external SD Card. Can I install the extra data onto my external SD card instead?
Not at this time. Google Play automatically downloads SkySafari's extra data to the internal SD card; the location is not configurable. We are looking at alternate ways of solving this problem. In the meantime, you may be able to solve the problem yourself, by moving some other apps, movies, songs, etc. from your internal SD card to your external SD card and freeing up some space.
Is your Android version slower than your iOS version? If so, why?
The code which computes the positions of the stars and planets, and renders the sky chart onto the screen, is exactly the same as our iOS code. It's line-for-line identical C/C++, using exactly the same OpenGL graphics calls. Yet this code tends to run faster on iPhones than Android phones. Obviously the exact speed difference depends on which iPhone vs. which Android phone you're comparing.
There seem to be two reasons for this. First, the graphics hardware build into iPhones is fundamentally faster than that built into most Android devices, particularly on the low end. Secondly, Android's software rendering pipeline seems to be less efficiently designed than that of iOS. The situation is improving. Google has made some fixes in Android 4.0 ("Ice Cream Sandwich") and later releases, and the general hardware quality of Android devices is improving, too. Also, in SkySafari for Android release 1.8 and higher, we enabled native floating-point code. This gave our apps a significant speed boost.
Having said all of this - the Android version of SkySafari is still pretty darn useable. It's not quite as buttery-smooth on Android as it is on the iPhone/iPad. On Android, our typical graphic refresh rates when panning around the sky chart should be upward of 20 FPS. You can show your refresh rate by turning on Settings > Appearance > Show Frames Per Second. If you have a recent device running Android 4.0 or later, and you're seeing performance significantly worse than 20 FPS, something else is wrong. Let us know.
What can I do to speed things up?
We'll continue to work on performance in the future, even if Google has given us a platform which makes it more difficult! In the meantime, here are some things you can do to speed up SkySafari while panning/zooming:
Turn off the fancy horizon panoramas. Display the horizon as a transparent line, or use no horizon at all - in the Plus/Pro version, you can do this by using an Equatorial coordinate view (under Settings > Coordinates).
Turn off the Milky Way image (under Settings > Milky Way).
In general, the fewer things that SkySafari has to draw, the faster it will draw the sky chart. Panning across a relatively empty part of the sky, as in Draco or Bootes, will be a lot faster than panning across a very crowded starfield, as found in Sagittarius or Centaurus!
How about telescope control?
Yes! SkySafari for Android supports telescope control, both via Wi-Fi and bluetooth. Unfortunately, Google has chosen to disable support for Ad Hoc WiFi networks, such as generated by our SkyFi wireless adapter, by default in the standard Android OS. You can enable Ad Hoc WiFi network support on your Android device, but you'll have to root the device to do it. Alternately, you can join both SkyFi and your Android device to an infrastructure WiFi network, such as provided by a typical home router - but then you'll need to carry that router with you, and find a way to power it, when you go to your remote observing site.
As a result, we've also decided to offer telescope control in SkySafari for Android via bluetooth. This is something that isn't possible with iOS devices due to Apple restrictions. Initially, SkySafari for Android supported the Starry Night BlueStar bluetooth serial adapter. We can't offer support for every third-party bluetooth serial adapter on the market, but we've programmed SkySafari to use standard Bluetooth Android interfaces, so most should work. If you can configure your bluetooth adapter to control your telescope from a Mac or PC, it will probably work with SkySafari for Android. A list of bluetooth serial adapters that are known to be compatible, and not compatible, with SkySafari, is provided on this page.
We may offer our own bluetooth serial adapter for Android devices in the future, but this is not yet 100% certain.
My Android device has a USB port. Can't I just use a USB-to-serial adapter to talk to my telescope?
No. For this to work, your Android device would have to be a USB host, and most devices are USB slaves, not hosts. Secondly, your Android OS would have to be running the drivers for that USB-to-serial adapter. As of this writing, we don't know of a single USB-to-serial adapter manufacturer that produces Android drivers. You can root your device, write your own drivers, and recompile the Android kernel if you want to take a stab at this yourself!
We've found one Android serial library that only supports a very limited number of USB-to-serial adapters, and requires Android OS version 3.1 or later. To use it, we'd have to limit our app to devices running Android 3.1+, which is a tiny fraction of the installed Android user base.
The situation with Android USB-to-serial adapters may improve in the future, but we have no plans to support any telescope connections other than bluetooth or WiFi at this time.
I'm a geek. How did you port SkySafari from iOS to Android?
The main challenge was that native iOS apps must be written in C, C++, or Objective-C; whereas Android apps are written in Java. Fortunately, SkySafari's core "engine" code was already written in C/C++, and in 2010, Google offered a native development kit which allowed us to recompile that core engine code for Android. All of the code which computes planetary positions, reads star and deep sky data out of the database files, and draws the sky chart using OpenGL, is line-for-line identical to the code in the iOS version. This saved us from having to rewrite more than 168,000 lines of code in Java, and is really what made SkySafari for Android possible in the first place.
The other part of the app is, of course, the user interface - all of the buttons and menus and switches you can touch to control the app. While they might appear vaguely similar to those in iOS, the Android APIs (application programming interfaces) to those controls are completely different from those in iOS. For one thing, they're all written in Java, not Objective-C. So this part of the app was a complete, 100% rewrite.
Our first Android project was developed in conjunction with Sky & Telescope magazine. It was the Android version of the S&T SkyWeek app for iOS, released earlier this year. This was a relatively simple Android app, with a minimal user interface. This allowed us to concentrate on porting our underlying C/C++ engine code to Android, and prove the concept. Rewriting all of SkySafari's user interface in Java has taken a lot longer - and is still a work in progress.
It's fair to say that we ran into all the same problems other iOS developers complain about when porting to Android. Google's Android developer tools (based on
But all of that is just part of the job of a software engineer. You asked for SkySafari on Android. So we did it.
Observing lists are cool, but creating them by hand is tedious. Can SkySafari import an observing list that I create as a text file, or an observing list from another program?
SkySafari does not support other programs' observing list formats directly. But in SkySafari Plus or Pro, version 1.1.1 or higher, you can import observing lists as text files. At least a few other programs (AstroPlanner, Deep-Sky Planner, Eye & Telescope) can now export observing lists to SkySafari in this format.
See the the section on Observing Lists in SkySafari's built-in Help file for instructions on how to import them into the program. Briefly: you can copy observing lists into or out of the SkySafari/Observing Lists folder on the root level of your SD card. You can also email observing lists to yourself, and open the .skylist file attachment from your Android email client (tho not all versions of Android support this feature.)
If you want to convert your own observing lists to a text file that SkySafari can import, here's an example of the format that you need to use:
Comment=Great red spot was great! And red!
Lines may be separated by a single linefeed (LF) character ('\n', ASCII hex code 0x0A, decimal value 10), or by carriage return (CR) characters ('\r', ASCII code 0x0D, decimal 13), or by CR-LF pairs. In other words, your text file may be a unix-style text file, or a classic Mac or DOS/Windows text file.
The first line must be
Observing list entries are groups of keyword=value pairs. Groups are demarcated by
In the sample above, we've indented the keyword/value pairs within each object for clarity, but you don't have to. SkySafari strips out leading whitespace when importing the file.
The ObjectID field is what SkySafari uses internally to identify the object. Since you don't know this, you can use the following:
1,-1,-1for solar system objects
4,-1,-1for deep sky objects
SkySafari will try to find the object based on the
CommonName values, and fix up the
ObjectID values internally after it imports the list.
CatalogNumber values are used preferentially instead of the name(s). Please use the same catalog abbreviations that SkySafari uses, e.g. Alpha CMa, HR 7001, M 97, NGC 1695. If the object has no
CatalogNumber (like Jupiter), then enter its name(s) in the
CommonName field. For asteroids, the asteroid number is the
CatalogNumber; use the
CommonName field for all other solar system object identifiers.
CommonNames you've specified to import properly. This is how SkySafari resolves ambiguities between diffiferent objects with the same name: for example, comet Garradd (C/2009 P1) vs. comet Garradd (C/2008 J5), or the asteroid Europa (number 52) vs. Europa (Jupiter's moon, no number). In most cases, though, only a single
CommonNameshould be required to uniquely identify the object.
Comment are optional.
DateObserved is the julian date on which your observation took place;
Comment is the notes you want associated with the object. Newlines in the notes should be indicated with a \n sequence.
How do I get my own horizon panorama into SkySafari? Can you show me an example?
Read the Help file included with the program, under the Settings > Horizon & Sky section! Briefly, first use a program like Photoshop to create a panorama from individual pictures. Your finished horizon panorama must be a 2048 x 1024 pixel image in PNG format, with alpha (transparency) indicating clear sky vs. opaque ground. North is at the left edge; south is in the middle. Connect your Android device to a computer with a USB cable, then copy your panorama PNG file into the SkySafari/Panoramas folder on the root level of your SD card.
Here's an example, sent to us with permission by Roger Greenwood in Massachusetts, USA. Click the preview image below to view the full-sized PNG, which you can import into SkySafari as an example:
Joshua Bury, creator of the Observer Pro iOS app, has created a web-based application that converts a numerical horizon representation (altitude/azimuth points saved as an Observer Pro .hzn file) into to a panorama that can be used in SkySafari. It's not as accurate as a well-done photographic panorama, but it is really easy to create, especially if you've used Observer Pro to measure your horizon.
The horizon is not visible! But I've got "show horizon and sky" checked, and/or a panorama selected, in my Horizon & Sky Settings. What's wrong?
If you're running SkySafari Plus or Pro, make sure your coordinate system is set to Horizon coordinates. Look in your Coordinates settings. If set to Equatorial, Ecliptic, or Galactic coordinates, the horizon will not be shown. This is deliberate - these other coordinate systems do not align to your local horizon, so it would appear skewed at a wierd angle. A printed star chart uses equatorial coordinates, and does not show the horizon either. SkySafari is no different.
The sky chart is covered with hundreds of labels for satellites/comets/asteroids, and I can't get rid of them! Is that a bug?
No, you have just turned on highliting for an object list. Look for a small green list icon at the bottom of the sky chart, and tap it. That will bring you to the object list that is highlited. Switch off the hilighting, and the labels will go away.
This feature is intended to let you quickly see where all objects in a particular list - for example, Messier objects, or an observing list that you've created - are located in the sky. You might have highlighted that list by accident. The green list icon always brings you back to the list that is highlited.
SkySafari is displaying blocky, unreadable characters for dialog boxes and System fonts. How do I fix this?
Go to your Android System settings -> Developer Options, and look for a checkbox marked "Force GPU Rendering." This option forces GPU rendering of 2D objects, such as text. Some people turn this option on because it's believed to speed up their device a bit. But for many apps - not just ours - it causes display issues. For everyone who has reported this problem, turning the "Force GPU Rendering" option OFF has fixed it.