Well, I've had a lot of fun trying different things with embedded Linux and creating simple platforms. The idea was to help hobbyists and students start using CDT for building embedded applications. We have the remote download and launcher (using RSE) and gnu cross compiler support in the upcoming CDT 6.0 to help make it a real force in this area.
That work was pretty much all on hobby time. And it was fun to see it working. But I was describing that the hobby was just like work just on my own time. And my wife make a point that really hit home, "yeah, it's like work but you don't get paid". Uh, yeah.
That and there are already a lot of platforms out there for hobbyists to get starting using Eclipse for embedded development. And one of those platforms has a Market place that allows you to sell the little apps that you can make. Hobby, that pays. Hmmm.
Of course, the platform I'm talking about is Android. It has a great set of Eclipse tooling for writing apps. Yes, it's Java, and yes I bash Java regularly. But it gets the job done. And I think I have something to offer Android. Myself and a few others out on the webisphere have figured out how to build JNI libraries for Android. That gives you the best of both worlds. JDT for Java, CDT for the native libraries. You probably only need native libraries for compute intensive tasks that you can use the underlying hardware to help accelerate. But at times that is a need.
And building native libraries is pretty easy. Do a google search for Android Build System and you'll see a general description of it and the special Android.mk file you need to provide. You need to build your library in a subdirectory under the Android source tree. But once it's there you can create a CDT project that points to it. "make mymodule showcommands" and you're off to the races. And CDT's scanner discovery will even pick out the include path from the gcc/g++ commands.
Now I'm not sure how the native libraries work on real devices. It may be prohibited due to security concerns. So I'd like to try it on one before I push the idea too far. Rogers up here in Canada is finally getting Android phones in June, the same ones as T-mobile. I'll have to invest in one and see. But going through the SDK docs, I am getting the feeling this will be pretty rewarding, in more ways than one ;)
So what does this mean for my work on Wascana, which also competes for my hobby time? I'm still keen on it, and my new strategy of "stealing" the RPM contents from Fedora will allow that to take less time. But it comes back to what I was saying in my previous blog entry. It's a big burden trying to promote CDT for Windows development. Sometimes I feel alone and I wonder if anyone really cares. It's a burden I'm getting tired of carrying. Hopefully someone will step up and help, or some vendor will come in and fund some of it. We'll see.
And before anyone comments, yes I know native code is on Andriod's roadmap. But until then, we have it working now.
ReplyDeleteI hate to be the one to say "I told you so"....
ReplyDelete...nah, I like saying "I told you so!" :-)
Seriously, I'm glad a respected "embedded development" voice like yours is coming around to Android; it can only be a good thing.
You're not alone! We care, we care! (Actually just had a reader of my site send me this story.)
ReplyDeleteDo you mean CDT in general has been tough to advocate, or that Windows users are tied to Visual Studio, or that CDT people are all on Fedora? (or some combination)
This really does look great, and I imagine could be handy even after we (hopefully soon) see official JNI support from Google. I think it illustrates why that's really inevitable, and past experience shows that, when the DIYers have gotten out in front of Google, it's wound up still having value after those official SDK developments show up.
It made me think of another blog... this may help you (or not !)
ReplyDeletehttp://www.koushikdutta.com/2009/01/jni-in-android-and-foreword-of-why-jni.html
:)
Well, yes, I'm somewhat hopeful that the reason there isn't JNI support out of the gate is that there's some more elegant solution coming from Google. ;)
ReplyDeleteI'm very jealous of the ability to do things like run the open source live sound synthesis environments ChucK and Pure Data on the iPhone. That could be a potent combination on Android.
Hi,
ReplyDeleteIf you want to contribute to a new framework called gynoid - see here
https://sourceforge.net/projects/gynoid/
@peterkirn: CDT is popular with embedded and Linux, but against VisualStudio, it's tough. I'm settling in on the fact that the future of native is mobile, like Andriod, iPhone, and maybe desktop Linux, but not Windows.
ReplyDelete@shamaz: yes, that's where I got a lot of my info and led me to the same conclusion, build in the Android tree.
@vincent: hard to tell what gynoid is from the web pages.
I think Google is holding off because the build system needs to be cleaned up to allow building without having the Android source tree around. A normal include and lib tree would be better. That's what I was starting to try and put together, just like Wascana, and maybe I can still do that.
Sure, sure, but I will say - open source developers are looking for alternative IDEs, not just Visual Studio. For instance, here's a good example of an open source project
ReplyDeletehttp://www.openframeworks.cc/forum/
They had been on dev-C++, which is big among Windows hobbyists, but now they're looking at CodeBlocks.
Now, I like CodeBlocks a lot, but it's too bad they're not considering Eclipse/CDT.