I know Android uses Linux kernel. And nowadays processors going to be more powerful and robots going to be more interactive with graphical user interface and Android is good in this field. So, is it a good idea to investing time on Android and leaving Linuxes like Ubuntu?

Can we do some classifying and say for which robots it's better to use Android and for which Linux is better choice? I ask this because I think Linux is faster than Android, am I thinking true?

  • $\begingroup$ Probably not, as little of what makes Android unique and unusual would be helpful, and things like killing of background processes unlinked to a prioritized Context would have to be defeated. Possible exceptions would be the fine grained power control. Or if you are re-using hardware for which you only have an Android source base and bringing up a traditional Linux userspace would involve work tangential to your immediate goals. $\endgroup$ Sep 24 '17 at 19:53
  • $\begingroup$ @ChrisStratton: Thank you Chris! But may you explain more and a little simpler. $\endgroup$ Sep 25 '17 at 13:31

(This questions asks for an opinion which, in most stackexchange.com forums, is discouraged. I'll answer, but would appreciate knowing what is allowed in the robotics.stackexchange.com forum.)

The major difference between most Linux distributions and Android is that features normally relegated to different users are relegated to different applications on an Android device. That is to say, all the Linux security efforts for isolating one user from another built up over the past several decades has been re-purposes to isolate one application from another. In this way, an Android device can safely run multiple applications fairly independent of one another. For example, your web browser should not be able to affect nor read the application you use for banking.

Is this good for controlling robots?

If you plan on controlling your robot from 1 application I would say it does not make any difference. But, if you plan on controlling your robot from multiple applications, using an Android OS would make it more difficult. Why? If you use an application for computer vision and another for mapping and yet another for motor control - how will they freely talk with one another? Likely it is not impossible. But such communication between programs is common place in most Linux distributions.

  • $\begingroup$ Inter-program communication is actually far more fundamental to Android than it is to most other Linuxces, precisely because of this segregation. $\endgroup$ Sep 24 '17 at 19:50
  • $\begingroup$ Can you refer to a web page or publication which discusses this? I assume this is a method unique to Android. And that any existing programs which already work together on a traditional Linux computer will not be able to take advantage of it? $\endgroup$
    – st2000
    Sep 25 '17 at 2:51
  • $\begingroup$ You could start with the Android SDK documentation, and Dianne Hackborn's old usenet posts, but to really understand it you need to dig into the AOSP sources. Pay particular attention to "binder" the Android version of which is a sort of shadow of what was once conceived. $\endgroup$ Sep 25 '17 at 3:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.