Hey All,
I'm curious about compiling a native Linux app for the Nexus One, and wondering what the best way is to go about it in Ubuntu. I found this link for the G1:
http://android-dls.com/wiki/index.php?title=Compiling_for_Android
Since the Snapdragon is also ARM I'm assuming this will work, but is there a decent way to do this on Ubuntu or is my best bet to install Debian in Virtualbox and compile it there?
Thanks,
-Dan
overridex said:
Hey All,
I'm curious about compiling a native Linux app for the Nexus One, and wondering what the best way is to go about it in Ubuntu. I found this link for the G1:
http://android-dls.com/wiki/index.php?title=Compiling_for_Android
Since the Snapdragon is also ARM I'm assuming this will work, but is there a decent way to do this on Ubuntu or is my best bet to install Debian in Virtualbox and compile it there?
Thanks,
-Dan
Click to expand...
Click to collapse
There's a certain amount of vagueness associated with your generalized request.
That said ... ubuntu is sooo very very closely related to debian in the linux fam!
Almost all things described in the link your reference will carry-over/hold-true in ubuntu as they are stated in debian.
But ... the real kicker is the specific app you're trying to compile.
Depending on what the app you want to build depends on ... will determine your overall success. While the reference posted link is insightful, you must understand the need to link against libraries being used. Many of these libraries (at least the basic 'c' ones) you'll find in the AOSP code in android's git repo.
I would suggest taking a look at the "external" projects found in the AOSP code to see how they utilize the makefile setup and build-environment and how they leverage bionic and others to build against.
The way those projects build out, would be essentially what you're looking for .. (I assume) again, I state this without knowing the specific app you have in mind.
Hope that helps.
~enom~
How well would a linux disto made for desktop PCs work with touch screen mouse inputs and no keboard support? (im assuming the Android VK doesnt work when you press on a textbox in a Linux Emulator)
enomther said:
There's a certain amount of vagueness associated with your generalized request.
Click to expand...
Click to collapse
Sorry, I should have been more specific - by Linux native I didn't mean any app in particular, I just meant not a java Android app. I'm really just looking to compile a HelloWorld in C and run it at the shell on the Nexus at this point.
My main concern with the link I posted is that although Ubuntu is based on Debian, Ubuntu does not maintain an ARM version, and the package mentioned in that tutorial is not included in Ubuntu because of this.
So I'm just wondering if anyone has come up with a good solution for compiling for the Nexus in Ubuntu, or if I'm better off installing Debian in a virtual machine.
Thanks,
-Dan
http://android-tricks.blogspot.com/2009/02/hello-world-c-program-on-using-android.html
I think this is more of what I was looking for, I'll build AOSP and try out the agcc script.
-Dan
Another idea: find the Android source wherever Google hides it, I have forgotten, sorry! But they give instructions for setting up a whole ARM cross-compiling environment on x86/x64 Ubuntu, and as I recall, it was really easy, quick and automatic! (so easy, I did it just so I could compile some ARM apps myself, I really didn't need to compile Android, I don't build phones! )
After that, you too should be able to compile your own apps into native ARM binaries.
overridex said:
Sorry, I should have been more specific - by Linux native I didn't mean any app in particular, I just meant not a java Android app. I'm really just looking to compile a HelloWorld in C and run it at the shell on the Nexus at this point.
Click to expand...
Click to collapse
To do this, you need a version of the ARM tools appropriate for your platform and then use them for building a static binary for Linux. You can find such tools at CodeSourcery (http://www.codesourcery.com/sgpp/lite/arm). Given that you sound like you have Ubuntu, then the Linux version from this page, http://www.codesourcery.com/sgpp/lite/arm/portal/[email protected]=lite, would be what you want. The key is to use the --static parm when you build the binary.
From there, just get your binary over onto the target and run it from the command shell.
Remember that static binaries are HUGE. They have to include all library functions linked in.
If you are looking for tiny binaries, look into the NDK and use the BUILD_EXECUTABLE rule for Android.mk.
A few more useful links, but not much that hasn't already been stated in previously referenced links:
http://benno.id.au/blog/2007/11/13/android-native-apps
http://honeypod.blogspot.com/2007/12/dynamically-linked-hello-world-for.html
http://honeypod.blogspot.com/2007/12/initialize-libc-for-android.html
I understand this is a UI preview, but will the full build be completly linux and use a linux kernel? I really don't want it to use anything Andrtoid related, otherwise it wouldn't truely be linux. :/
They have said they are only doing it at the start for compatibility.
And technically android is full Linux and therefore Ubuntu is now.
Sent from my Galaxy Nexus using xda app-developers app
Forty.Two said:
I understand this is a UI preview, but will the full build be completly linux and use a linux kernel? I really don't want it to use anything Andrtoid related, otherwise it wouldn't truely be linux. :/
Click to expand...
Click to collapse
Hello,
To be honest, both Android and Ubuntu are both Linux based Distributions and both use a Linux kernel. In fact, both distributions branch from the same Linux source tree.
With this said, the touch preview uses the CyanogenMod 10.0 Android fork as a base. Ubuntu is ran inside of a chroot, This means that they are both using a shared kernel.
Keith Myers
Forty.Two said:
I understand this is a UI preview, but will the full build be completly linux and use a linux kernel? I really don't want it to use anything Andrtoid related, otherwise it wouldn't truely be linux. :/
Click to expand...
Click to collapse
you dont like android ? they both from linux
I think the confusion here is that when most people who have used a Linux system in the past, prior to Android or didn't know that Android used the Linux kernel, they were actually using GNU/Linux, so they think that is what Linux is. Some people may even mix up that the X server is also a part of Linux.
But Android isn't GNU/Linux so when some one says 'Linux distro', they are probably thinking of a GNU/Linux distro, like Debian, Slackware, Fedora, Ubuntu, Red Hat, Mint, etc, and not just an OS that also happens to have the Linux Kernel in it.
So the title of this post probably should have been GNU/Linux or Android.
Findee said:
They have said they are only doing it at the start for compatibility.
And technically android is full Linux and therefore Ubuntu is now.
Sent from my Galaxy Nexus using xda app-developers app
Click to expand...
Click to collapse
android is java+linux and ubuntu is fully linux it's big differece
Sent from my GT-I9000 using xda app-developers app
bobo1337 said:
android is java+linux and ubuntu is fully linux it's big differece
Sent from my GT-I9000 using xda app-developers app
Click to expand...
Click to collapse
I think you are confusing linux and bsd.
http://m.techrepublic.com/blog/10things/10-differences-between-linux-and-bsd/1709
Read #3
In summary- android IS Linux. All the extra stuff you are used to calling Linux is just.... Extra stuff. Linux IS the kernel.
--
Sent from my Kindle Fire 2, CM 10.1
Hey guys, I wanna ask you question, is Ubuntu touch like Ubuntu for arm? i mean it uses the same deb packages or New different OS ?
mindmajick said:
I think you are confusing linux and bsd.
http://m.techrepublic.com/blog/10things/10-differences-between-linux-and-bsd/1709
Read #3
In summary- android IS Linux. All the extra stuff you are used to calling Linux is just.... Extra stuff. Linux IS the kernel.
--
Sent from my Kindle Fire 2, CM 10.1
Click to expand...
Click to collapse
By that logic, technically, Android isn't Linux (since Android isn't a Kernel), rather Android uses Linux.
BukaKing said:
By that logic, technically, Android isn't Linux (since Android isn't a Kernel), rather Android uses Linux.
Click to expand...
Click to collapse
That would also mean ubuntu isn't Linux
PHONE SLOW CLICK ME?
_____________________________________
"No one lives in the slums because they want to. It's like this train. It can't run anywhere except where its rails take it."- Cloud[FFvii]"
TingTingin said:
That would also mean ubuntu isn't Linux
PHONE SLOW CLICK ME?
_____________________________________
"No one lives in the slums because they want to. It's like this train. It can't run anywhere except where its rails take it."- Cloud[FFvii]"
Click to expand...
Click to collapse
Exactly, ubuntu isn't Linux, it is GNU/Linux meaning it runs the Linux kernel (Just like android does), and contains the GNU utilities and software that make the system usable. Android is also GNU/Linux, but android has less GNU software and most "apps" are run using dalvik. So really ubuntu and Linux are both running "Linux Kernel" but aren't just Linux. Pure Linux would just be the kernel as Linux isn't an OS.
TingTingin said:
That would also mean ubuntu isn't Linux
PHONE SLOW CLICK ME?
_____________________________________
"No one lives in the slums because they want to. It's like this train. It can't run anywhere except where its rails take it."- Cloud[FFvii]"
Click to expand...
Click to collapse
And that is why they are called Linux distribution.
And even calling Android a distribution is kind of a loose definition of what a distribution is and was. It used to be a long time ago that a distribution was intending to distribute Linux, which the only way Linux would be useful is to also have several applications and modules that make a useable operating system, that is what a distribution was. Android doesn't exactly fit that, users are not even really aware of or deal with Linux related things, although some of the apps they use may access parts of the file system (sysfs, procfs, etc), and users can install software that gives them access also. And it could be argued too though that Ubuntu doesn't exactly fit this either, since there are not stripped down versions and they are starting to force dominance of certain packages, but they still allow for low level access.
---------- Post added at 09:32 PM ---------- Previous post was at 09:19 PM ----------
This is what Richard Stallman has to say:
http://www.gnu.org/gnu/gnu-linux-faq.html#linuxsyswithoutgnu
Are there complete Linux systems without GNU? (#linuxsyswithoutgnu)
There are complete systems that contain Linux and not GNU; Android is an example. But it is a mistake to call them “Linux” systems.
Android is very different from the GNU/Linux system—because it contains very little of the GNU system, only Linux. Overall, it's a different system. If you call the whole system “Linux”, you will find it necessary to say things like, “Android contains Linux, but it isn't Linux, because it doesn't have the usual Linux [sic] libraries and utilities [meaning the GNU system].” Android contains just as much of Linux as GNU/Linux does. What it doesn't have is the GNU system. Android replaces that with Google software that works quite differently. Thus, what makes Android different is the lack of GNU.
Click to expand...
Click to collapse
joshumax said:
Exactly, ubuntu isn't Linux, it is GNU/Linux meaning it runs the Linux kernel (Just like android does), and contains the GNU utilities and software that make the system usable. Android is also GNU/Linux, but android has less GNU software and most "apps" are run using dalvik. So really ubuntu and Linux are both running "Linux Kernel" but aren't just Linux. Pure Linux would just be the kernel as Linux isn't an OS.
Click to expand...
Click to collapse
BukaKing said:
And that is why they are called Linux distribution.
And even calling Android a distribution is kind of a loose definition of what a distribution is and was. It used to be a long time ago that a distribution was intending to distribute Linux, which the only way Linux would be useful is to also have several applications and modules that make a useable operating system, that is what a distribution was. Android doesn't exactly fit that, users are not even really aware of or deal with Linux related things, although some of the apps they use may access parts of the file system (sysfs, procfs, etc), and users can install software that gives them access also. And it could be argued too though that Ubuntu doesn't exactly fit this either, since there are not stripped down versions and they are starting to force dominance of certain packages, but they still allow for low level access.
---------- Post added at 09:32 PM ---------- Previous post was at 09:19 PM ----------
This is what Richard Stallman has to say:
http://www.gnu.org/gnu/gnu-linux-faq.html#linuxsyswithoutgnu
Click to expand...
Click to collapse
I didn't read your u guys comment fully it's like 1 a.m here but anyways my comment was just show that people often use the word Linux loosely when referring to any Linux based operating system they'll call ubuntu Linux but then when it comes android not so because it's further off the tree and not pure Linux but the only pure Linux OS is well Linux (and yes Linux is an operating system though only command line that's all u need to constitute a OS) so I was just pointing out that this is a bit confusing it makes more sense when you refer to a Linux based OS as a distro but that's kinda hazy if simply using the kernel = distro then android is a distro but then same problem as b4 it's further off the tree so then does it mean it isn't a distro because of that which is actually due to differences with mobile phone hardware but we're taking about the os anyways I was just pointing out that this isn't very black and white
PHONE SLOW CLICK ME?
_____________________________________
"No one lives in the slums because they want to. It's like this train. It can't run anywhere except where its rails take it."- Cloud[FFvii]"
To rephrase the question: Will the apps and system functions use languages other than java? In desktop Ubuntu, there was a wide assortment of languages the could be compiled and run as scripts. Will we see the same multi-language support on the full mobile distributions?
Forty.Two said:
To rephrase the question: Will the apps and system functions use languages other than java?
Click to expand...
Click to collapse
They already do...QML
PHONE SLOW CLICK ME?
_____________________________________
"No one lives in the slums because they want to. It's like this train. It can't run anywhere except where its rails take it."- Cloud[FFvii]"
Forty.Two said:
To rephrase the question: Will the apps and system functions use languages other than java? In desktop Ubuntu, there was a wide assortment of languages the could be compiled and run as scripts. Will we see the same multi-language support on the full mobile distributions?
Click to expand...
Click to collapse
It's hard to be completely certain what Canonical will do, but it is very likely it will support multiple languages.
Technically you can build applications on Android in any language you want provided there is a native runtime module or the language compiles to native libraries, but Java always sits in the middle.
From what I have seen with Ubuntu Touch, Java is not even included by default, I saw it pull openjdk when I installed Eclipse, and that Java is not even the same as the one Android uses.
Currently the only API that draws to the display is Qt5 and QML, other APIs like GTK+ and even Qt4 try to use an X server which doesn't exist currently, although you can route to a remote x server and display applications remotely.
But in terms of language support I've tested c, c++, JavaScript, python, bash scripts and java, and I'm almost certain perl will work. Again the problem is though, if they don't have Qt5 bindings they can only display on a remote x server or in a remotely connected terminal and not on the device.
1) Linux is not, I repeat, NOT an operating system. It's a kernel, which is the core coding which an operating system is based around. The kernel acts as a medium between software and hardware.
2) Ubuntu, Android, Fedora, Arch, WebOS , and etcetera are not Linux. They are Linux based operating systems that are built upon the Linux kernel.
3) BSD, Free BSD, Mac OS X+, iOS, and Solaris are all UNIX based operating systems. Linux is a clone of the UNIX kernel.
4) The GUI is not part of Linux. X server is a back end for the X11 window service. And is not included in the core kernel itself.
5) I like tacos.
Sent from my Galaxy Nexus using Tapatalk 2
TingTingin said:
I didn't read your u guys comment fully it's like 1 a.m here but anyways my comment was just show that people often use the word Linux loosely when referring to any Linux based operating system they'll call ubuntu Linux but then when it comes android not so because it's further off the tree and not pure Linux
Click to expand...
Click to collapse
Android is pure linux, with a google init system, rather than a GNU one..
but the only pure Linux OS is well Linux (and yes Linux is an operating system though only command line that's all u need to constitute an OS)
Click to expand...
Click to collapse
What you are "seeing" when you refer to a comand line is almost enitrely made up of GNU coreutils(bash, ls, cd, rm, cp) running on a linux kernel. Linux is NOT an OS.
so I was just pointing out that this is a bit confusing it makes more sense when you refer to a Linux based OS as a distro but that's kinda hazy if simply using the kernel = distro then android is a distro but then same problem as b4 it's further off the tree so then does it mean it isn't a distro because of that which is actually due to differences with mobile phone hardware but we're taking about the os anyways I was just pointing out that this isn't very black and white
Click to expand...
Click to collapse
A "distro" is usually made up of: The kernel (linux), the GNU coreutils, a package manager, a Desktop Environment, and some integrated applications. "linux" is a kernel. You can replace the kernel with any other compatible kernel, as Arch/HURD, Debian/kFreeBSD, and Arch/BSD have proven. Don't confuse linux with GNU/Linux.
Android is merely a distribution of liunx with a different set of coreutils, tablet based applications, and the play store as a package manager, and Dalvik VM.
linux is NOT andoperating system.
crshbndct said:
Android is pure linux, with a google init system, rather than a GNU one..
What you are "seeing" when you refer to a comand line is almost enitrely made up of GNU coreutils(bash, ls, cd, rm, cp) running on a linux kernel. Linux is NOT an OS.
A "distro" is usually made up of: The kernel (linux), the GNU coreutils, a package manager, a Desktop Environment, and some integrated applications. "linux" is a kernel. You can replace the kernel with any other compatible kernel, as Arch/HURD, Debian/kFreeBSD, and Arch/BSD have proven. Don't confuse linux with GNU/Linux.
Android is merely a distribution of liunx with a different set of coreutils, tablet based applications, and the play store as a package manager, and Dalvik VM.
linux is NOT andoperating system.
Click to expand...
Click to collapse
...
Wikipedia
Linux is a
Unix-like computer
operating system
Click to expand...
Click to collapse
en.m.wikipedia.org/wiki/Linux
How Stuff Works
Linux is an operating system --
very much like UNIX -- that has
become very popular over the last
several years.
Click to expand...
Click to collapse
computer.howstuffworks.com/question246.htm
Linux.org
Linux is an operating system that
evolved from a kernel created by
Linus Torvalds
Click to expand...
Click to collapse
www.linux.org/article/view/what-is-linux
getgnulinux.org
Linux is an operating system, a
large piece of software that
manages a computer. It is similar
to Microsoft Windows, but it is
entirely free.
Click to expand...
Click to collapse
www.getgnulinux.org/en/linux/
Webopedia.com
The Linux open source operating
system, or Linux OS, is a freely
distributable, cross-platform
operating system based on Unix
Click to expand...
Click to collapse
www.webopedia.com/TERM/L/linux_os.html
Linux.com
What is Linux?
Linux is, in simplest terms, an
operating system.
Click to expand...
Click to collapse
www.linux.com/learn/new-user-guides...ere-an-overview-of-the-linux-operating-system
http://bit.ly/13rqRIv
PHONE SLOW CLICK ME?
_____________________________________
"No one lives in the slums because they want to. It's like this train. It can't run anywhere except where its rails take it."- Cloud[FFvii]"
MikeyCriggz said:
1) Linux is not, I repeat, NOT an operating system. It's a kernel, which is the core coding which an operating system is based around. The kernel acts as a medium between software and hardware.
2) Ubuntu, Android, Fedora, Arch, WebOS , and etcetera are not Linux. They are Linux based operating systems that are built upon the Linux kernel.
3) BSD, Free BSD, Mac OS X+, iOS, and Solaris are all UNIX based operating systems. Linux is a clone of the UNIX kernel.
4) The GUI is not part of Linux. X server is a back end for the X11 window service. And is not included in the core kernel itself.
5) I like tacos.
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
+1, like, :good:.